commit a5193d9f25a6f052d28b50f622f197f85707383c
Author: phantomjinx <p.g.richard...@phantomjinx.co.uk>
Date:   Sat Nov 20 14:55:44 2010 +0000

    Correct mistakes in glib interface use
    
    * Seems the dummy object is the reference to pass around rather than the
      interface itself.
    
    * Creation of functions to act as getters for interface properties

 libgtkpod/context_menus.c                         |   12 ++--
 libgtkpod/details_editor_iface.c                  |    9 ++-
 libgtkpod/details_editor_iface.h                  |   10 ++-
 libgtkpod/exporter_iface.c                        |   30 +++++++-
 libgtkpod/exporter_iface.h                        |   13 ++-
 libgtkpod/gtkpod_app_iface.c                      |   89 ++++++++++++---------
 libgtkpod/gtkpod_app_iface.h                      |    8 +-
 libgtkpod/lyrics_editor_iface.c                   |    8 ++
 libgtkpod/lyrics_editor_iface.h                   |   10 ++-
 libgtkpod/misc_playlist.c                         |    8 +-
 libgtkpod/misc_track.c                            |    8 +-
 libgtkpod/photo_editor_iface.c                    |    7 ++
 libgtkpod/photo_editor_iface.h                    |   10 ++-
 libgtkpod/repository_editor_iface.c               |   21 +++++
 libgtkpod/repository_editor_iface.h               |   12 ++-
 libgtkpod/track_command_iface.c                   |   31 +++++++-
 libgtkpod/track_command_iface.h                   |    3 +
 plugins/exporter/exporter_actions.c               |    8 +-
 plugins/media_player/plugin.c                     |    4 +-
 plugins/playlist_display/display_playlists.c      |    8 +-
 plugins/track_display/track_display_preferences.c |   10 +-
 21 files changed, 223 insertions(+), 96 deletions(-)
---
diff --git a/libgtkpod/context_menus.c b/libgtkpod/context_menus.c
index 884ec56..a131a64 100644
--- a/libgtkpod/context_menus.c
+++ b/libgtkpod/context_menus.c
@@ -132,11 +132,11 @@ GtkWidget *add_exec_commands(GtkWidget *menu) {
     }
 
     while(cmds != NULL) {
-        TrackCommandInterface *cmd = cmds->data;
+        TrackCommand *cmd = cmds->data;
         GPtrArray *pairarr = g_ptr_array_new ();
         g_ptr_array_add (pairarr, cmd);
         g_ptr_array_add (pairarr, gtkpod_get_selected_tracks());
-        hookup_menu_item(mm, cmd->text, GTK_STOCK_EXECUTE, G_CALLBACK 
(on_track_command_menuitem_activate), pairarr);
+        hookup_menu_item(mm, track_command_get_text(cmd), GTK_STOCK_EXECUTE, 
G_CALLBACK (on_track_command_menuitem_activate), pairarr);
         cmds = cmds->next;
     }
 
@@ -264,10 +264,10 @@ static void create_playlist_file(GtkWidget *w, gpointer 
data)
     if (!gtkpod_has_exporter())
         return;
 
-    ExporterInterface *exporter = gtkpod_get_exporter();
+    Exporter *exporter = gtkpod_get_exporter();
 
     if(gtkpod_get_selected_tracks())
-        exporter->export_tracks_to_playlist_file(gtkpod_get_selected_tracks());
+        exporter_export_tracks_to_playlist_file(exporter, 
gtkpod_get_selected_tracks());
 }
 
 GtkWidget *add_create_playlist_file (GtkWidget *menu)
@@ -301,11 +301,11 @@ GtkWidget *add_edit_track_details(GtkWidget *menu) {
  */
 static void export_entries(GtkWidget *w, gpointer data)
 {
-    ExporterInterface *exporter = gtkpod_get_exporter();
+    Exporter *exporter = gtkpod_get_exporter();
     g_return_if_fail(exporter);
 
     if(gtkpod_get_selected_tracks())
-        exporter->export_tracks_as_files (gtkpod_get_selected_tracks(), NULL, 
FALSE, NULL);
+        exporter_export_tracks_as_files (exporter, 
gtkpod_get_selected_tracks(), NULL, FALSE, NULL);
 }
 
 GtkWidget *add_copy_track_to_filesystem (GtkWidget *menu)
diff --git a/libgtkpod/details_editor_iface.c b/libgtkpod/details_editor_iface.c
index 6b85de2..cbad6e4 100644
--- a/libgtkpod/details_editor_iface.c
+++ b/libgtkpod/details_editor_iface.c
@@ -46,8 +46,15 @@ GType details_editor_get_type(void) {
     if (!type) {
         static const GTypeInfo info =
             { sizeof(DetailsEditorInterface), (GBaseInitFunc) 
details_editor_base_init, NULL, NULL, NULL, NULL, 0, 0, NULL };
-        type = g_type_register_static(G_TYPE_INTERFACE, 
"DetailsEditorInterface", &info, 0);
+        type = g_type_register_static(G_TYPE_INTERFACE, "DetailsEditor", 
&info, 0);
         g_type_interface_add_prerequisite(type, G_TYPE_OBJECT);
     }
     return type;
 }
+
+void details_editor_edit_details(DetailsEditor *editor, GList *tracks) {
+    if (! DETAILS_EDITOR_IS_EDITOR(editor))
+        return;
+
+    DETAILS_EDITOR_GET_INTERFACE(editor)->edit_details(tracks);
+}
diff --git a/libgtkpod/details_editor_iface.h b/libgtkpod/details_editor_iface.h
index 7e59224..f27fccf 100644
--- a/libgtkpod/details_editor_iface.h
+++ b/libgtkpod/details_editor_iface.h
@@ -35,6 +35,11 @@
 #include <gtk/gtk.h>
 #include "itdb.h"
 
+#define DETAILS_EDITOR_TYPE                (details_editor_get_type ())
+#define DETAILS_EDITOR(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
DETAILS_EDITOR_TYPE, DetailsEditor))
+#define DETAILS_EDITOR_IS_EDITOR(obj)             (G_TYPE_CHECK_INSTANCE_TYPE 
((obj), DETAILS_EDITOR_TYPE))
+#define DETAILS_EDITOR_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE 
((inst), DETAILS_EDITOR_TYPE, DetailsEditorInterface))
+
 typedef struct _DetailsEditor DetailsEditor;
 typedef struct _DetailsEditorInterface DetailsEditorInterface;
 
