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