00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifdef USE_DBUS
00027
00028 #include "dbus-service.h"
00029
00030 static void mpris_status_cb (void * hook_data, void * user_data)
00031 {
00032 mpris_emit_status_change (mpris, GPOINTER_TO_INT (user_data));
00033 }
00034 #endif
00035
00036 void mpris_signals_init (void)
00037 {
00038 #ifdef USE_DBUS
00039 hook_associate ("playback begin", mpris_status_cb, GINT_TO_POINTER
00040 (MPRIS_STATUS_PLAY));
00041 hook_associate ("playback pause", mpris_status_cb, GINT_TO_POINTER
00042 (MPRIS_STATUS_PAUSE));
00043 hook_associate ("playback unpause", mpris_status_cb, GINT_TO_POINTER
00044 (MPRIS_STATUS_PLAY));
00045 hook_associate ("playback stop", mpris_status_cb, GINT_TO_POINTER
00046 (MPRIS_STATUS_STOP));
00047
00048 hook_associate ("toggle shuffle", mpris_status_cb, GINT_TO_POINTER
00049 (MPRIS_STATUS_INVALID));
00050 hook_associate ("toggle repeat", mpris_status_cb, GINT_TO_POINTER
00051 (MPRIS_STATUS_INVALID));
00052
00053
00054 #endif
00055 }
00056
00057 void mpris_signals_cleanup (void)
00058 {
00059 #ifdef USE_DBUS
00060 hook_dissociate ("playback begin", mpris_status_cb);
00061 hook_dissociate ("playback pause", mpris_status_cb);
00062 hook_dissociate ("playback unpause", mpris_status_cb);
00063 hook_dissociate ("playback stop", mpris_status_cb);
00064
00065 hook_dissociate ("toggle shuffle", mpris_status_cb);
00066 hook_dissociate ("toggle repeat", mpris_status_cb);
00067
00068 #endif
00069 }