annotate src/dockalbumart/dockalbumart.c @ 3168:7e58928783b3

alsa-ng: Set thread handles to NULL when threads exit.
author William Pitcock <nenolod@atheme.org>
date Fri, 15 May 2009 00:05:48 -0500
parents 3134a0987162
children
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>
2971
3134a0987162 - changed include path from audacious to audlegacy.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 2576
diff changeset
26 #include <audlegacy/i18n.h>
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
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
2971
3134a0987162 - changed include path from audacious to audlegacy.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 2576
diff changeset
30 #include <audlegacy/plugin.h>
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
31
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_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
33
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 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
35
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 /* 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
37 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
38 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
39 {
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 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
41 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
42 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
43 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
44 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
45 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
46 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
47
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 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
49
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 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
51 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
52 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
53 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
54 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
55
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 /* 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
57 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
58 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
59 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
60 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
61 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
62 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
63 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
64
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 /* 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
66 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
67 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
68
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 /* 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
70 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
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 /* 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
73 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
74 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
75 }
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
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 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
78 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
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 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
81 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
82 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
83
1976
5fa26178eaef s/tuple_/aud_tuple_/g
William Pitcock <nenolod@atheme.org>
parents: 1961
diff changeset
84 file_name = aud_tuple_get_string(tuple, FIELD_FILE_NAME, NULL);
5fa26178eaef s/tuple_/aud_tuple_/g
William Pitcock <nenolod@atheme.org>
parents: 1961
diff changeset
85 file_path = aud_tuple_get_string(tuple, FIELD_FILE_PATH, NULL);
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
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 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
88 {
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 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
90 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
91 {
1715
bd269f6e26b2 remove caching code, it's pointless.
William Pitcock <nenolod@atheme.org>
parents: 1710
diff changeset
92 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
93 dock_set_icon_from_pixbuf(new);
bd269f6e26b2 remove caching code, it's pointless.
William Pitcock <nenolod@atheme.org>
parents: 1710
diff changeset
94 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
95 }
5dfa4fc721b0 Add dockalbumart plugin for MacOS. (this could also be ported to GNOME's AWN too.)
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
96 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
97 {
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 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
99 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
100 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
101 }
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 }
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 }
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 /* 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
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 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
108 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
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 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
111 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
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 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
114 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
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 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
117
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 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
119 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
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 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
122 }
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 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
125 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
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 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
128
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 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
130 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
131 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
132 }
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
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 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
135 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
136 {
2060
0803fba87da8 hook shit
William Pitcock <nenolod@atheme.org>
parents: 1976
diff changeset
137 aud_hook_associate("playback begin", dockart_trigger_func_pb_start_cb, NULL);
0803fba87da8 hook shit
William Pitcock <nenolod@atheme.org>
parents: 1976
diff changeset
138 aud_hook_associate("playback end", dockart_trigger_func_pb_end_cb, NULL);
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
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
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 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
142 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
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 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
145
2060
0803fba87da8 hook shit
William Pitcock <nenolod@atheme.org>
parents: 1976
diff changeset
146 aud_hook_dissociate("playback begin", dockart_trigger_func_pb_start_cb);
0803fba87da8 hook shit
William Pitcock <nenolod@atheme.org>
parents: 1976
diff changeset
147 aud_hook_dissociate("playback end", dockart_trigger_func_pb_end_cb);
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
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 /* 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
150 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
151 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
152 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
153 }
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
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 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
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 .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
158 .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
159 .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
160 };
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
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 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
163 SIMPLE_GENERAL_PLUGIN(dockart, dockart_gplist);