annotate src/dockalbumart/dockalbumart.c @ 1865:176c29f85678

Use test instead of [ ].
author Jonathan Schleifer <js@h3c.de>
date Mon, 24 Sep 2007 23:38:22 +0200
parents bd269f6e26b2
children e8ea3a76a84e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1710
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
1 /*
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
2 * dockalbumart: An audacious plugin to change the MacOS dock tile to the
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
3 * album art.
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
4 * dockalbumart.c: Plugin implementation
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
5 *
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
6 * Copyright (c) 2007 William Pitcock <nenolod -at- sacredspiral.co.uk>
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
7 *
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
8 * Permission to use, copy, modify, and/or distribute this software for any
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
9 * purpose with or without fee is hereby granted, provided that the above
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
10 * copyright notice and this permission notice is present in all copies.
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
11 *
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
12 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
13 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
15 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
16 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
17 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
18 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
19 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
20 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
21 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
22 * POSSIBILITY OF SUCH DAMAGE.
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
23 */
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
24
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
25 #include <glib.h>
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
26 #include <audacious/i18n.h>
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
27
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
28 #include <Carbon/Carbon.h>
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
29
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
30 #include <audacious/plugin.h>
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
31 #include <audacious/util.h>
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
32 #include <audacious/playlist.h>
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
33 #include <audacious/tuple.h>
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
34
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
35 #include "audacious_player.xpm"
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
36
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
37 extern gchar *fileinfo_recursive_get_image(const gchar* path, const gchar* file_name, gint depth);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
38
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
39 /* utility functions */
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
40 static void
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
41 dock_set_icon_from_pixbuf(const GdkPixbuf *in)
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
42 {
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
43 GdkPixbuf *pixbuf;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
44 CGColorSpaceRef colorspace;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
45 CGDataProviderRef data_provider;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
46 CGImageRef image;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
47 gpointer data;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
48 gint rowstride, pixbuf_width, pixbuf_height;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
49 gboolean has_alpha;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
50
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
51 pixbuf = gdk_pixbuf_scale_simple(in, 128, 128, GDK_INTERP_BILINEAR);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
52
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
53 data = gdk_pixbuf_get_pixels(pixbuf);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
54 pixbuf_width = gdk_pixbuf_get_width(pixbuf);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
55 pixbuf_height = gdk_pixbuf_get_height(pixbuf);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
56 rowstride = gdk_pixbuf_get_rowstride(pixbuf);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
57 has_alpha = gdk_pixbuf_get_has_alpha(pixbuf);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
58
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
59 /* create the colourspace for the CGImage. */
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
60 colorspace = CGColorSpaceCreateDeviceRGB();
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
61 data_provider = CGDataProviderCreateWithData(NULL, data, pixbuf_height * rowstride, NULL);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
62 image = CGImageCreate(pixbuf_width, pixbuf_height, 8,
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
63 has_alpha ? 32 : 24, rowstride, colorspace,
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
64 has_alpha ? kCGImageAlphaLast : 0,
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
65 data_provider, NULL, FALSE,
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
66 kCGRenderingIntentDefault);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
67
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
68 /* release the colourspace and data provider, we have what we want. */
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
69 CGDataProviderRelease(data_provider);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
70 CGColorSpaceRelease(colorspace);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
71
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
72 /* set the dock tile images */
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
73 SetApplicationDockTileImage(image);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
74
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
75 /* and release */
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
76 CGImageRelease(image);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
77 g_object_unref(pixbuf);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
78 }
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
79
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
80 static void
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
81 pixbuf_find_and_load(Tuple *tuple)
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
82 {
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
83 GdkPixbuf *out;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
84 gchar *tmp;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
85 const gchar *file_path, *file_name;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
86
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
87 file_name = tuple_get_string(tuple, FIELD_FILE_NAME, NULL);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
88 file_path = tuple_get_string(tuple, FIELD_FILE_PATH, NULL);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
89
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
90 if (file_name != NULL && file_path != NULL)
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
91 {
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
92 tmp = fileinfo_recursive_get_image(file_path, file_name, 0);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
93 if (tmp)
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
94 {
1715
bd269f6e26b2 remove caching code, it's pointless.
William Pitcock <nenolod@atheme.org>
parents: 1710
diff changeset
95 GdkPixbuf *new = gdk_pixbuf_new_from_file(tmp, NULL);
bd269f6e26b2 remove caching code, it's pointless.
William Pitcock <nenolod@atheme.org>
parents: 1710
diff changeset
96 dock_set_icon_from_pixbuf(new);
bd269f6e26b2 remove caching code, it's pointless.
William Pitcock <nenolod@atheme.org>
parents: 1710
diff changeset
97 g_object_unref(new);
1710
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
98 }
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
99 else
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
100 {
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
101 GdkPixbuf *new = gdk_pixbuf_new_from_xpm_data((const gchar **) audacious_player_xpm);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
102 dock_set_icon_from_pixbuf(new);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
103 g_object_unref(new);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
104 }
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
105 }
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
106 }
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
107
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
108 /* trigger functions */
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
109
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
110 static void
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
111 dockart_trigger_func_pb_start_cb(gpointer plentry_p, gpointer unused)
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
112 {
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
113 PlaylistEntry *entry = (PlaylistEntry *) plentry_p;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
114 Tuple *tuple;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
115
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
116 if (entry == NULL)
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
117 return;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
118
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
119 tuple = entry->tuple;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
120
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
121 if (tuple == NULL)
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
122 return;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
123
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
124 pixbuf_find_and_load(tuple);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
125 }
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
126
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
127 static void
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
128 dockart_trigger_func_pb_end_cb(gpointer plentry_p, gpointer unused)
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
129 {
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
130 GdkPixbuf *new;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
131
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
132 new = gdk_pixbuf_new_from_xpm_data((const gchar **) audacious_player_xpm);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
133 dock_set_icon_from_pixbuf(new);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
134 g_object_unref(new);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
135 }
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
136
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
137 static void
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
138 dockart_init(void)
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
139 {
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
140 hook_associate("playback begin", dockart_trigger_func_pb_start_cb, NULL);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
141 hook_associate("playback end", dockart_trigger_func_pb_end_cb, NULL);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
142 }
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
143
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
144 static void
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
145 dockart_cleanup(void)
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
146 {
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
147 GdkPixbuf *new;
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
148
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
149 hook_dissociate("playback begin", dockart_trigger_func_pb_start_cb);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
150 hook_dissociate("playback end", dockart_trigger_func_pb_end_cb);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
151
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
152 /* reset dock tile */
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
153 new = gdk_pixbuf_new_from_xpm_data((const gchar **) audacious_player_xpm);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
154 dock_set_icon_from_pixbuf(new);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
155 g_object_unref(new);
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
156 }
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
157
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
158 GeneralPlugin dockart_gp =
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
159 {
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
160 .description = "Dock Album Art",
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
161 .init = dockart_init,
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
162 .cleanup = dockart_cleanup
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
163 };
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
164
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
165 GeneralPlugin *dockart_gplist[] = { &dockart_gp, NULL };
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
166 SIMPLE_GENERAL_PLUGIN(dockart, dockart_gplist);