Map gstreamer over dbus tags into xmpp tune tags.
[cascardo/pubsub-bot.git] / status.c
index 6362b6d..2c78898 100644 (file)
--- a/status.c
+++ b/status.c
@@ -417,6 +417,28 @@ handler (GIOChannel *channel, GIOCondition cond, gpointer data)
   return TRUE;
 }
 
+struct
+  { char * key; char * val; } keymaps[] =
+{
+  { "artist", "artist" },
+  { "duration", "length" },
+  { "album", "source" },
+  { "title", "title" },
+  { "track-number", "track" },
+  { "location", "uri" },
+  { NULL, NULL }
+};
+
+static char *
+map_key (char *orig)
+{
+  int i;
+  for (i = 0; keymaps[i].key != NULL; i++)
+    if (strcmp (orig, keymaps[i].key) == 0)
+      return keymaps[i].val;
+  return NULL;
+}
+
 static void
 tune_add_dbus_arg (iks *tune, DBusMessageIter *args)
 {
@@ -440,6 +462,7 @@ tune_add_dbus_arg (iks *tune, DBusMessageIter *args)
     }
   else
     printf ("%c\n", dbus_message_iter_get_arg_type (&entry));
+  strkey = map_key (strkey);
   if (strkey && strval)
     {
       iks_insert_cdata (iks_insert (tune, strkey), strval, 0);