commit a5193d9f25a6f052d28b50f622f197f85707383c
Author: phantomjinx <[email protected]>
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2