@@ -46,9 +51,6 @@ struct _DetailsEditorInterface {
 
 GType details_editor_get_type(void);
 
-#define DETAILS_EDITOR_TYPE                (details_editor_get_type ())
-#define DETAILS_EDITOR(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
DETAILS_EDITOR_TYPE, DetailsEditor))
-#define DETAILS_EDITOR_IS_EDITOR(obj)             (G_TYPE_CHECK_INSTANCE_TYPE 
((obj), DETAILS_EDITOR_TYPE))
-#define DETAILS_EDITOR_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE 
((inst), DETAILS_EDITOR_TYPE, DetailsEditorInterface))
+void details_editor_edit_details(DetailsEditor *editor, GList *tracks);
 
 #endif /* DETAILS_EDITOR_IFACE_H_ */
diff --git a/libgtkpod/exporter_iface.c b/libgtkpod/exporter_iface.c
index 1a32e17..a69c1b9 100644
--- a/libgtkpod/exporter_iface.c
+++ b/libgtkpod/exporter_iface.c
@@ -49,8 +49,36 @@ GType exporter_get_type(void) {
     if (!type) {
         static const GTypeInfo info =
             { sizeof(ExporterInterface), (GBaseInitFunc) exporter_base_init, 
NULL, NULL, NULL, NULL, 0, 0, NULL };
-        type = g_type_register_static(G_TYPE_INTERFACE, "ExporterInterface", 
&info, 0);
+        type = g_type_register_static(G_TYPE_INTERFACE, "Exporter", &info, 0);
         g_type_interface_add_prerequisite(type, G_TYPE_OBJECT);
     }
     return type;
 }
+
+void exporter_export_tracks_as_files(Exporter *exporter, GList *tracks, GList 
**filenames, gboolean display, gchar *message) {
+    if (! EXPORTER_IS_EXPORTER(exporter))
+        return;
+
+    EXPORTER_GET_INTERFACE(exporter)->export_tracks_as_files(tracks, 
filenames, display, message);
+}
+
+void exporter_export_tracks_to_playlist_file (Exporter *exporter, GList 
*tracks) {
+    if (! EXPORTER_IS_EXPORTER(exporter))
+            return;
+
+    EXPORTER_GET_INTERFACE(exporter)->export_tracks_to_playlist_file(tracks);
+}
+
+GList *exporter_transfer_track_glist_between_itdbs (Exporter *exporter, 
iTunesDB *itdb_s, iTunesDB *itdb_d, GList *tracks) {
+    if (! EXPORTER_IS_EXPORTER(exporter))
+            return NULL;
+
+    return 
EXPORTER_GET_INTERFACE(exporter)->transfer_track_glist_between_itdbs(itdb_s, 
itdb_d, tracks);
+}
+
+GList *exporter_transfer_track_names_between_itdbs (Exporter *exporter, 
iTunesDB *itdb_s, iTunesDB *itdb_d, gchar *data) {
+    if (! EXPORTER_IS_EXPORTER(exporter))
+            return NULL;
+
+    return 
EXPORTER_GET_INTERFACE(exporter)->transfer_track_names_between_itdbs (itdb_s, 
itdb_d, data);
+}
diff --git a/libgtkpod/exporter_iface.h b/libgtkpod/exporter_iface.h
index 1c8df91..19d1d60 100644
--- a/libgtkpod/exporter_iface.h
+++ b/libgtkpod/exporter_iface.h
@@ -35,6 +35,11 @@
 #include <gtk/gtk.h>
 #include "itdb.h"
 
+#define EXPORTER_TYPE                (exporter_get_type ())
+#define EXPORTER(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
EXPORTER_TYPE, Exporter))
+#define EXPORTER_IS_EXPORTER(obj)             (G_TYPE_CHECK_INSTANCE_TYPE 
((obj), EXPORTER_TYPE))
+#define EXPORTER_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), 
EXPORTER_TYPE, ExporterInterface))
+
 typedef struct _Exporter Exporter;
 typedef struct _ExporterInterface ExporterInterface;
 
@@ -49,9 +54,9 @@ struct _ExporterInterface {
 
 GType exporter_get_type(void);
 
-#define EXPORTER_TYPE                (exporter_get_type ())
-#define EXPORTER(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
EXPORTER_TYPE, Exporter))
-#define EXPORTER_IS_EXPORTER(obj)             (G_TYPE_CHECK_INSTANCE_TYPE 
((obj), EXPORTER_TYPE))
-#define EXPORTER_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), 
EXPORTER_TYPE, ExporterInterface))
+void exporter_export_tracks_as_files(Exporter *exporter, GList *tracks, GList 
**filenames, gboolean display, gchar *message);
+void exporter_export_tracks_to_playlist_file (Exporter *exporter, GList 
*tracks);
+GList *exporter_transfer_track_glist_between_itdbs (Exporter *exporter, 
iTunesDB *itdb_s, iTunesDB *itdb_d, GList *tracks);
+GList *exporter_transfer_track_names_between_itdbs (Exporter *exporter, 
iTunesDB *itdb_s, iTunesDB *itdb_d, gchar *data);
 
 #endif /* EXPORTER_IFACE_H_ */
