+ else if (strcmp(prop->name, "pause") == 0) {
+ if (prop->format == MPV_FORMAT_FLAG) {
+ int pause = *(int *)prop->data;
+ bool paused = pause == 1;
+ if (paused)
+ setState(Media::PausedState);
+ else {
+ int coreIdle;
+ mpv_get_property(mpv, "core-idle", MPV_FORMAT_FLAG, &coreIdle);
+ if (coreIdle == 1)
+ setState(Media::StoppedState);
+ else
+ setState(Media::PlayingState);
+ }
+ }
+ }
+