Mercurial > audlegacy
diff src/audtool/handlers_equalizer.c @ 4612:8a7752f1c662
Rename the audtool source files to be saner.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 05 Jun 2008 01:27:43 +0300 |
parents | src/audtool/audtool_handlers_equalizer.c@895297e46ee3 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/audtool/handlers_equalizer.c Thu Jun 05 01:27:43 2008 +0300 @@ -0,0 +1,155 @@ +/* + * Audtool2 + * Copyright (c) 2007 Audacious development team + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdlib.h> +#include <string.h> +#include <glib.h> +#include <mowgli.h> +#include <locale.h> +#include "libaudclient/audctrl.h" +#include "audtool.h" + +void equalizer_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 equalizer_get_eq_preamp(gint argc, gchar **argv) +{ + audtool_report("preamp = %.2f", audacious_remote_get_eq_preamp(dbus_proxy)); +} + +void equalizer_get_eq_band(gint argc, gchar **argv) +{ + int band; + + if (argc < 2) + { + audtool_whine_args(argv[0], "<band>"); + exit(1); + } + + band = atoi(argv[1]); + + /* FIXME, XXX, TODO: we should have a function for requesting + * the actual number of bands, if we support dynamic amount some day ... + * -- ccr + */ + if (band < 0 || band > 9) + { + audtool_whine("band number out of range\n"); + exit(1); + } + + audtool_report("band %d = %.2f", band, audacious_remote_get_eq_band(dbus_proxy, band)); + +} + +void equalizer_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_args(argv[0], "<preamp> <band0> <band1> <band2> <band3> <band4> <band5> <band6> <band7> <band8> <band9>"); + 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 equalizer_set_eq_preamp(gint argc, gchar **argv) +{ + gdouble preamp; + + if (argc < 2) + { + audtool_whine_args(argv[0], "<preamp>"); + exit(1); + } + + preamp = atof(argv[1]); + + audacious_remote_set_eq_preamp(dbus_proxy, preamp); +} + +void equalizer_set_eq_band(gint argc, gchar **argv) +{ + int band; + gdouble preamp; + + if (argc < 3) + { + audtool_whine_args(argv[0], "<band> <value>"); + exit(1); + } + + band = atoi(argv[1]); + preamp = atof(argv[2]); + + audacious_remote_set_eq_band(dbus_proxy, band, preamp); +} + +void equalizer_active(gint argc, gchar **argv) +{ + if (argc < 2) + { + audtool_whine_args(argv[0], "<on/off>"); + exit(1); + } + + if (!g_ascii_strcasecmp(argv[1], "on")) { + audacious_remote_eq_activate(dbus_proxy, TRUE); + } + else if (!g_ascii_strcasecmp(argv[1], "off")) { + audacious_remote_eq_activate(dbus_proxy, FALSE); + } +}