/* Initialise le backend de EX. */ static void cd_exaile_configure (void) { myData.DBus_commands.service = "org.exaile.DBusInterface"; myData.DBus_commands.path = "/DBusInterfaceObject"; myData.DBus_commands.interface = "org.exaile.DBusInterface"; myData.dbus_enable = _cd_exaile_dbus_connect_to_bus (); // se connecte au bus. if (myData.dbus_enable) { cd_musicplayer_dbus_detect_player (); // on teste la presence de EX sur le bus <=> s'il est ouvert ou pas. if(myData.bIsRunning) // player en cours d'execution, on recupere son etat. { g_print ("MP : EX is running\n"); cd_exaile_getSongInfos (); cd_exaile_getCoverPath (); cd_musicplayer_update_icon (TRUE); } else // player eteint. { cd_musicplayer_set_surface (PLAYER_NONE); } } else // sinon on signale par l'icone appropriee que le bus n'est pas accessible. { cd_musicplayer_set_surface (PLAYER_BROKEN); } }
/* Initialise le backend de EX. */ static void cd_exaile_start (void) { // get the current state. cd_exaile_getSongInfos (); cd_exaile_getCoverPath (); cd_musicplayer_update_icon (); }
/* Recupere tout chaque seconde (aucun signal). */ static void cd_exaile_read_data (void) { if (! myData.dbus_enable) { cd_warning ("couldn't connect to bus"); return; } if (! myData.bIsRunning) cd_musicplayer_dbus_detect_player (); if (myData.bIsRunning) { g_print ("Exaile is running\n"); cd_exaile_getSongInfos (); if (myData.iPlayingStatus == PLAYER_PLAYING && cairo_dock_strings_differ (myData.cRawTitle, myData.cPreviousRawTitle)) cd_exaile_getCoverPath (); else if (myData.iPlayingStatus == PLAYER_STOPPED) // en pause le temps et la chanson reste constants. { myData.iCurrentTime = 0; } cd_message (" myData.iCurrentTime <- %d", __func__, myData.iCurrentTime); } else { cd_debug ("MP : lecteur non ouvert"); myData.iPlayingStatus = PLAYER_NONE; } }
/* Recupere tout chaque seconde (aucun signal). */ static void cd_exaile_get_data (void) { cd_debug ("Exaile is running\n"); cd_exaile_getSongInfos (); if (myData.iPlayingStatus == PLAYER_PLAYING && cairo_dock_strings_differ (myData.cRawTitle, myData.cPreviousRawTitle)) cd_exaile_getCoverPath (); else if (myData.iPlayingStatus == PLAYER_STOPPED) // en pause le temps et la chanson reste constants. { myData.iCurrentTime = 0; } cd_message (" myData.iCurrentTime <- %d", __func__, myData.iCurrentTime); }