Mercurial > audlegacy-plugins
annotate src/dockalbumart/dockalbumart.c @ 2284:d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
PLAYBACK. if somebody is more experienced with it and wants to restore
the other formats, go ahead (maybe change the name of the plugin too?).
author | mf0102 <0102@gmx.at> |
---|---|
date | Wed, 09 Jan 2008 15:41:22 +0100 |
parents | 0803fba87da8 |
children | 7b284f323ad8 |
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 |
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 #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
|
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 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
|
37 |
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 /* 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
|
39 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
|
40 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
|
41 { |
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 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
|
43 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
|
44 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
|
45 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
|
46 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
|
47 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
|
48 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
|
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 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
|
51 |
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 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
|
53 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
|
54 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
|
55 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
|
56 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
|
57 |
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 /* 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
|
59 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
|
60 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
|
61 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
|
62 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
|
63 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
|
64 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
|
65 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
|
66 |
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 /* 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
|
68 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
|
69 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
|
70 |
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 /* 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
|
72 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
|
73 |
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 /* 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
|
75 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
|
76 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
|
77 } |
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 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
|
80 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
|
81 { |
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 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
|
83 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
|
84 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
|
85 |
1976
5fa26178eaef
s/tuple_/aud_tuple_/g
William Pitcock <nenolod@atheme.org>
parents:
1961
diff
changeset
|
86 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
|
87 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
|
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 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
|
90 { |
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 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
|
92 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
|
93 { |
1715
bd269f6e26b2
remove caching code, it's pointless.
William Pitcock <nenolod@atheme.org>
parents:
1710
diff
changeset
|
94 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
|
95 dock_set_icon_from_pixbuf(new); |
bd269f6e26b2
remove caching code, it's pointless.
William Pitcock <nenolod@atheme.org>
parents:
1710
diff
changeset
|
96 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
|
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 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
|
99 { |
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 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
|
101 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
|
102 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
|
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 } |
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 /* 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
|
108 |
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 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
|
110 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
|
111 { |
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 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
|
113 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
|
114 |
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 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
|
116 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
|
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 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
|
119 |
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 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
|
121 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
|
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 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
|
124 } |
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 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
|
127 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
|
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 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
|
130 |
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 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
|
132 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
|
133 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
|
134 } |
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 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
|
137 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
|
138 { |
2060 | 139 aud_hook_associate("playback begin", dockart_trigger_func_pb_start_cb, NULL); |
140 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
|
141 } |
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 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
|
144 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
|
145 { |
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 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
|
147 |
2060 | 148 aud_hook_dissociate("playback begin", dockart_trigger_func_pb_start_cb); |
149 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
|
150 |
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 /* 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
|
152 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
|
153 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
|
154 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
|
155 } |
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 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
|
158 { |
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 .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
|
160 .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
|
161 .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
|
162 }; |
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 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
|
165 SIMPLE_GENERAL_PLUGIN(dockart, dockart_gplist); |