Mercurial > audlegacy-plugins
annotate src/dockalbumart/dockalbumart.c @ 2330:0be42d832217
Splitted core/gui/grabbing sources; Fixed memory leak when closing configuration dialog.
author | Sascha Hlusiak <contact@saschahlusiak.de> |
---|---|
date | Sun, 20 Jan 2008 14:52:44 +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); |