# HG changeset patch # User Yoshiki Yazawa # Date 1194445109 -32400 # Node ID 86c9abc83fbdc0c753f0d79c8a83109a8b6fc36f # Parent 1a4add0eba078a414cb92c94aef02c9df7479534 audacious remote functions: - functions for equalizer manipulation have been implemented. audtool: - test suite for equalizer manipulation has been implemented. diff -r 1a4add0eba07 -r 86c9abc83fbd src/audacious/dbus-service.h --- a/src/audacious/dbus-service.h Tue Nov 06 20:46:19 2007 -0600 +++ b/src/audacious/dbus-service.h Wed Nov 07 23:18:29 2007 +0900 @@ -201,10 +201,15 @@ gboolean audacious_rc_playqueue_clear(RemoteObject *obj, GError **error); gboolean audacious_rc_playqueue_is_queued(RemoteObject *obj, gint pos, gboolean *is_queued, GError **error); gboolean audacious_rc_playlist_ins_url_string(RemoteObject *obj, gchar *url, gint pos, GError **error); - +gboolean audacious_rc_playlist_enqueue_to_temp(RemoteObject *obj, gchar *url, GError **error); +gboolean audacious_rc_playlist_add(RemoteObject *obj, gpointer list, GError **error); -/* in progress */ -gboolean audacious_rc_playlist_add(RemoteObject *obj, gpointer list, GError **error); -gboolean audacious_rc_playlist_enqueue_to_temp(RemoteObject *obj, gchar *url, GError **error); +/* new on nov 7 */ +gboolean audacious_rc_get_eq(RemoteObject *obj, gdouble *preamp, GArray **bands, GError **error); +gboolean audacious_rc_get_eq_preamp(RemoteObject *obj, gdouble *preamp, GError **error); +gboolean audacious_rc_get_eq_band(RemoteObject *obj, gint band, gdouble *value, GError **error); +gboolean audacious_rc_set_eq(RemoteObject *obj, gdouble preamp, GArray *bands, GError **error); +gboolean audacious_rc_set_eq_preamp(RemoteObject *obj, gdouble preamp, GError **error); +gboolean audacious_rc_set_eq_band(RemoteObject *obj, gint band, gdouble value, GError **error); #endif // !_DBUS_SERVICE_H diff -r 1a4add0eba07 -r 86c9abc83fbd src/audacious/dbus.c --- a/src/audacious/dbus.c Tue Nov 06 20:46:19 2007 -0600 +++ b/src/audacious/dbus.c Wed Nov 07 23:18:29 2007 +0900 @@ -854,7 +854,7 @@ return TRUE; } -/* New on Oct9: Queue */ +/* New on Oct 9: Queue */ gboolean audacious_rc_playqueue_add(RemoteObject *obj, gint pos, GError **error) { if (pos < (guint)playlist_get_length(playlist_get_active())) playlist_queue_position(playlist_get_active(), pos); @@ -935,9 +935,60 @@ return TRUE; } +/* New on Nov 7: Equalizer */ +gboolean audacious_rc_get_eq(RemoteObject *obj, gdouble *preamp, GArray **bands, GError **error) +{ + int i; + *preamp = (gdouble)equalizerwin_get_preamp(); + *bands = g_array_sized_new(FALSE, FALSE, sizeof(gdouble), 10); + + for(i=0; i<10; i++){ + gdouble val = (gdouble)equalizerwin_get_band(i); + g_array_append_val(*bands, val); + } + + return TRUE; +} + +gboolean audacious_rc_get_eq_preamp(RemoteObject *obj, gdouble *preamp, GError **error) +{ + *preamp = (gdouble)equalizerwin_get_preamp(); + return TRUE; +} -/********************************************************************************/ +gboolean audacious_rc_get_eq_band(RemoteObject *obj, gint band, gdouble *value, GError **error) +{ + *value = (gdouble)equalizerwin_get_band(band); + return TRUE; +} + +gboolean audacious_rc_set_eq(RemoteObject *obj, gdouble preamp, GArray *bands, GError **error) +{ + gdouble element; + int i; + + equalizerwin_set_preamp((gfloat)preamp); + + for (i = 0; i < 10; i++) { + element = g_array_index(bands, gdouble, i); + equalizerwin_set_band(i, (gfloat)element); + } + + return TRUE; +} + +gboolean audacious_rc_set_eq_preamp(RemoteObject *obj, gdouble preamp, GError **error) +{ + equalizerwin_set_preamp((gfloat)preamp); + return TRUE; +} + +gboolean audacious_rc_set_eq_band(RemoteObject *obj, gint band, gdouble value, GError **error) +{ + equalizerwin_set_band(band, (gfloat)value); + return TRUE; +} DBusGProxy *audacious_get_dbus_proxy(void) { diff -r 1a4add0eba07 -r 86c9abc83fbd src/audacious/objects.xml --- a/src/audacious/objects.xml Tue Nov 06 20:46:19 2007 -0600 +++ b/src/audacious/objects.xml Wed Nov 07 23:18:29 2007 +0900 @@ -77,17 +77,18 @@ CMD_PLAYLIST_INS_URL_STRING CMD_PLAYLIST_ENQUEUE_TO_TEMP CMD_PLAYLIST_ADD + CMD_GET_EQ //CHANGED: now these functions use double due to dbus-glib restriction + CMD_GET_EQ_PREAMP + CMD_GET_EQ_BAND //NOTE: GArray is used for bands + CMD_SET_EQ + CMD_SET_EQ_PREAMP + CMD_SET_EQ_BAND - Remaining: + Obsolete: CMD_PLAYLIST_INS //unnecessary? CMD_GET_EQ_DATA //obsolete CMD_SET_EQ_DATA //obsolete - CMD_GET_EQ - CMD_GET_EQ_PREAMP - CMD_GET_EQ_BAND - CMD_SET_EQ - CMD_SET_EQ_PREAMP - CMD_SET_EQ_BAND + --> @@ -461,5 +462,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 1a4add0eba07 -r 86c9abc83fbd src/audacious/ui_equalizer.c --- a/src/audacious/ui_equalizer.c Tue Nov 06 20:46:19 2007 -0600 +++ b/src/audacious/ui_equalizer.c Wed Nov 07 23:18:29 2007 +0900 @@ -1282,7 +1282,7 @@ gfloat equalizerwin_get_band(gint band) { - g_return_val_if_fail(band >= 0 && band < 10, 0); + g_return_val_if_fail(band >= 0 && band < 10, 0.0); return ui_skinned_equalizer_slider_get_position(equalizerwin_bands[band]); } diff -r 1a4add0eba07 -r 86c9abc83fbd src/audtool/audtool.h --- a/src/audtool/audtool.h Tue Nov 06 20:46:19 2007 -0600 +++ b/src/audtool/audtool.h Wed Nov 07 23:18:29 2007 +0900 @@ -123,4 +123,11 @@ extern void test_ins_url_string(gint argc, gchar **argv); extern void test_get_version(gint argc, gchar **argv); +extern void test_get_eq(gint argc, gchar **argv); +extern void test_get_eq_preamp(gint argc, gchar **argv); +extern void test_get_eq_band(gint argc, gchar **argv); +extern void test_set_eq(gint argc, gchar **argv); +extern void test_set_eq_preamp(gint argc, gchar **argv); +extern void test_set_eq_band(gint argc, gchar **argv); + #endif diff -r 1a4add0eba07 -r 86c9abc83fbd src/audtool/audtool_handlers_test.c --- a/src/audtool/audtool_handlers_test.c Tue Nov 06 20:46:19 2007 -0600 +++ b/src/audtool/audtool_handlers_test.c Wed Nov 07 23:18:29 2007 +0900 @@ -44,24 +44,24 @@ void test_enqueue_to_temp(gint argc, gchar **argv) { - if (argc < 2) - { - audtool_whine("invalid parameters for %s.", argv[0]); - audtool_whine("syntax: %s ", argv[0]); - exit(1); - } + if (argc < 2) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s ", argv[0]); + exit(1); + } audacious_remote_playlist_enqueue_to_temp(dbus_proxy, argv[1]); } void test_toggle_aot(gint argc, gchar **argv) { - if (argc < 2) - { - audtool_whine("invalid parameters for %s.", argv[0]); - audtool_whine("syntax: %s ", argv[0]); - exit(1); - } + if (argc < 2) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s ", argv[0]); + exit(1); + } if (!g_ascii_strcasecmp(argv[1], "on")) { audacious_remote_toggle_aot(dbus_proxy, TRUE); @@ -83,12 +83,12 @@ void test_set_skin(gint argc, gchar **argv) { - if (argc < 2) - { - audtool_whine("invalid parameters for %s.", argv[0]); - audtool_whine("syntax: %s ", argv[0]); - exit(1); - } + if (argc < 2) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s ", argv[0]); + exit(1); + } if(!argv[1] || !strcmp(argv[1], "")) return; @@ -108,12 +108,12 @@ { gint pos = -1; - if (argc < 3) - { - audtool_whine("invalid parameters for %s.", argv[0]); - audtool_whine("syntax: %s ", argv[0]); - exit(1); - } + if (argc < 3) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s ", argv[0]); + exit(1); + } pos = atoi(argv[2]) - 1; if(pos >= 0) @@ -128,3 +128,104 @@ audtool_report("Audacious %s", version); g_free(version); } + +void test_get_eq(gint argc, gchar **argv) +{ + double preamp; + GArray *bands; + int i; + + audacious_remote_get_eq(dbus_proxy, &preamp, &bands); + + audtool_report("preamp = %.2f", preamp); + for(i=0; i<10; i++){ + printf("%.2f ", g_array_index(bands, gdouble, i)); + } + printf("\n"); + g_array_free(bands, TRUE); +} + +void test_get_eq_preamp(gint argc, gchar **argv) +{ + audtool_report("preamp = %.2f", audacious_remote_get_eq_preamp(dbus_proxy)); +} + +void test_get_eq_band(gint argc, gchar **argv) +{ + int band; + + if (argc < 2) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s ", argv[0]); + exit(1); + } + + band = atoi(argv[1]); + + if (band < 0 || band > 9) + { + audtool_whine("band number out of range"); + exit(1); + } + + audtool_report("band %d = %.2f", band, audacious_remote_get_eq_band(dbus_proxy, band)); + +} + +void test_set_eq(gint argc, gchar **argv) +{ + gdouble preamp; + GArray *bands = g_array_sized_new(FALSE, FALSE, sizeof(gdouble), 10); + int i; + + if (argc < 12) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s ", argv[0]); + exit(1); + } + + preamp = atof(argv[1]); + + for(i=0; i<10; i++){ + gdouble val = atof(argv[i+2]); + g_array_append_val(bands, val); + } + + audacious_remote_set_eq(dbus_proxy, preamp, bands); +} + +void test_set_eq_preamp(gint argc, gchar **argv) +{ + gdouble preamp; + + if (argc < 2) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s ", argv[0]); + exit(1); + } + + preamp = atof(argv[1]); + + audacious_remote_set_eq_preamp(dbus_proxy, preamp); +} + +void test_set_eq_band(gint argc, gchar **argv) +{ + int band; + gdouble preamp; + + if (argc < 3) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s ", argv[0]); + exit(1); + } + + band = atoi(argv[1]); + preamp = atof(argv[2]); + + audacious_remote_set_eq_band(dbus_proxy, band, preamp); +} diff -r 1a4add0eba07 -r 86c9abc83fbd src/audtool/audtool_main.c --- a/src/audtool/audtool_main.c Tue Nov 06 20:46:19 2007 -0600 +++ b/src/audtool/audtool_main.c Wed Nov 07 23:18:29 2007 +0900 @@ -119,6 +119,14 @@ {"playlist-insurl", test_ins_url_string, "inserts a url at specified position in the playlist", 2}, {"get-version", test_get_version, "get version of audacious", 0}, + /* test suite for equalizer */ + {"get-eq", test_get_eq, "get equalizer", 0}, + {"get-eq-preamp", test_get_eq_preamp, "get equalizer pre-amplitude", 0}, + {"get-eq-band", test_get_eq_band, "get equalizer bands", 1}, + {"set-eq", test_set_eq, "set equalizer", 11}, + {"set-eq-preamp", test_set_eq_preamp, "set equalizer pre-amplitude", 1}, + {"set-eq-band", test_set_eq_band, "set equalizer bands", 2}, + {NULL, NULL, NULL, 0} }; diff -r 1a4add0eba07 -r 86c9abc83fbd src/libaudclient/audctrl.c --- a/src/libaudclient/audctrl.c Tue Nov 06 20:46:19 2007 -0600 +++ b/src/libaudclient/audctrl.c Wed Nov 07 23:18:29 2007 +0900 @@ -367,7 +367,7 @@ **/ gchar *audacious_remote_get_skin(DBusGProxy *proxy) { gchar *skin = NULL; - org_atheme_audacious_get_skin (proxy, &skin, &error); // xxx + org_atheme_audacious_get_skin (proxy, &skin, &error); g_clear_error(&error); return skin; } @@ -688,9 +688,9 @@ * * Queries audacious about the equalizer settings. **/ -void audacious_remote_get_eq(DBusGProxy *proxy, gfloat *preamp, - gfloat **bands) { -//XXX +void audacious_remote_get_eq(DBusGProxy *proxy, gdouble *preamp, GArray **bands) { + org_atheme_audacious_get_eq(proxy, preamp, bands, &error); + g_clear_error(&error); } /** @@ -701,9 +701,13 @@ * * Return value: The equalizer preamp's setting. **/ -gfloat audacious_remote_get_eq_preamp(DBusGProxy *proxy) { -//XXX - return 0.0; +gdouble audacious_remote_get_eq_preamp(DBusGProxy *proxy) { + gdouble preamp = 0.0; + + org_atheme_audacious_get_eq_preamp(proxy, &preamp, &error); + g_clear_error(&error); + + return preamp; } /** @@ -715,9 +719,13 @@ * * Return value: The equalizer band's value. **/ -gfloat audacious_remote_get_eq_band(DBusGProxy *proxy, gint band) { -//XXX - return 0.0; +gdouble audacious_remote_get_eq_band(DBusGProxy *proxy, gint band) { + gdouble value = 0.0; + + org_atheme_audacious_get_eq_band(proxy, band, &value, &error); + g_clear_error(&error); + + return value; } /** @@ -728,9 +736,9 @@ * * Tells audacious to set the equalizer up using the provided values. **/ -void audacious_remote_set_eq(DBusGProxy *proxy, gfloat preamp, - gfloat *bands) { -//XXX +void audacious_remote_set_eq(DBusGProxy *proxy, gdouble preamp, GArray *bands) { + org_atheme_audacious_set_eq(proxy, preamp, bands, &error); + g_clear_error(&error); } /** @@ -740,8 +748,9 @@ * * Tells audacious to set the equalizer's preamp setting. **/ -void audacious_remote_set_eq_preamp(DBusGProxy *proxy, gfloat preamp) { -//XXX +void audacious_remote_set_eq_preamp(DBusGProxy *proxy, gdouble preamp) { + org_atheme_audacious_set_eq_preamp(proxy, preamp, &error); + g_clear_error(&error); } /** @@ -752,9 +761,9 @@ * * Tells audacious to set an equalizer band's setting. **/ -void audacious_remote_set_eq_band(DBusGProxy *proxy, gint band, - gfloat value) { -//XXX +void audacious_remote_set_eq_band(DBusGProxy *proxy, gint band, gdouble value) { + org_atheme_audacious_set_eq_band(proxy, band, value, &error); + g_clear_error(&error); } /** diff -r 1a4add0eba07 -r 86c9abc83fbd src/libaudclient/audctrl.h --- a/src/libaudclient/audctrl.h Tue Nov 06 20:46:19 2007 -0600 +++ b/src/libaudclient/audctrl.h Wed Nov 07 23:18:29 2007 +0900 @@ -74,15 +74,15 @@ void audacious_remote_toggle_shuffle(DBusGProxy *proxy); gboolean audacious_remote_is_repeat(DBusGProxy *proxy); gboolean audacious_remote_is_shuffle(DBusGProxy *proxy); - void audacious_remote_get_eq(DBusGProxy *proxy, gfloat *preamp, - gfloat **bands); - gfloat audacious_remote_get_eq_preamp(DBusGProxy *proxy); - gfloat audacious_remote_get_eq_band(DBusGProxy *proxy, gint band); - void audacious_remote_set_eq(DBusGProxy *proxy, gfloat preamp, - gfloat *bands); - void audacious_remote_set_eq_preamp(DBusGProxy *proxy, gfloat preamp); + void audacious_remote_get_eq(DBusGProxy *proxy, gdouble *preamp, + GArray **bands); + gdouble audacious_remote_get_eq_preamp(DBusGProxy *proxy); + gdouble audacious_remote_get_eq_band(DBusGProxy *proxy, gint band); + void audacious_remote_set_eq(DBusGProxy *proxy, gdouble preamp, + GArray *bands); + void audacious_remote_set_eq_preamp(DBusGProxy *proxy, gdouble preamp); void audacious_remote_set_eq_band(DBusGProxy *proxy, gint band, - gfloat value); + gdouble value); /* Added in XMMS 1.2.1 */ void audacious_remote_quit(DBusGProxy *proxy);