diff --git a/libgtkpod/gtkpod_app_iface.c b/libgtkpod/gtkpod_app_iface.c
index 2e48dc6..b6dcb0d 100644
--- a/libgtkpod/gtkpod_app_iface.c
+++ b/libgtkpod/gtkpod_app_iface.c
@@ -43,8 +43,28 @@ static void gtkpod_app_base_init(GtkPodAppInterface* klass) {
     if (!initialized) {
         klass->current_itdb = NULL;
         klass->current_playlist = NULL;
+        klass->displayed_tracks = NULL;
+        klass->selected_tracks = NULL;
         klass->sort_enablement = TRUE;
-
+        klass->xml_file = NULL;
+        klass->exporter = NULL;
+        klass->repository_editor = NULL;
+        klass->details_editor = NULL;
+        klass->lyrics_editor = NULL;
+        klass->photo_editor = NULL;
+        klass->track_commands = NULL;
+
+        klass->itdb_updated = NULL;
+        klass->statusbar_message = NULL;
+        klass->gtkpod_warning = NULL;
+        klass->gtkpod_warning_hig = NULL;
+        klass->gtkpod_confirmation_hig = NULL;
+        klass->gtkpod_confirmation = NULL;
+        klass->statusbar_busy_push = NULL;
+        klass->statusbar_busy_pop = NULL;
+        klass->export_tracks_as_gchar = NULL;
+        klass->export_tracks_as_glist = NULL;
+        klass->display_widget = NULL;
         gtkpod_app_signals[ITDB_UPDATED]
                 = g_signal_new(SIGNAL_ITDB_UPDATED, G_OBJECT_CLASS_TYPE 
(klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, 
_gtkpod_app_marshal_VOID__POINTER_POINTER, G_TYPE_NONE, 2, G_TYPE_POINTER, 
G_TYPE_POINTER);
 
@@ -421,13 +441,13 @@ gboolean gtkpod_has_exporter() {
     return (GTKPOD_APP_GET_INTERFACE (gtkpod_app)->exporter != NULL);
 }
 
-ExporterInterface *gtkpod_get_exporter() {
+Exporter *gtkpod_get_exporter() {
     g_return_val_if_fail (GTKPOD_IS_APP(gtkpod_app), NULL);
 
     if (!gtkpod_has_exporter())
         return NULL;
 
-    return EXPORTER_GET_INTERFACE(GTKPOD_APP_GET_INTERFACE 
(gtkpod_app)->exporter);
+    return GTKPOD_APP_GET_INTERFACE (gtkpod_app)->exporter;
 }
 
 void gtkpod_display_widget(GtkWidget *widget) {
@@ -449,34 +469,29 @@ void gtkpod_unregister_repository_editor() {
 
 gboolean gtkpod_has_repository_editor() {
     g_return_val_if_fail (GTKPOD_IS_APP(gtkpod_app), FALSE);
-    return (GTKPOD_APP_GET_INTERFACE (gtkpod_app)->repository_editor != NULL);
+    RepositoryEditor *editor = GTKPOD_APP_GET_INTERFACE 
(gtkpod_app)->repository_editor;
+    return REPOSITORY_EDITOR_IS_EDITOR(editor);
 }
 
 void gtkpod_edit_repository(iTunesDB *itdb, Playlist *playlist) {
     g_return_if_fail(GTKPOD_IS_APP(gtkpod_app));
-    g_return_if_fail (GTKPOD_APP_GET_INTERFACE 
(gtkpod_app)->repository_editor);
 
-    GtkPodAppInterface *gp_iface = GTKPOD_APP_GET_INTERFACE (gtkpod_app);
-    RepositoryEditorInterface *editor_iface = 
REPOSITORY_EDITOR_GET_INTERFACE(gp_iface->repository_editor);
-    editor_iface->edit_repository(itdb, playlist);
+    RepositoryEditor *editor = GTKPOD_APP_GET_INTERFACE 
(gtkpod_app)->repository_editor;
+    repository_editor_edit_repository(editor, itdb, playlist);
 }
 
 gboolean gtkpod_init_repository(iTunesDB *itdb) {
     g_return_val_if_fail(GTKPOD_IS_APP(gtkpod_app), FALSE);
-    g_return_val_if_fail (GTKPOD_APP_GET_INTERFACE 
(gtkpod_app)->repository_editor, FALSE);
 
-    GtkPodAppInterface *gp_iface = GTKPOD_APP_GET_INTERFACE (gtkpod_app);
-    RepositoryEditorInterface *editor_iface = 
REPOSITORY_EDITOR_GET_INTERFACE(gp_iface->repository_editor);
-    return editor_iface->init_repository(itdb);
+    RepositoryEditor *editor = GTKPOD_APP_GET_INTERFACE 
(gtkpod_app)->repository_editor;
+    return repository_editor_init_repository(editor, itdb);
 }
 
 void gtkpod_populate_repository_model(iTunesDB *itdb, const gchar *old_model) {
     g_return_if_fail(GTKPOD_IS_APP(gtkpod_app));
-    g_return_if_fail (GTKPOD_APP_GET_INTERFACE 
(gtkpod_app)->repository_editor);
 
-    GtkPodAppInterface *gp_iface = GTKPOD_APP_GET_INTERFACE (gtkpod_app);
-    RepositoryEditorInterface *editor_iface = 
REPOSITORY_EDITOR_GET_INTERFACE(gp_iface->repository_editor);
-    editor_iface->set_repository_model(itdb, old_model);
+    RepositoryEditor *editor = GTKPOD_APP_GET_INTERFACE 
(gtkpod_app)->repository_editor;
+    repository_edtor_set_repository_model(editor, itdb, old_model);
 }
 
 void gtkpod_register_details_editor(DetailsEditor *editor) {
@@ -492,16 +507,16 @@ void gtkpod_unregister_details_editor() {
 
 gboolean gtkpod_has_details_editor() {
     g_return_val_if_fail (GTKPOD_IS_APP(gtkpod_app), FALSE);
-    return (GTKPOD_APP_GET_INTERFACE (gtkpod_app)->details_editor != NULL);
+    DetailsEditor *editor = GTKPOD_APP_GET_INTERFACE 
(gtkpod_app)->details_editor;
+    return DETAILS_EDITOR_IS_EDITOR(editor);
 }
 
 void gtkpod_edit_details(GList *selected_tracks) {
     g_return_if_fail(GTKPOD_IS_APP(gtkpod_app));
     g_return_if_fail (GTKPOD_APP_GET_INTERFACE (gtkpod_app)->details_editor);
 
-    GtkPodAppInterface *gp_iface = GTKPOD_APP_GET_INTERFACE (gtkpod_app);
-    DetailsEditorInterface *editor_iface = 
DETAILS_EDITOR_GET_INTERFACE(gp_iface->details_editor);
-    editor_iface->edit_details(selected_tracks);
+    DetailsEditor *editor = GTKPOD_APP_GET_INTERFACE 
(gtkpod_app)->details_editor;
+    details_editor_edit_details(editor, selected_tracks);
 }
 
 void gtkpod_register_lyrics_editor(LyricsEditor *editor) {
@@ -520,13 +535,11 @@ gboolean gtkpod_has_lyrics_editor() {
     return (GTKPOD_APP_GET_INTERFACE (gtkpod_app)->lyrics_editor != NULL);
 }
 
-void gtkpod_edit_lyrics(GList *selected_tracks) {
+void gtkpod_edit_lyrics(GList *tracks) {
     g_return_if_fail(GTKPOD_IS_APP(gtkpod_app));
-    g_return_if_fail (GTKPOD_APP_GET_INTERFACE (gtkpod_app)->lyrics_editor);
 
-    GtkPodAppInterface *gp_iface = GTKPOD_APP_GET_INTERFACE (gtkpod_app);
-    LyricsEditorInterface *editor_iface = 
LYRICS_EDITOR_GET_INTERFACE(gp_iface->lyrics_editor);
-    editor_iface->edit_lyrics(selected_tracks);
+    LyricsEditor *editor = GTKPOD_APP_GET_INTERFACE 
(gtkpod_app)->lyrics_editor;
+    lyrics_editor_edit_lyrics(editor, tracks);
 }
 
 void gtkpod_register_photo_editor(PhotoEditor *editor) {
@@ -542,25 +555,25 @@ void gtkpod_unregister_photo_editor() {
 
 gboolean gtkpod_has_photo_editor() {
     g_return_val_if_fail (GTKPOD_IS_APP(gtkpod_app), FALSE);
-    return (GTKPOD_APP_GET_INTERFACE (gtkpod_app)->photo_editor != NULL);
+    PhotoEditor *editor = GTKPOD_APP_GET_INTERFACE (gtkpod_app)->photo_editor;
+    return PHOTO_EDITOR_IS_EDITOR(editor);
 }
 
 void gtkpod_edit_photos(iTunesDB *itdb) {
     g_return_if_fail(GTKPOD_IS_APP(gtkpod_app));
     g_return_if_fail (GTKPOD_APP_GET_INTERFACE (gtkpod_app)->photo_editor);
 
-    GtkPodAppInterface *gp_iface = GTKPOD_APP_GET_INTERFACE (gtkpod_app);
-    PhotoEditorInterface *editor_iface = 
PHOTO_EDITOR_GET_INTERFACE(gp_iface->photo_editor);
-    editor_iface->edit_photos(itdb);
+    PhotoEditor *editor = GTKPOD_APP_GET_INTERFACE (gtkpod_app)->photo_editor;
+    photo_editor_edit_photos(editor, itdb);
 }
 
-void gtkpod_register_track_command(TrackCommandInterface *command) {
+void gtkpod_register_track_command(TrackCommand *command) {
     g_return_if_fail(GTKPOD_IS_APP(gtkpod_app));
     GtkPodAppInterface *gp_iface = GTKPOD_APP_GET_INTERFACE (gtkpod_app);
     gp_iface->track_commands = g_list_append(gp_iface->track_commands, 
command);
 }
 
-void gtkpod_unregister_track_command(TrackCommandInterface *command) {
+void gtkpod_unregister_track_command(TrackCommand *command) {
     g_return_if_fail(GTKPOD_IS_APP(gtkpod_app));
     GtkPodAppInterface *gp_iface = GTKPOD_APP_GET_INTERFACE (gtkpod_app);
     gp_iface->track_commands = g_list_remove(gp_iface->track_commands, 
command);
@@ -583,11 +596,11 @@ static void gtkpod_display_command_ctx_menu(GList 
*track_cmds, GList *tracks) {
     cmds = track_cmds;
 
     while(cmds != NULL) {
-        TrackCommandInterface *cmd = cmds->data;
+        TrackCommand *cmd = cmds->data;
         GPtrArray *pairarr = g_ptr_array_new ();
         g_ptr_array_add (pairarr, cmd);
         g_ptr_array_add (pairarr, tracks);
-        hookup_menu_item(menu, cmd->text, GTK_STOCK_EXECUTE, G_CALLBACK 
(on_track_command_menuitem_activate), pairarr);
+        hookup_menu_item(menu, track_command_get_text(cmd), GTK_STOCK_EXECUTE, 
G_CALLBACK (on_track_command_menuitem_activate), pairarr);
         cmds = cmds->next;
     }
 
@@ -608,8 +621,8 @@ void gtkpod_execute_track_command(GList *tracks) {
         break;
     case 1:
         ;
-        TrackCommandInterface *cmd = g_list_nth_data(gp_iface->track_commands, 
0);
-        cmd->execute(tracks);
+        TrackCommand *cmd = g_list_nth_data(gp_iface->track_commands, 0);
+        track_command_execute(cmd, tracks);
         break;
     default:
         ;
@@ -617,9 +630,9 @@ void gtkpod_execute_track_command(GList *tracks) {
         gchar *cmdpref = NULL;
         if (prefs_get_string_value(DEFAULT_TRACK_COMMAND_PREF_KEY, &cmdpref)) {
             for (gint i = 0; i < g_list_length(gp_iface->track_commands); ++i) 
{
-                TrackCommandInterface *cmd = 
g_list_nth_data(gp_iface->track_commands, i);
-                if (cmdpref && g_str_equal(cmdpref, cmd->id)) {
-                    cmd->execute(tracks);
+                TrackCommand *cmd = g_list_nth_data(gp_iface->track_commands, 
i);
+                if (cmdpref && g_str_equal(cmdpref, 
track_command_get_id(cmd))) {
+                    track_command_execute(cmd, tracks);
                     return;
                 }
             }
diff --git a/libgtkpod/gtkpod_app_iface.h b/libgtkpod/gtkpod_app_iface.h
index 3c6fcf7..2e8b0a6 100644
--- a/libgtkpod/gtkpod_app_iface.h
+++ b/libgtkpod/gtkpod_app_iface.h
@@ -202,7 +202,7 @@ void gtkpod_broadcast_preference_change(gchar 
*preference_name, gint value);
 void gtkpod_register_exporter(Exporter *exporter);
 void gtkpod_unregister_exporter();
 gboolean gtkpod_has_exporter();
-ExporterInterface *gtkpod_get_exporter();
+Exporter *gtkpod_get_exporter();
 
 void gtkpod_display_widget(GtkWidget *widget);
 
@@ -221,15 +221,15 @@ void gtkpod_edit_details(GList* selected_tracks);
 void gtkpod_register_lyrics_editor(LyricsEditor *editor);
 void gtkpod_unregister_lyrics_editor();
 gboolean gtkpod_has_lyrics_editor();
-void gtkpod_edit_lyrics(GList* selected_tracks);
+void gtkpod_edit_lyrics(GList* tracks);
 
 void gtkpod_register_photo_editor(PhotoEditor *editor);
 void gtkpod_unregister_photo_editor();
 gboolean gtkpod_has_photo_editor();
 void gtkpod_edit_photos(iTunesDB *itdb);
 
-void gtkpod_register_track_command(TrackCommandInterface *command);
-void gtkpod_unregister_track_command(TrackCommandInterface *command);
+void gtkpod_register_track_command(TrackCommand *command);
+void gtkpod_unregister_track_command(TrackCommand *command);
 void gtkpod_execute_track_command(GList *tracks);
 GList *gtkpod_get_registered_track_commands();
 
diff --git a/libgtkpod/lyrics_editor_iface.c b/libgtkpod/lyrics_editor_iface.c
index 5516b76..6f59a69 100644
--- a/libgtkpod/lyrics_editor_iface.c
+++ b/libgtkpod/lyrics_editor_iface.c
@@ -51,3 +51,11 @@ GType lyrics_editor_get_type(void) {
     }
     return type;
 }
+
+void lyrics_editor_edit_lyrics(LyricsEditor *editor, GList *tracks) {
+    if (! LYRICS_EDITOR_IS_EDITOR(editor))
+        return;
+
+    LYRICS_EDITOR_GET_INTERFACE(editor)->edit_lyrics(tracks);
+}
+
diff --git a/libgtkpod/lyrics_editor_iface.h b/libgtkpod/lyrics_editor_iface.h
index 0b5d382..1a9fa07 100644
--- a/libgtkpod/lyrics_editor_iface.h
+++ b/libgtkpod/lyrics_editor_iface.h
@@ -35,6 +35,11 @@
 #include <gtk/gtk.h>
 #include "itdb.h"
 
+#define LYRICS_EDITOR_TYPE                (lyrics_editor_get_type ())
+#define LYRICS_EDITOR(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
LYRICS_EDITOR_TYPE, LyricsEditor))
+#define LYRICS_EDITOR_IS_EDITOR(obj)             (G_TYPE_CHECK_INSTANCE_TYPE 
((obj), LYRICS_EDITOR_TYPE))
+#define LYRICS_EDITOR_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE 
((inst), LYRICS_EDITOR_TYPE, LyricsEditorInterface))
+
 typedef struct _LyricsEditor LyricsEditor;
 typedef struct _LyricsEditorInterface LyricsEditorInterface;
 
@@ -46,9 +51,6 @@ struct _LyricsEditorInterface {
 
 GType lyrics_editor_get_type(void);
 
-#define LYRICS_EDITOR_TYPE                (lyrics_editor_get_type ())
-#define LYRICS_EDITOR(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
LYRICS_EDITOR_TYPE, LyricsEditor))
-#define LYRICS_EDITOR_IS_EDITOR(obj)             (G_TYPE_CHECK_INSTANCE_TYPE 
((obj), LYRICS_EDITOR_TYPE))
-#define LYRICS_EDITOR_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE 
((inst), LYRICS_EDITOR_TYPE, LyricsEditorInterface))
+void lyrics_editor_edit_lyrics(LyricsEditor *editor, GList *tracks);
 
 #endif /* LYRICS_EDITOR_IFACE_H_ */
diff --git a/libgtkpod/misc_playlist.c b/libgtkpod/misc_playlist.c
index 0a5ad75..03dbc94 100644
--- a/libgtkpod/misc_playlist.c
+++ b/libgtkpod/misc_playlist.c
@@ -1327,7 +1327,7 @@ void delete_playlist_head(DeleteAction deleteaction) {
 void copy_playlist_to_target_playlist(Playlist *pl, Playlist *t_pl) {
     GList *addtracks = NULL;
     Playlist *t_mpl;
-    ExporterInterface *exporter;
+    Exporter *exporter;
 
     g_return_if_fail (pl);
     g_return_if_fail (t_pl);
@@ -1338,7 +1338,7 @@ void copy_playlist_to_target_playlist(Playlist *pl, 
Playlist *t_pl) {
     exporter = gtkpod_get_exporter();
     g_return_if_fail(exporter);
 
-    addtracks = exporter->transfer_track_glist_between_itdbs(pl->itdb, 
t_pl->itdb, pl->members);
+    addtracks = exporter_transfer_track_glist_between_itdbs(exporter, 
pl->itdb, t_pl->itdb, pl->members);
     if (addtracks || !pl->members) {
         add_trackglist_to_playlist(t_pl, addtracks);
         gtkpod_statusbar_message(_("Copied '%s' playlist to '%s' in '%s'"), 
pl->name, t_pl->name, t_mpl->name);
@@ -1353,7 +1353,7 @@ void copy_playlist_to_target_playlist(Playlist *pl, 
Playlist *t_pl) {
 void copy_playlist_to_target_itdb(Playlist *pl, iTunesDB *t_itdb) {
     Playlist *pl_n;
     GList *addtracks = NULL;
-    ExporterInterface *exporter;
+    Exporter *exporter;
 
     g_return_if_fail (pl);
     g_return_if_fail (t_itdb);
@@ -1362,7 +1362,7 @@ void copy_playlist_to_target_itdb(Playlist *pl, iTunesDB 
*t_itdb) {
     g_return_if_fail(exporter);
 
     if (pl->itdb != t_itdb) {
-        addtracks = exporter->transfer_track_glist_between_itdbs(pl->itdb, 
t_itdb, pl->members);
+        addtracks = exporter_transfer_track_glist_between_itdbs(exporter, 
pl->itdb, t_itdb, pl->members);
         if (addtracks || !pl->members) {
             pl_n = gp_playlist_add_new(t_itdb, pl->name, FALSE, -1);
             add_trackglist_to_playlist(pl_n, addtracks);
diff --git a/libgtkpod/misc_track.c b/libgtkpod/misc_track.c
index 3a01ce0..65b115e 100644
--- a/libgtkpod/misc_track.c
+++ b/libgtkpod/misc_track.c
@@ -2080,7 +2080,7 @@ void copy_tracks_to_target_playlist(GList *tracks, 
Playlist *t_pl) {
     Track *first;
     Playlist *mpl;
     gint n;
-    ExporterInterface *exporter;
+    Exporter *exporter;
 
     g_return_if_fail (tracks);
     g_return_if_fail (t_pl);
@@ -2095,7 +2095,7 @@ void copy_tracks_to_target_playlist(GList *tracks, 
Playlist *t_pl) {
     if (tracks) {
         first = tracks->data;
         g_return_if_fail (first);
-        addtracks = exporter->transfer_track_glist_between_itdbs(first->itdb, 
t_pl->itdb, tracks);
+        addtracks = exporter_transfer_track_glist_between_itdbs(exporter, 
first->itdb, t_pl->itdb, tracks);
         add_trackglist_to_playlist(t_pl, addtracks);
     }
     n = g_list_length(addtracks);
@@ -2113,7 +2113,7 @@ void copy_tracks_to_target_itdb(GList *tracks, iTunesDB 
*t_itdb) {
     Track *first = tracks->data;
     Playlist *mpl;
     gint n;
-    ExporterInterface *exporter;
+    Exporter *exporter;
 
     g_return_if_fail(tracks);
     g_return_if_fail(t_itdb);
@@ -2124,7 +2124,7 @@ void copy_tracks_to_target_itdb(GList *tracks, iTunesDB 
*t_itdb) {
     exporter = gtkpod_get_exporter();
     g_return_if_fail(exporter);
 
-    addtracks = exporter->transfer_track_glist_between_itdbs(first->itdb, 
t_itdb, tracks);
+    addtracks = exporter_transfer_track_glist_between_itdbs(exporter, 
first->itdb, t_itdb, tracks);
 
     if (addtracks) {
         add_trackglist_to_playlist(mpl, addtracks);
diff --git a/libgtkpod/photo_editor_iface.c b/libgtkpod/photo_editor_iface.c
index 65924f3..7a301e0 100644
--- a/libgtkpod/photo_editor_iface.c
+++ b/libgtkpod/photo_editor_iface.c
@@ -51,3 +51,10 @@ GType photo_editor_get_type(void) {
     }
     return type;
 }
+
+void photo_editor_edit_photos(PhotoEditor *editor, iTunesDB *itdb) {
+    if (!PHOTO_EDITOR_IS_EDITOR(editor))
+        return;
+
+    PHOTO_EDITOR_GET_INTERFACE(editor)->edit_photos(itdb);
+}
diff --git a/libgtkpod/photo_editor_iface.h b/libgtkpod/photo_editor_iface.h
index ee3fb8f..2f16efb 100644
--- a/libgtkpod/photo_editor_iface.h
+++ b/libgtkpod/photo_editor_iface.h
@@ -35,6 +35,11 @@
 #include <gtk/gtk.h>
 #include "itdb.h"
 
+#define PHOTO_EDITOR_TYPE                (photo_editor_get_type ())
+#define PHOTO_EDITOR(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
PHOTO_EDITOR_TYPE, PhotoEditor))
+#define PHOTO_EDITOR_IS_EDITOR(obj)             (G_TYPE_CHECK_INSTANCE_TYPE 
((obj), PHOTO_EDITOR_TYPE))
+#define PHOTO_EDITOR_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE 
((inst), PHOTO_EDITOR_TYPE, PhotoEditorInterface))
+
 typedef struct _PhotoEditor PhotoEditor;
 typedef struct _PhotoEditorInterface PhotoEditorInterface;
 
@@ -46,9 +51,6 @@ struct _PhotoEditorInterface {
 
 GType photo_editor_get_type(void);
 
-#define PHOTO_EDITOR_TYPE                (photo_editor_get_type ())
-#define PHOTO_EDITOR(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
PHOTO_EDITOR_TYPE, PhotoEditor))
-#define PHOTO_EDITOR_IS_EDITOR(obj)             (G_TYPE_CHECK_INSTANCE_TYPE 
((obj), PHOTO_EDITOR_TYPE))
-#define PHOTO_EDITOR_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE 
((inst), PHOTO_EDITOR_TYPE, PhotoEditorInterface))
+void photo_editor_edit_photos(PhotoEditor *editor, iTunesDB *itdb);
 
 #endif /* PHOTO_EDITOR_IFACE_H_ */
diff --git a/libgtkpod/repository_editor_iface.c 
b/libgtkpod/repository_editor_iface.c
index 1c3b51c..a5369ee 100644
--- a/libgtkpod/repository_editor_iface.c
+++ b/libgtkpod/repository_editor_iface.c
@@ -53,3 +53,24 @@ GType repository_editor_get_type(void) {
     }
     return type;
 }
+
+void repository_editor_edit_repository(RepositoryEditor *editor, iTunesDB 
*itdb, Playlist *playlist) {
+    if (! REPOSITORY_EDITOR_IS_EDITOR(editor))
+           return;
+
+       REPOSITORY_EDITOR_GET_INTERFACE(editor)->edit_repository(itdb, 
playlist);
+}
+
+gboolean repository_editor_init_repository(RepositoryEditor *editor, iTunesDB 
*itdb) {
+    if (! REPOSITORY_EDITOR_IS_EDITOR(editor))
+           return FALSE;
+
+    return REPOSITORY_EDITOR_GET_INTERFACE(editor)->init_repository(itdb);
+}
+
+void repository_edtor_set_repository_model(RepositoryEditor *editor, iTunesDB 
*itdb, const gchar *old_model) {
+    if (! REPOSITORY_EDITOR_IS_EDITOR(editor))
+           return;
+
+    REPOSITORY_EDITOR_GET_INTERFACE(editor)->set_repository_model(itdb, 
old_model);
+}
diff --git a/libgtkpod/repository_editor_iface.h 
b/libgtkpod/repository_editor_iface.h
index 69197ef..db9b435 100644
--- a/libgtkpod/repository_editor_iface.h
+++ b/libgtkpod/repository_editor_iface.h
@@ -35,6 +35,11 @@
 #include <gtk/gtk.h>
 #include "itdb.h"
 
+#define REPOSITORY_EDITOR_TYPE                (repository_editor_get_type ())
+#define REPOSITORY_EDITOR(obj)                (G_TYPE_CHECK_INSTANCE_CAST 
((obj), REPOSITORY_EDITOR_TYPE, RepositoryEditor))
+#define REPOSITORY_EDITOR_IS_EDITOR(obj)             
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), REPOSITORY_EDITOR_TYPE))
+#define REPOSITORY_EDITOR_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE 
((inst), REPOSITORY_EDITOR_TYPE, RepositoryEditorInterface))
+
 typedef struct _RepositoryEditor RepositoryEditor;
 typedef struct _RepositoryEditorInterface RepositoryEditorInterface;
 
@@ -48,9 +53,8 @@ struct _RepositoryEditorInterface {
 
 GType repository_editor_get_type(void);
 
-#define REPOSITORY_EDITOR_TYPE                (repository_editor_get_type ())
-#define REPOSITORY_EDITOR(obj)                (G_TYPE_CHECK_INSTANCE_CAST 
((obj), REPOSITORY_EDITOR_TYPE, RepositoryEditor))
-#define REPOSITORY_EDITOR_IS_EDITOR(obj)             
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), REPOSITORY_EDITOR_TYPE))
-#define REPOSITORY_EDITOR_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE 
((inst), REPOSITORY_EDITOR_TYPE, RepositoryEditorInterface))
+void repository_editor_edit_repository(RepositoryEditor *editor, iTunesDB 
*itdb, Playlist *playlist);
+gboolean repository_editor_init_repository(RepositoryEditor *editor, iTunesDB 
*itdb);
+void repository_edtor_set_repository_model(RepositoryEditor *editor, iTunesDB 
*itdb, const gchar *old_model);
 
 #endif /* REPOSITORY_EDITOR_IFACE_H_ */
diff --git a/libgtkpod/track_command_iface.c b/libgtkpod/track_command_iface.c
index 1ac814f..34183bf 100644
--- a/libgtkpod/track_command_iface.c
+++ b/libgtkpod/track_command_iface.c
@@ -45,17 +45,42 @@ GType track_command_get_type(void) {
     if (!type) {
         static const GTypeInfo info =
             { sizeof(TrackCommandInterface), (GBaseInitFunc) 
track_command_base_init, NULL, NULL, NULL, NULL, 0, 0, NULL };
-        type = g_type_register_static(G_TYPE_INTERFACE, 
"TrackCommandInterface", &info, 0);
+        type = g_type_register_static(G_TYPE_INTERFACE, "TrackCommand", &info, 
0);
         g_type_interface_add_prerequisite(type, G_TYPE_OBJECT);
     }
     return type;
 }
 
+gchar *track_command_get_id(TrackCommand *command) {
+    if (!TRACK_IS_COMMAND(command))
+            return NULL;
+
+    return TRACK_COMMAND_GET_INTERFACE(command)->id;
+}
+
+gchar *track_command_get_text(TrackCommand *command) {
+    if (!TRACK_IS_COMMAND(command))
+            return NULL;
+
+    return TRACK_COMMAND_GET_INTERFACE(command)->text;
+}
+
+void track_command_execute(TrackCommand *command, GList *tracks) {
+    if (!tracks) {
+        return;
+    }
+
+    if (!TRACK_IS_COMMAND(command))
+        return;
+
+    return TRACK_COMMAND_GET_INTERFACE(command)->execute(tracks);
+}
+
 void on_track_command_menuitem_activate(GtkMenuItem *mi, gpointer data) {
     GPtrArray *pairarr = (GPtrArray *) data;
 
-    TrackCommandInterface *cmd = g_ptr_array_index(pairarr, 0);
+    TrackCommand *cmd = g_ptr_array_index(pairarr, 0);
     GList *tracks = g_ptr_array_index(pairarr, 1);
-    cmd->execute(tracks);
+    track_command_execute(cmd, tracks);
     g_ptr_array_free(pairarr, FALSE);
 }
diff --git a/libgtkpod/track_command_iface.h b/libgtkpod/track_command_iface.h
index cb9d99e..59e3864 100644
--- a/libgtkpod/track_command_iface.h
+++ b/libgtkpod/track_command_iface.h
@@ -56,6 +56,9 @@ GType track_command_get_type(void);
 #define TRACK_IS_COMMAND(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
TRACK_COMMAND_TYPE))
 #define TRACK_COMMAND_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE 
((inst), TRACK_COMMAND_TYPE, TrackCommandInterface))
 
+gchar *track_command_get_id(TrackCommand *command);
+gchar *track_command_get_text(TrackCommand *command);
+void track_command_execute(TrackCommand *command, GList *tracks);
 void on_track_command_menuitem_activate(GtkMenuItem *mi, gpointer data);
 
 #endif /* TRACK_COMMAND_IFACE_H_ */
diff --git a/plugins/exporter/exporter_actions.c 
b/plugins/exporter/exporter_actions.c
index 2027b6f..18d40fb 100644
--- a/plugins/exporter/exporter_actions.c
+++ b/plugins/exporter/exporter_actions.c
@@ -40,14 +40,14 @@ void on_export_tracks_to_playlist_file(GtkAction *action, 
ExporterPlugin* plugin
     GList *tracks = gtkpod_get_selected_tracks();
     g_return_if_fail(tracks);
 
-    ExporterInterface *exporter = gtkpod_get_exporter();
-    exporter->export_tracks_to_playlist_file(tracks);
+    Exporter *exporter = gtkpod_get_exporter();
+    exporter_export_tracks_to_playlist_file(exporter, tracks);
 }
 
 void on_export_tracks_to_filesystem(GtkAction *action, ExporterPlugin* plugin) 
{
     GList *tracks = gtkpod_get_selected_tracks();
     g_return_if_fail(tracks);
 
-    ExporterInterface *exporter = gtkpod_get_exporter();
-    exporter->export_tracks_as_files(tracks, NULL, FALSE, NULL);
+    Exporter *exporter = gtkpod_get_exporter();
+    exporter_export_tracks_as_files(exporter, tracks, NULL, FALSE, NULL);
 }
diff --git a/plugins/media_player/plugin.c b/plugins/media_player/plugin.c
index f2a2bf9..fef536d 100644
--- a/plugins/media_player/plugin.c
+++ b/plugins/media_player/plugin.c
@@ -84,7 +84,7 @@ static gboolean activate_plugin(AnjutaPlugin *plugin) {
 
     init_media_player(media_player_plugin->media_player_window);
 
-    
gtkpod_register_track_command(TRACK_COMMAND_GET_INTERFACE(media_player_plugin));
+    gtkpod_register_track_command(TRACK_COMMAND(media_player_plugin));
 
     // Do not show all as video widget is initially invisible
     gtk_widget_show(media_player_plugin->media_player_window);
@@ -100,7 +100,7 @@ static gboolean deactivate_plugin(AnjutaPlugin *plugin) {
     media_player_plugin = (MediaPlayerPlugin*) plugin;
     ui = anjuta_shell_get_ui(plugin->shell, NULL);
 
-    
gtkpod_unregister_track_command(TRACK_COMMAND_GET_INTERFACE(media_player_plugin));
+    gtkpod_unregister_track_command(TRACK_COMMAND(media_player_plugin));
 
     /* Destroy the browser */
     destroy_media_player();
diff --git a/plugins/playlist_display/display_playlists.c 
b/plugins/playlist_display/display_playlists.c
index 1adcaad..db026cd 100644
--- a/plugins/playlist_display/display_playlists.c
+++ b/plugins/playlist_display/display_playlists.c
@@ -509,7 +509,7 @@ static void pm_drag_data_received(GtkWidget *widget, 
GdkDragContext *dc, gint x,
     gboolean path_ok;
     gboolean del_src;
 
-    ExporterInterface *exporter = gtkpod_get_exporter();
+    Exporter *exporter = gtkpod_get_exporter();
     g_return_if_fail(exporter);
 
     /* printf ("drag_data_received: x y a: %d %d %d\n", x, y, 
dc->suggested_action); */
@@ -619,7 +619,7 @@ static void pm_drag_data_received(GtkWidget *widget, 
GdkDragContext *dc, gint x,
 
         if ((pos == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE) || (pos == 
GTK_TREE_VIEW_DROP_INTO_OR_AFTER)) { /* drop into existing playlist */
             /* copy files from iPod if necessary */
-            GList *trackglist = 
exporter->transfer_track_names_between_itdbs(tr_s->itdb, pl->itdb, data_copy);
+            GList *trackglist = 
exporter_transfer_track_names_between_itdbs(exporter, tr_s->itdb, pl->itdb, 
data_copy);
             if (trackglist) {
                 add_trackglist_to_playlist(pl, trackglist);
                 g_list_free(trackglist);
@@ -641,7 +641,7 @@ static void pm_drag_data_received(GtkWidget *widget, 
GdkDragContext *dc, gint x,
 
             if (plitem) {
                 /* copy files from iPod if necessary */
-                GList *trackglist = 
exporter->transfer_track_names_between_itdbs(tr_s->itdb, pl->itdb, data_copy);
+                GList *trackglist = 
exporter_transfer_track_names_between_itdbs(exporter, tr_s->itdb, pl->itdb, 
data_copy);
                 if (trackglist) {
                     add_trackglist_to_playlist(plitem, trackglist);
                     g_list_free(trackglist);
@@ -776,7 +776,7 @@ static void pm_drag_data_received(GtkWidget *widget, 
GdkDragContext *dc, gint x,
             g_return_if_fail (pl_d);
 
             /* copy files from iPod if necessary */
-            trackglist = 
exporter->transfer_track_glist_between_itdbs(pl_s->itdb, pl_d->itdb, 
pl_s->members);
+            trackglist = exporter_transfer_track_glist_between_itdbs(exporter, 
pl_s->itdb, pl_d->itdb, pl_s->members);
 
             /* check if copying went fine (trackglist is empty if
              pl_s->members is empty, so this must not be counted as
diff --git a/plugins/track_display/track_display_preferences.c 
b/plugins/track_display/track_display_preferences.c
index 85d2f38..4dee200 100644
--- a/plugins/track_display/track_display_preferences.c
+++ b/plugins/track_display/track_display_preferences.c
@@ -348,8 +348,8 @@ static void trkcmd_combobox_changed(GtkComboBox *combo) {
 
     if (activeindex > -1) {
         GList *cmds = g_object_get_data(G_OBJECT(combo), "cmds");
-        TrackCommandInterface *cmd = g_list_nth_data(cmds, activeindex);
-        prefs_set_string(DEFAULT_TRACK_COMMAND_PREF_KEY, cmd->id);
+        TrackCommand *cmd = g_list_nth_data(cmds, activeindex);
+        prefs_set_string(DEFAULT_TRACK_COMMAND_PREF_KEY, 
track_command_get_id(cmd));
     }
 }
 
@@ -373,9 +373,9 @@ static void populate_track_cmd_combo(GtkComboBox *combo) {
     prefs_get_string_value(DEFAULT_TRACK_COMMAND_PREF_KEY, &cmdpref);
 
     for (i = 0; i < g_list_length(trkcmds); ++i) {
-        TrackCommandInterface *cmd = g_list_nth_data(trkcmds, i);
-        gtk_combo_box_append_text(combo, _(cmd->text));
-        if (cmdpref && g_str_equal(cmdpref, cmd->id))
+        TrackCommand *cmd = g_list_nth_data(trkcmds, i);
+        gtk_combo_box_append_text(combo, _(track_command_get_text(cmd)));
+        if (cmdpref && g_str_equal(cmdpref, track_command_get_id(cmd)))
             activeindex = i;
     }
 

------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today
http://p.sf.net/sfu/msIE9-sfdev2dev
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to