Mercurial > audlegacy-plugins
changeset 2612:480ff5a3353c
Automated merge with ssh://hg.atheme.org//hg/audacious-plugins
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 21 May 2008 16:44:05 +0300 |
parents | 857910a58188 (current diff) e99d3e8653df (diff) |
children | 54cc30de94ab |
files | src/alsa/init.c |
diffstat | 6 files changed, 65 insertions(+), 107 deletions(-) [+] |
line wrap: on
line diff
--- a/src/alsa/Makefile Wed May 21 15:16:34 2008 +0200 +++ b/src/alsa/Makefile Wed May 21 16:44:05 2008 +0300 @@ -3,8 +3,7 @@ SRCS = alsa.c \ about.c \ audio.c \ - configure.c \ - init.c + configure.c include ../../buildsys.mk include ../../extra.mk
--- a/src/alsa/alsa.c Wed May 21 15:16:34 2008 +0200 +++ b/src/alsa/alsa.c Wed May 21 16:44:05 2008 +0300 @@ -17,9 +17,64 @@ */ #include "alsa.h" +#include <glib.h> #include <stdlib.h> +#include <dlfcn.h> +#include <ctype.h> + +struct alsa_config alsa_cfg; + + +static void alsa_cleanup(void) +{ + if (alsa_cfg.pcm_device) { + free(alsa_cfg.pcm_device); + alsa_cfg.pcm_device = NULL; + } + + if (alsa_cfg.mixer_device) { + free(alsa_cfg.mixer_device); + alsa_cfg.mixer_device = NULL; + } +} + + +static void alsa_init(void) +{ + mcs_handle_t *cfgfile; -OutputPlugin alsa_op = + memset(&alsa_cfg, 0, sizeof (alsa_cfg)); + + alsa_cfg.buffer_time = 500; + alsa_cfg.period_time = 100; + alsa_cfg.debug = 0; + alsa_cfg.vol.left = 100; + alsa_cfg.vol.right = 100; + + cfgfile = aud_cfg_db_open(); + if (!aud_cfg_db_get_string(cfgfile, ALSA_CFGID, "pcm_device", + &alsa_cfg.pcm_device)) + alsa_cfg.pcm_device = g_strdup("default"); + g_message("device: %s", alsa_cfg.pcm_device); + if (!aud_cfg_db_get_string(cfgfile, ALSA_CFGID, "mixer_device", + &alsa_cfg.mixer_device)) + alsa_cfg.mixer_device = g_strdup("PCM"); + aud_cfg_db_get_int(cfgfile, ALSA_CFGID, "mixer_card", &alsa_cfg.mixer_card); + aud_cfg_db_get_int(cfgfile, ALSA_CFGID, "buffer_time", &alsa_cfg.buffer_time); + aud_cfg_db_get_int(cfgfile, ALSA_CFGID, "period_time", &alsa_cfg.period_time); + + aud_cfg_db_get_bool(cfgfile, ALSA_CFGID, "debug", &alsa_cfg.debug); + aud_cfg_db_close(cfgfile); + + if (dlopen("libasound.so.2", RTLD_NOW | RTLD_GLOBAL) == NULL) + { + g_message("Cannot load alsa library: %s", dlerror()); + /* FIXME, this plugin wont work... */ + } +} + + +static OutputPlugin alsa_op = { .description = "ALSA Output Plugin", .init = alsa_init, @@ -43,16 +98,3 @@ OutputPlugin *alsa_oplist[] = { &alsa_op, NULL }; DECLARE_PLUGIN(alsa, NULL, NULL, NULL, alsa_oplist, NULL, NULL, NULL, NULL) - -void alsa_cleanup(void) -{ - if (alsa_cfg.pcm_device) { - free(alsa_cfg.pcm_device); - alsa_cfg.pcm_device = NULL; - } - - if (alsa_cfg.mixer_device) { - free(alsa_cfg.mixer_device); - alsa_cfg.mixer_device = NULL; - } -}
--- a/src/alsa/alsa.h Wed May 21 15:16:34 2008 +0200 +++ b/src/alsa/alsa.h Wed May 21 16:44:05 2008 +0300 @@ -35,11 +35,7 @@ #include <gtk/gtk.h> -#ifdef WORDS_BIGENDIAN -# define IS_BIG_ENDIAN TRUE -#else -# define IS_BIG_ENDIAN FALSE -#endif +#define ALSA_CFGID "ALSA" extern OutputPlugin op; @@ -59,8 +55,6 @@ extern struct alsa_config alsa_cfg; -void alsa_init(void); -void alsa_cleanup(void); void alsa_about(void); void alsa_configure(void); int alsa_get_mixer(snd_mixer_t **mixer, int card);
--- a/src/alsa/audio.c Wed May 21 15:16:34 2008 +0200 +++ b/src/alsa/audio.c Wed May 21 16:44:05 2008 +0300 @@ -68,8 +68,6 @@ static int prebuffer_size; GStaticMutex alsa_mutex = G_STATIC_MUTEX_INIT; -static guint mixer_timeout; - struct snd_format { unsigned int rate; unsigned int channels; @@ -463,20 +461,6 @@ return 0; } -static int alsa_mixer_timeout(void *data) -{ - if (mixer) - { - snd_mixer_close(mixer); - mixer = NULL; - pcm_element = NULL; - } - mixer_timeout = 0; - mixer_start = TRUE; - - return FALSE; -} - static void alsa_cleanup_mixer(void) { pcm_element = NULL; @@ -510,10 +494,6 @@ &lr); *l = ll; *r = lr; - - if (mixer_timeout) - gtk_timeout_remove(mixer_timeout); - mixer_timeout = gtk_timeout_add(5000, alsa_mixer_timeout, NULL); }
--- a/src/alsa/configure.c Wed May 21 15:16:34 2008 +0200 +++ b/src/alsa/configure.c Wed May 21 16:44:05 2008 +0300 @@ -48,13 +48,13 @@ { mcs_handle_t *cfgfile = aud_cfg_db_open(); - aud_cfg_db_set_int(cfgfile, "ALSA", "buffer_time", alsa_cfg.buffer_time); - aud_cfg_db_set_int(cfgfile, "ALSA", "period_time", alsa_cfg.period_time); - aud_cfg_db_set_string(cfgfile,"ALSA","pcm_device", alsa_cfg.pcm_device); - aud_cfg_db_set_int(cfgfile, "ALSA", "mixer_card", alsa_cfg.mixer_card); - aud_cfg_db_set_string(cfgfile,"ALSA","mixer_device", alsa_cfg.mixer_device); - aud_cfg_db_set_int(cfgfile, "ALSA", "volume_left", alsa_cfg.vol.left); - aud_cfg_db_set_int(cfgfile, "ALSA", "volume_right", alsa_cfg.vol.right); + aud_cfg_db_set_int(cfgfile, ALSA_CFGID, "buffer_time", alsa_cfg.buffer_time); + aud_cfg_db_set_int(cfgfile, ALSA_CFGID, "period_time", alsa_cfg.period_time); + aud_cfg_db_set_string(cfgfile,ALSA_CFGID,"pcm_device", alsa_cfg.pcm_device); + aud_cfg_db_set_int(cfgfile, ALSA_CFGID, "mixer_card", alsa_cfg.mixer_card); + aud_cfg_db_set_string(cfgfile,ALSA_CFGID,"mixer_device", alsa_cfg.mixer_device); + aud_cfg_db_set_int(cfgfile, ALSA_CFGID, "volume_left", alsa_cfg.vol.left); + aud_cfg_db_set_int(cfgfile, ALSA_CFGID, "volume_right", alsa_cfg.vol.right); aud_cfg_db_close(cfgfile); }
--- a/src/alsa/init.c Wed May 21 15:16:34 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* XMMS - ALSA output plugin - * Copyright (C) 2001-2003 Matthieu Sozeau <mattam@altern.org> - * Copyright (C) 2003-2005 Haavard Kvaalen - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -#include <glib.h> -#include "alsa.h" -#include <dlfcn.h> -#include <ctype.h> - -struct alsa_config alsa_cfg; - -void alsa_init(void) -{ - mcs_handle_t *cfgfile; - - memset(&alsa_cfg, 0, sizeof (alsa_cfg)); - alsa_cfg.buffer_time = 500; - alsa_cfg.period_time = 100; - alsa_cfg.debug = 0; - alsa_cfg.vol.left = 100; - alsa_cfg.vol.right = 100; - - cfgfile = aud_cfg_db_open(); - if (!aud_cfg_db_get_string(cfgfile, "ALSA", "pcm_device", - &alsa_cfg.pcm_device)) - alsa_cfg.pcm_device = g_strdup("default"); - g_message("device: %s", alsa_cfg.pcm_device); - if (!aud_cfg_db_get_string(cfgfile, "ALSA", "mixer_device", - &alsa_cfg.mixer_device)) - alsa_cfg.mixer_device = g_strdup("PCM"); - aud_cfg_db_get_int(cfgfile, "ALSA", "mixer_card", &alsa_cfg.mixer_card); - aud_cfg_db_get_int(cfgfile, "ALSA", "buffer_time", &alsa_cfg.buffer_time); - aud_cfg_db_get_int(cfgfile, "ALSA", "period_time", &alsa_cfg.period_time); - - aud_cfg_db_get_bool(cfgfile, "ALSA", "debug", &alsa_cfg.debug); - aud_cfg_db_close(cfgfile); - - if (dlopen("libasound.so.2", RTLD_NOW | RTLD_GLOBAL) == NULL) - { - g_message("Cannot load alsa library: %s", dlerror()); - /* FIXME, this plugin wont work... */ - } -}