Access Banshee music player and send commands to it.
#include "Eldbus.h"
#include <Ecore.h>
#define BUS "org.bansheeproject.Banshee"
#define ENGINE_PATH "/org/bansheeproject/Banshee/PlayerEngine"
#define CONTROLLER_PATH "/org/bansheeproject/Banshee/PlaybackController"
#define MPRIS_PATH "/org/mpris/MediaPlayer2"
#define ENGINE_IFACE "org.bansheeproject.Banshee.PlayerEngine"
#define CONTROLLER_IFACE "org.bansheeproject.Banshee.PlaybackController"
#define MPRIS_IFACE "org.mpris.MediaPlayer2.Playlists"
{
   printf("\n## ecore_main_loop_quit()\n");
}
static void
{
   const char *path, *name, *image;
   int i = 0;
     {
        fprintf(stderr, "Error: could not get entry contents\n");
        return;
     }
   printf("on_get_playlists() \n\n");
     {
          {
             printf("error on eldbus_massage_iterator_arguments_get()");
             return;
          }
        i++;
        printf("%d - %s | %s | %s\n", i, path, name, image);
     }
   printf("end of on_get_playlists()\n\n");
}
static void
{
   const char *skey = key;
   if (!strcmp(skey, "PlaylistCount"))
     {
        unsigned count;
          printf("error2\n");
        printf("PlaylistCount=%u\n", count);
     }
   else if (!strcmp(skey, "Orderings"))
     {
        const char *txt;
        printf("- Orderings\n");
          printf("error1\n");
          printf("\t%s\n", txt);
     }
}
static void
{
}
static void
{
   const char *string;
     {
        fprintf(stderr, "Error: could not get entry contents\n");
        return;
     }
   printf("on_introspect() data=\n%s\n\n", string);
}
static void
{
   const char *status = data;
   printf("%s\n", status);
}
static void
{
   const char *status;
     {
        fprintf(stderr, "Error: could not get entry contents\n");
        return;
     }
   printf("on_state_changed = %s\n", status);
}
static void
{
   const char *status;
     {
        fprintf(stderr, "Error: could not get entry contents\n");
        return;
     }
   printf("on_state_changed2 = %s\n", status);
   state_changed2 = NULL;
}
static void
{
   const char *bus, *older_id, *new_id;
     {
        printf("Error getting arguments from NameOwnerChanged");
        return;
     }
   printf("banshee started on id=%s\n", new_id);
}
static void
{
   const char *bus, *older_id, *new_id;
     {
        printf("Error getting arguments from NameOwnerChanged");
        return;
     }
   printf("bus = %s older=%s new=%s\n\n", bus, older_id, new_id);
}
int
main(void)
{
   EINA_SAFETY_ON_NULL_GOTO(engine, end);
   EINA_SAFETY_ON_NULL_GOTO(controler, end);
   EINA_SAFETY_ON_NULL_GOTO(playlists, end);
                    "uusb", (
unsigned)0, (
unsigned)30, 
"asc", 
EINA_FALSE);
                             "StateChanged", on_state_changed, NULL);
                                             "StateChanged", on_state_changed2, NULL);
                                 on_name_owner_changed, NULL);
                                 on_banshee_startup, NULL);
end:
   return 0;
}