commit 329cf31c79f177c51739d55ca820fa7d99dbbc82 Author: phantomjinx <p.g.richard...@phantomjinx.co.uk> Date: Sun Sep 11 00:42:23 2011 +0100
Tidy up some function and variables * clarity_utils.* * Since these functions are being called externally then rename them to the full namespace. * Refactor the process of signalling a track update to a single function so it can be reused. * clarity_canvas.c * Change the _set_loading_complete function to the clearer clarity_canvas_block_change * Rename all references of ccanvas / cc to self since this is the file we are in. plugins/clarity/album_model.c | 2 +- plugins/clarity/clarity_canvas.c | 101 ++++++++++++++++-------------------- plugins/clarity/clarity_canvas.h | 6 ++- plugins/clarity/clarity_preview.c | 11 +---- plugins/clarity/clarity_utils.c | 32 +++++++++++- plugins/clarity/clarity_utils.h | 17 +++++-- plugins/clarity/clarity_widget.c | 8 ++-- 7 files changed, 98 insertions(+), 79 deletions(-) --- diff --git a/plugins/clarity/album_model.c b/plugins/clarity/album_model.c index 507cd0e..41675fb 100644 --- a/plugins/clarity/album_model.c +++ b/plugins/clarity/album_model.c @@ -333,7 +333,7 @@ void album_model_init_coverart(AlbumModel *model, AlbumItem *item) { item->albumart = NULL; } - item->albumart = _get_track_image(track); + item->albumart = clarity_util_get_track_image(track); } AlbumItem *album_model_get_item_with_index(AlbumModel *model, gint index) { diff --git a/plugins/clarity/clarity_canvas.c b/plugins/clarity/clarity_canvas.c index 865a114..ba71c9c 100644 --- a/plugins/clarity/clarity_canvas.c +++ b/plugins/clarity/clarity_canvas.c @@ -67,7 +67,7 @@ struct _ClarityCanvasPrivate { gulong preview_signal; - gboolean loading_complete; + gboolean blocked; }; enum DIRECTION { @@ -132,14 +132,23 @@ static void _update_text(ClarityCanvasPrivate *priv) { clutter_actor_set_position(priv->title_text, titlex, titley); } -static void _set_loading_complete(ClarityCanvasPrivate *priv, gboolean value) { - priv->loading_complete = value; +void clarity_canvas_block_change(ClarityCanvas *self, gboolean value) { + g_return_if_fail(self); + + ClarityCanvasPrivate *priv = CLARITY_CANVAS_GET_PRIVATE(self); + priv->blocked = value; - if (value) { + if (!value) { _update_text(priv); } } +gboolean clarity_canvas_is_blocked(ClarityCanvas *self) { + g_return_val_if_fail(self, TRUE); + ClarityCanvasPrivate *priv = CLARITY_CANVAS_GET_PRIVATE(self); + return priv->blocked; +} + static void _preview_cover(ClarityCanvasPrivate *priv) { if (!priv->model) return; @@ -164,8 +173,8 @@ static void _preview_cover(ClarityCanvasPrivate *priv) { * */ static gint _on_main_cover_image_clicked_cb(GtkWidget *widget, GdkEvent *event, gpointer data) { - ClarityCanvas *ccanvas = CLARITY_CANVAS(widget); - ClarityCanvasPrivate *priv = ccanvas->priv; + ClarityCanvas *self = CLARITY_CANVAS(widget); + ClarityCanvasPrivate *priv = self->priv; guint mbutton; if (event->type != GDK_BUTTON_PRESS) @@ -174,14 +183,14 @@ static gint _on_main_cover_image_clicked_cb(GtkWidget *widget, GdkEvent *event, mbutton = event->button.button; if ((mbutton == 1) && (event->button.state & GDK_SHIFT_MASK)) { - _set_loading_complete(priv, FALSE); + clarity_canvas_block_change(self, TRUE); AlbumItem *item = album_model_get_item_with_index(priv->model, priv->curr_index); if (item) { gtkpod_set_displayed_tracks(item->tracks); } - _set_loading_complete(priv, TRUE); + clarity_canvas_block_change(self, FALSE); } else if (mbutton == 1) { _preview_cover(priv); @@ -198,7 +207,7 @@ static gint _on_main_cover_image_clicked_cb(GtkWidget *widget, GdkEvent *event, /* Right mouse button clicked on its own so display * popup menu */ - clarity_context_menu_init(ccanvas); + clarity_context_menu_init(self); } return FALSE; @@ -270,7 +279,7 @@ static void clarity_canvas_init(ClarityCanvas *self) { priv->timeline = clutter_timeline_new(1600); priv->alpha = clutter_alpha_new_full(priv->timeline, CLUTTER_EASE_OUT_EXPO); priv->curr_index = 0; - priv->loading_complete = FALSE; + priv->blocked = FALSE; } @@ -453,8 +462,6 @@ static void _set_cover_position(ClarityCover *ccover, gint index) { static gboolean _create_cover_actors(ClarityCanvasPrivate *priv, AlbumItem *album_item, gint index) { g_return_val_if_fail(priv, FALSE); - _set_loading_complete(priv, FALSE); - ClarityCover *ccover = clarity_cover_new(); clutter_actor_set_opacity(CLUTTER_ACTOR(ccover), 0); priv->covers = g_list_insert(priv->covers, ccover, index); @@ -469,7 +476,6 @@ static gboolean _create_cover_actors(ClarityCanvasPrivate *priv, AlbumItem *albu if((priv->curr_index + VISIBLE_ITEMS < index) || (priv->curr_index - VISIBLE_ITEMS > index)) { - _set_loading_complete(priv, TRUE); return FALSE; } @@ -497,19 +503,19 @@ static gboolean _create_cover_actors(ClarityCanvasPrivate *priv, AlbumItem *albu _display_clarity_cover(ccover, index); - _set_loading_complete(priv, TRUE); - return FALSE; } void _init_album_item(gpointer value, gint index, gpointer user_data) { AlbumItem *item = (AlbumItem *) value; - ClarityCanvas *cc = CLARITY_CANVAS(user_data); - ClarityCanvasPrivate *priv = CLARITY_CANVAS_GET_PRIVATE(cc); + ClarityCanvas *self = CLARITY_CANVAS(user_data); + ClarityCanvasPrivate *priv = CLARITY_CANVAS_GET_PRIVATE(self); album_model_init_coverart(priv->model, item); + clarity_canvas_block_change(self, TRUE); _create_cover_actors(priv, item, index); + clarity_canvas_block_change(self, FALSE); } void _destroy_cover(ClarityCanvas *cc, gint index) { @@ -632,8 +638,6 @@ static void _restore_z_order(ClarityCanvasPrivate *priv) { static void _move(ClarityCanvasPrivate *priv, enum DIRECTION direction, gint increment) { - _set_loading_complete(priv, FALSE); - /* Stop any animation */ clutter_timeline_stop(priv->timeline); @@ -649,8 +653,6 @@ static void _move(ClarityCanvasPrivate *priv, enum DIRECTION direction, gint inc priv->curr_index += ((direction * -1) * increment); _restore_z_order(priv); - - _set_loading_complete(priv, TRUE); } void clarity_canvas_move_left(ClarityCanvas *self, gint increment) { @@ -660,7 +662,9 @@ void clarity_canvas_move_left(ClarityCanvas *self, gint increment) { if(priv->curr_index == g_list_length(priv->covers) - 1) return; + clarity_canvas_block_change(self, TRUE); _move(priv, MOVE_LEFT, increment); + clarity_canvas_block_change(self, FALSE); } void clarity_canvas_move_right(ClarityCanvas *self, gint increment) { @@ -670,7 +674,9 @@ void clarity_canvas_move_right(ClarityCanvas *self, gint increment) { if(priv->curr_index == 0) return; + clarity_canvas_block_change(self, TRUE); _move(priv, MOVE_RIGHT, increment); + clarity_canvas_block_change(self, FALSE); } gint clarity_canvas_get_current_index(ClarityCanvas *self) { @@ -680,10 +686,14 @@ gint clarity_canvas_get_current_index(ClarityCanvas *self) { return priv->curr_index; } -gboolean clarity_canvas_is_loading(ClarityCanvas *self) { - g_return_val_if_fail(self, FALSE); +AlbumItem *clarity_canvas_get_current_album_item(ClarityCanvas *self) { + g_return_val_if_fail(self, NULL); ClarityCanvasPrivate *priv = CLARITY_CANVAS_GET_PRIVATE(self); - return !priv->loading_complete; + + if (!priv->model) + return NULL; + + return album_model_get_item_with_index(priv->model, priv->curr_index); } void clarity_canvas_add_album_item(ClarityCanvas *self, AlbumItem *item) { @@ -693,13 +703,13 @@ void clarity_canvas_add_album_item(ClarityCanvas *self, AlbumItem *item) { ClarityCanvasPrivate *priv = CLARITY_CANVAS_GET_PRIVATE(self); gint index = album_model_get_index_with_album_item(priv->model, item); - _set_loading_complete(priv, FALSE); + clarity_canvas_block_change(self, TRUE); _init_album_item(item, index, self); _animate_indices(priv, 0, 0); - _set_loading_complete(priv, TRUE); + clarity_canvas_block_change(self, FALSE); } void clarity_canvas_remove_album_item(ClarityCanvas *self, AlbumItem *item) { @@ -709,23 +719,23 @@ void clarity_canvas_remove_album_item(ClarityCanvas *self, AlbumItem *item) { ClarityCanvasPrivate *priv = CLARITY_CANVAS_GET_PRIVATE(self); gint index = album_model_get_index_with_album_item(priv->model, item); - _set_loading_complete(priv, FALSE); + clarity_canvas_block_change(self, TRUE); _destroy_cover(self, index); _animate_indices(priv, 0, 0); - _set_loading_complete(priv, TRUE); + clarity_canvas_block_change(self, FALSE); } -void clarity_canvas_update(ClarityCanvas *cc, AlbumItem *item) { - g_return_if_fail(cc); +void clarity_canvas_update(ClarityCanvas *self, AlbumItem *item) { + g_return_if_fail(self); - ClarityCanvasPrivate *priv = CLARITY_CANVAS_GET_PRIVATE(cc); + ClarityCanvasPrivate *priv = CLARITY_CANVAS_GET_PRIVATE(self); gint index = album_model_get_index_with_album_item(priv->model, item); - _set_loading_complete(priv, FALSE); + clarity_canvas_block_change(self, TRUE); album_model_init_coverart(priv->model, item); @@ -739,7 +749,7 @@ void clarity_canvas_update(ClarityCanvas *cc, AlbumItem *item) { _animate_indices(priv, 0, 0); - _set_loading_complete(priv, TRUE); + clarity_canvas_block_change(self, FALSE); } static void _set_cover_from_file(ClarityCanvas *self) { @@ -747,32 +757,11 @@ static void _set_cover_from_file(ClarityCanvas *self) { ClarityCanvasPrivate *priv = CLARITY_CANVAS_GET_PRIVATE(self); - gchar *filename; - Track *track; - GList *tracks; - - filename = fileselection_get_cover_filename(); + gchar *filename = fileselection_get_cover_filename(); if (filename) { AlbumItem *item = album_model_get_item_with_index(priv->model, priv->curr_index); - tracks = g_list_copy(item->tracks); - - while (tracks) { - track = tracks->data; - - if (gp_track_set_thumbnails(track, filename)) { - ExtraTrackData *etd; - etd = track->userdata; - etd->tartwork_changed = TRUE; - - gtkpod_track_updated(track); - data_changed(track->itdb); - - etd->tartwork_changed = FALSE; - } - - tracks = tracks->next; - } + clarity_util_update_coverart(item->tracks, filename); } g_free(filename); diff --git a/plugins/clarity/clarity_canvas.h b/plugins/clarity/clarity_canvas.h index e5bc41b..60ae2b9 100644 --- a/plugins/clarity/clarity_canvas.h +++ b/plugins/clarity/clarity_canvas.h @@ -86,7 +86,11 @@ void clarity_canvas_move_right(ClarityCanvas *self, gint increment); gint clarity_canvas_get_current_index(ClarityCanvas *self); -gboolean clarity_canvas_is_loading(ClarityCanvas *self); +AlbumItem *clarity_canvas_get_current_album_item(ClarityCanvas *self); + +void clarity_canvas_block_change(ClarityCanvas *self, gboolean value); + +gboolean clarity_canvas_is_blocked(ClarityCanvas *self); void clarity_canvas_add_album_item(ClarityCanvas *self, AlbumItem *item); diff --git a/plugins/clarity/clarity_preview.c b/plugins/clarity/clarity_preview.c index 8c18c80..f61b3b1 100644 --- a/plugins/clarity/clarity_preview.c +++ b/plugins/clarity/clarity_preview.c @@ -46,19 +46,10 @@ struct _ClarityPreviewPrivate { }; -static void clarity_preview_finalize(GObject *gobject) { - ClarityPreviewPrivate *priv = CLARITY_PREVIEW(gobject)->priv; - - - /* call the parent class' finalize() method */ - G_OBJECT_CLASS(clarity_preview_parent_class)->finalize(gobject); -} - static void clarity_preview_class_init(ClarityPreviewClass *klass) { GObjectClass *gobject_class; gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = clarity_preview_finalize; g_type_class_add_private(klass, sizeof(ClarityPreviewPrivate)); } @@ -129,7 +120,7 @@ static GdkPixbuf *_get_album_artwork(AlbumItem *item) { */ if (!imgbuf) { /* Could not get a viable thumbnail so get default pixbuf */ - imgbuf = get_default_track_image(400); + imgbuf = clarity_util_get_default_track_image(400); } return imgbuf; diff --git a/plugins/clarity/clarity_utils.c b/plugins/clarity/clarity_utils.c index fc17187..c974bf5 100644 --- a/plugins/clarity/clarity_utils.c +++ b/plugins/clarity/clarity_utils.c @@ -30,6 +30,7 @@ #define CLARITY_UTILS_C_ #include "clarity_utils.h" +#include "libgtkpod/file.h" /** * _get_default_track_image: @@ -39,7 +40,7 @@ * Returns: * pixbuf of the default file for tracks with no cover art. */ -GdkPixbuf *get_default_track_image(gint default_img_size) { +GdkPixbuf *clarity_util_get_default_track_image(gint default_img_size) { GdkPixbuf *pixbuf = NULL; GdkPixbuf *scaled = NULL; GError *error = NULL; @@ -56,7 +57,7 @@ GdkPixbuf *get_default_track_image(gint default_img_size) { return scaled; } -GdkPixbuf *_get_track_image(Track *track) { +GdkPixbuf *clarity_util_get_track_image(Track *track) { GdkPixbuf *pixbuf = NULL; ExtraTrackData *etd; @@ -69,10 +70,35 @@ GdkPixbuf *_get_track_image(Track *track) { if (!pixbuf) { /* Could not get a viable thumbnail so get default pixbuf */ - pixbuf = get_default_track_image(DEFAULT_IMG_SIZE); + pixbuf = clarity_util_get_default_track_image(DEFAULT_IMG_SIZE); } return pixbuf; } +void clarity_util_update_coverart(GList *tracks, const gchar *filename) { + g_return_if_fail(filename); + + if (!tracks) + return; + + GList *tks = g_list_copy(tracks); + + while (tks) { + Track *track = tks->data; + + if (gp_track_set_thumbnails(track, filename)) { + ExtraTrackData *etd = track->userdata; + etd->tartwork_changed = TRUE; + + gtkpod_track_updated(track); + data_changed(track->itdb); + + etd->tartwork_changed = FALSE; + } + + tks = tks->next; + } +} + #endif /* CLARITY_UTILS_C_ */ diff --git a/plugins/clarity/clarity_utils.h b/plugins/clarity/clarity_utils.h index 8217c19..ddbd901 100644 --- a/plugins/clarity/clarity_utils.h +++ b/plugins/clarity/clarity_utils.h @@ -37,23 +37,32 @@ #define DEFAULT_IMG_SIZE 140 /** - * _get_default_track_image: + * clarity_util_get_default_track_image: * * Retrieve the artwork pixbuf from the default image file. * * Returns: * pixbuf of the default file for tracks with no cover art. */ -GdkPixbuf *get_default_track_image(gint default_img_size); +GdkPixbuf *clarity_util_get_default_track_image(gint default_img_size); /** - * _get_track_image: + * clarity_util_get_track_image: * * Retrieve the artwork pixbuf from the given track. * * Returns: * pixbuf of the artwork of the track. */ -GdkPixbuf *_get_track_image(Track *track); +GdkPixbuf *clarity_util_get_track_image(Track *track); + +/** + * clarity_util_update_coverart + * + * Update each track with the given filename of the + * proposed artwork then notify all parties of the change. + * + */ +void clarity_util_update_coverart(GList *tracks, const gchar *filename); #endif /* CLARITY_UTILS_H_ */ diff --git a/plugins/clarity/clarity_widget.c b/plugins/clarity/clarity_widget.c index b379f23..c044d40 100644 --- a/plugins/clarity/clarity_widget.c +++ b/plugins/clarity/clarity_widget.c @@ -448,7 +448,7 @@ void clarity_widget_tracks_selected_cb(GtkPodApp *app, gpointer tks, gpointer da tracks = _sort_track_list(tracks); ClarityCanvas *ccanvas = CLARITY_CANVAS(priv->draw_area); - if (clarity_canvas_is_loading(ccanvas)) + if (clarity_canvas_is_blocked(ccanvas)) return; gint album_index = album_model_get_index_with_track(priv->album_model, tracks->data); @@ -458,7 +458,7 @@ void clarity_widget_tracks_selected_cb(GtkPodApp *app, gpointer tks, gpointer da static void _add_track(ClarityWidgetPrivate *priv, Track *track) { ClarityCanvas *ccanvas = CLARITY_CANVAS(priv->draw_area); - if (clarity_canvas_is_loading(ccanvas)) + if (clarity_canvas_is_blocked(ccanvas)) return; if (album_model_add_track(priv->album_model, track)) { @@ -493,7 +493,7 @@ static void _remove_track(ClarityWidgetPrivate *priv, AlbumItem *item, Track *tr ClarityCanvas *ccanvas = CLARITY_CANVAS(priv->draw_area); - if (clarity_canvas_is_loading(ccanvas)) + if (clarity_canvas_is_blocked(ccanvas)) return; if(!item) @@ -538,7 +538,7 @@ void clarity_widget_track_updated_cb(GtkPodApp *app, gpointer tk, gpointer data) ClarityCanvas *ccanvas = CLARITY_CANVAS(priv->draw_area); - if (clarity_canvas_is_loading(ccanvas)) + if (clarity_canvas_is_blocked(ccanvas)) return; AlbumItem *item = NULL; ------------------------------------------------------------------------------ Malware Security Report: Protecting Your Business, Customers, and the Bottom Line. Protect your business and customers by understanding the threat from malware and how it can impact your online business. http://www.accelacomm.com/jaw/sfnl/114/51427462/ _______________________________________________ gtkpod-cvs2 mailing list gtkpod-cvs2@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2