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