1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2025-01-27 09:08:25 +00:00

Added support for Audacious 1.4.0 via --enable-audacious=yes|no|legacy:

(use 'yes' for audacious >= 1.4.0, 'legacy' for prior versions).



git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@988 7f574dfc-610e-0410-a909-a81674777703
This commit is contained in:
Philip Kovacs 2007-11-17 03:43:21 +00:00
parent dd572d3d24
commit 3048e239d2
3 changed files with 73 additions and 13 deletions

View File

@ -1,5 +1,9 @@
# $Id$ # $Id$
2007-11-16
* Added support for Audacious 1.4.0 via --enable-audacious=yes|no|legacy:
* (use 'yes' for audacious >= 1.4.0, 'legacy' for prior versions).
2007-11-14 2007-11-14
* Fix compilation error with --disable-x11 (bug #1830373). * Fix compilation error with --disable-x11 (bug #1830373).
* Bump doc stylesheet from 4.3 to 4.4. * Bump doc stylesheet from 4.3 to 4.4.

View File

@ -108,15 +108,32 @@ dnl Audacious Media Player
dnl dnl
AC_ARG_ENABLE([audacious], AC_ARG_ENABLE([audacious],
AC_HELP_STRING([--enable-audacious], [enable audacious player support @<:@default=no@:>@]), AC_HELP_STRING([--enable-audacious=[[yes|no|legacy]]],
[enable audacious player support @<:@default=no@:>@]),
[want_audacious="$enableval"], [want_audacious=no]) [want_audacious="$enableval"], [want_audacious=no])
AM_CONDITIONAL(BUILD_AUDACIOUS, test x$want_audacious = xyes) AM_CONDITIONAL(BUILD_AUDACIOUS, test x$want_audacious = xyes)
if test x$want_audacious = xyes; then if test x$want_audacious = xyes; then
PKG_CHECK_MODULES([AUDACIOUS], [audacious >= 0.1]) PKG_CHECK_MODULES([AUDACIOUS], [audacious >= 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0])
CFLAGS="$CFLAGS $AUDACIOUS_CFLAGS" CFLAGS="$CFLAGS $AUDACIOUS_CFLAGS"
LIBS="$LIBS $AUDACIOUS_LIBS" LIBS="$LIBS $AUDACIOUS_LIBS"
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$AUDACIOUS_CFLAGS -I`pkg-config --variable=audacious_include_dir audacious`/audacious"
AC_CHECK_HEADERS([audacious/audctrl.h audacious/dbus.h glib.h glib-object.h],
[], AC_MSG_ERROR([required header(s) not found]))
CPPFLAGS="$save_CPPFLAGS"
AC_DEFINE(AUDACIOUS, 1, [Define for Audacious support]) AC_DEFINE(AUDACIOUS, 1, [Define for Audacious support])
else if test x$want_audacious = xlegacy; then
PKG_CHECK_MODULES([AUDACIOUS], [audacious < 1.4.0 glib-2.0])
CFLAGS="$CFLAGS $AUDACIOUS_CFLAGS"
LIBS="$LIBS $AUDACIOUS_LIBS"
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$AUDACIOUS_CFLAGS -I`pkg-config --variable=audacious_include_dir audacious`/audacious"
AC_CHECK_HEADERS([audacious/beepctrl.h glib.h], [], AC_MSG_ERROR([required header(s) not found]))
CPPFLAGS="$save_CPPFLAGS"
AC_DEFINE(AUDACIOUS, 1, [Define for Audacious support])
AC_DEFINE(AUDACIOUS_LEGACY, 1, [Define for Audacious Legacy support])
fi
fi fi

View File

@ -26,7 +26,23 @@
#include <string.h> #include <string.h>
#include <glib.h> #include <glib.h>
#ifndef AUDACIOUS_LEGACY
#include <glib-object.h>
#include <audacious/audctrl.h>
#include <audacious/dbus.h>
#else
#include <audacious/beepctrl.h> #include <audacious/beepctrl.h>
#define audacious_remote_is_running(x) xmms_remote_is_running(x)
#define audacious_remote_is_paused(x) xmms_remote_is_paused(x)
#define audacious_remote_is_playing(x) xmms_remote_is_playing(x)
#define audacious_remote_get_playlist_pos(x) xmms_remote_get_playlist_pos(x)
#define audacious_remote_get_playlist_title(x) xmms_remote_get_playlist_title(x)
#define audacious_remote_get_playlist_time(x) xmms_remote_get_playlist_time(x)
#define audacious_remote_get_output_time(x) xmms_remote_get_output_time(x)
#define audacious_remote_get_info(x) xmms_remote_get_info(x)
#define audacious_remote_get_playlist_file(x) xmms_remote_get_playlist_file(x)
#define audacious_remote_get_playlist_length(x) xmms_remote_get_playlist_length(x)
#endif
#include "config.h" #include "config.h"
#include "conky.h" #include "conky.h"
@ -94,19 +110,42 @@ int destroy_audacious_thread(void)
void *audacious_thread_func(void *pvoid) void *audacious_thread_func(void *pvoid)
{ {
static audacious_t items; static audacious_t items;
gint session,playpos,frames,length; gint playpos,frames,length;
gint rate,freq,chans; gint rate,freq,chans;
gchar *psong,*pfilename; gchar *psong,*pfilename;
#ifndef AUDACIOUS_LEGACY
DBusGProxy *session = NULL;
DBusGConnection *connection = NULL;
#else
gint session;
#endif
pvoid=(void *)pvoid; /* avoid warning */ pvoid=(void *)pvoid; /* avoid warning */
session=0; session=0;
psong=NULL; psong=NULL;
pfilename=NULL; pfilename=NULL;
#ifndef AUDACIOUS_LEGACY
g_type_init ();
connection = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
if (!connection) {
CRIT_ERR ("unable to establish dbus connection");
}
session = dbus_g_proxy_new_for_name (connection,
AUDACIOUS_DBUS_SERVICE,
AUDACIOUS_DBUS_PATH,
AUDACIOUS_DBUS_INTERFACE);
if (!session) {
CRIT_ERR ("unable to establish dbus proxy");
}
#endif /* AUDACIOUS_LEGACY */
/* Loop until the main thread sets the runnable signal to 0i via timed_thread_destroy. */ /* Loop until the main thread sets the runnable signal to 0i via timed_thread_destroy. */
while (1) { while (1) {
if (!xmms_remote_is_running (session)) if (!audacious_remote_is_running (session))
{ {
memset(&items,0,sizeof(items)); memset(&items,0,sizeof(items));
strcpy(items[AUDACIOUS_STATUS],"Not running"); strcpy(items[AUDACIOUS_STATUS],"Not running");
@ -114,16 +153,16 @@ void *audacious_thread_func(void *pvoid)
} }
/* Player status */ /* Player status */
if (xmms_remote_is_paused (session)) if (audacious_remote_is_paused (session))
strcpy(items[AUDACIOUS_STATUS],"Paused"); strcpy(items[AUDACIOUS_STATUS],"Paused");
else if (xmms_remote_is_playing (session)) else if (audacious_remote_is_playing (session))
strcpy(items[AUDACIOUS_STATUS],"Playing"); strcpy(items[AUDACIOUS_STATUS],"Playing");
else else
strcpy(items[AUDACIOUS_STATUS],"Stopped"); strcpy(items[AUDACIOUS_STATUS],"Stopped");
/* Current song title */ /* Current song title */
playpos = xmms_remote_get_playlist_pos (session); playpos = audacious_remote_get_playlist_pos (session);
psong = xmms_remote_get_playlist_title (session, playpos); psong = audacious_remote_get_playlist_title (session, playpos);
if (psong) if (psong)
{ {
strncpy(items[AUDACIOUS_TITLE],psong,sizeof(items[AUDACIOUS_TITLE])-1); strncpy(items[AUDACIOUS_TITLE],psong,sizeof(items[AUDACIOUS_TITLE])-1);
@ -132,7 +171,7 @@ void *audacious_thread_func(void *pvoid)
} }
/* Current song length as MM:SS */ /* Current song length as MM:SS */
frames = xmms_remote_get_playlist_time (session,playpos); frames = audacious_remote_get_playlist_time (session,playpos);
length = frames / 1000; length = frames / 1000;
snprintf(items[AUDACIOUS_LENGTH],sizeof(items[AUDACIOUS_LENGTH])-1, "%d:%.2d", length / 60, length % 60); snprintf(items[AUDACIOUS_LENGTH],sizeof(items[AUDACIOUS_LENGTH])-1, "%d:%.2d", length / 60, length % 60);
@ -140,7 +179,7 @@ void *audacious_thread_func(void *pvoid)
snprintf(items[AUDACIOUS_LENGTH_SECONDS],sizeof(items[AUDACIOUS_LENGTH_SECONDS])-1, "%d", length); snprintf(items[AUDACIOUS_LENGTH_SECONDS],sizeof(items[AUDACIOUS_LENGTH_SECONDS])-1, "%d", length);
/* Current song position as MM:SS */ /* Current song position as MM:SS */
frames = xmms_remote_get_output_time (session); frames = audacious_remote_get_output_time (session);
length = frames / 1000; length = frames / 1000;
snprintf(items[AUDACIOUS_POSITION],sizeof(items[AUDACIOUS_POSITION])-1, snprintf(items[AUDACIOUS_POSITION],sizeof(items[AUDACIOUS_POSITION])-1,
"%d:%.2d", length / 60, length % 60); "%d:%.2d", length / 60, length % 60);
@ -149,7 +188,7 @@ void *audacious_thread_func(void *pvoid)
snprintf(items[AUDACIOUS_POSITION_SECONDS],sizeof(items[AUDACIOUS_POSITION_SECONDS])-1, "%d", length); snprintf(items[AUDACIOUS_POSITION_SECONDS],sizeof(items[AUDACIOUS_POSITION_SECONDS])-1, "%d", length);
/* Current song bitrate */ /* Current song bitrate */
xmms_remote_get_info (session, &rate, &freq, &chans); audacious_remote_get_info (session, &rate, &freq, &chans);
snprintf(items[AUDACIOUS_BITRATE],sizeof(items[AUDACIOUS_BITRATE])-1, "%d", rate); snprintf(items[AUDACIOUS_BITRATE],sizeof(items[AUDACIOUS_BITRATE])-1, "%d", rate);
/* Current song frequency */ /* Current song frequency */
@ -159,7 +198,7 @@ void *audacious_thread_func(void *pvoid)
snprintf(items[AUDACIOUS_CHANNELS],sizeof(items[AUDACIOUS_CHANNELS])-1, "%d", chans); snprintf(items[AUDACIOUS_CHANNELS],sizeof(items[AUDACIOUS_CHANNELS])-1, "%d", chans);
/* Current song filename */ /* Current song filename */
pfilename = xmms_remote_get_playlist_file (session,playpos); pfilename = audacious_remote_get_playlist_file (session,playpos);
if (pfilename) if (pfilename)
{ {
strncpy(items[AUDACIOUS_FILENAME],pfilename,sizeof(items[AUDACIOUS_FILENAME])-1); strncpy(items[AUDACIOUS_FILENAME],pfilename,sizeof(items[AUDACIOUS_FILENAME])-1);
@ -168,7 +207,7 @@ void *audacious_thread_func(void *pvoid)
} }
/* Length of the Playlist (number of songs) */ /* Length of the Playlist (number of songs) */
length = xmms_remote_get_playlist_length (session); length = audacious_remote_get_playlist_length (session);
snprintf(items[AUDACIOUS_PLAYLIST_LENGTH],sizeof(items[AUDACIOUS_PLAYLIST_LENGTH])-1, "%d", length); snprintf(items[AUDACIOUS_PLAYLIST_LENGTH],sizeof(items[AUDACIOUS_PLAYLIST_LENGTH])-1, "%d", length);
/* Playlist position (index of song) */ /* Playlist position (index of song) */