Mercurial > audlegacy-plugins
changeset 2695:c2861c84f850
Perform same cleanups as in "old" OSS plugin.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 06 Jun 2008 15:02:21 +0300 |
parents | 77439faa1934 |
children | 87c4bc8e8ec6 |
files | src/OSS4/Makefile src/OSS4/OSS4.c src/OSS4/OSS4.h src/OSS4/about.c src/OSS4/init.c |
diffstat | 5 files changed, 77 insertions(+), 143 deletions(-) [+] |
line wrap: on
line diff
--- a/src/OSS4/Makefile Fri Jun 06 15:01:35 2008 +0300 +++ b/src/OSS4/Makefile Fri Jun 06 15:02:21 2008 +0300 @@ -1,10 +1,8 @@ PLUGIN = OSS4${PLUGIN_SUFFIX} SRCS = OSS4.c \ - about.c \ configure.c \ audio.c \ - init.c \ convert.c include ../../buildsys.mk
--- a/src/OSS4/OSS4.c Fri Jun 06 15:01:35 2008 +0300 +++ b/src/OSS4/OSS4.c Fri Jun 06 15:02:21 2008 +0300 @@ -26,7 +26,81 @@ #include <audacious/i18n.h> #include <stdlib.h> -OutputPlugin oss_op = { +OSSConfig oss_cfg; + +static void oss_about(void) +{ + static GtkWidget *dialog; + + if (dialog != NULL) + return; + + dialog = audacious_info_dialog(_("About OSSv4 Driver"), + _("Audacious OSSv4 Driver\n\n" + "Based on the OSSv3 Output plugin,\n" + "Ported to OSSv4's VMIX by Cristi Magherusan <majeru@gentoo.ro>\n\n" + "This program is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU General Public License as published by\n" + "the Free Software Foundation; either version 2 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "This program is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU General Public License\n" + "along with this program; if not, write to the Free Software\n" + "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,\n" + "USA."), _("Ok"), FALSE, NULL, NULL); + g_signal_connect(G_OBJECT(dialog), "destroy", + G_CALLBACK(gtk_widget_destroyed), &dialog); +} + +static void oss_init(void) +{ + mcs_handle_t *db; + + memset(&oss_cfg, 0, sizeof(OSSConfig)); + + oss_cfg.audio_device = 0; + oss_cfg.buffer_size = 3000; + oss_cfg.prebuffer = 25; + oss_cfg.use_alt_audio_device = FALSE; + oss_cfg.alt_audio_device = NULL; + + if ((db = aud_cfg_db_open())) { + aud_cfg_db_get_int(db, "OSS", "audio_device", &oss_cfg.audio_device); + aud_cfg_db_get_int(db, "OSS", "buffer_size", &oss_cfg.buffer_size); + aud_cfg_db_get_int(db, "OSS", "prebuffer", &oss_cfg.prebuffer); + aud_cfg_db_get_bool(db, "OSS", "save_volume", &oss_cfg.save_volume); + aud_cfg_db_get_bool(db, "OSS", "use_alt_audio_device", + &oss_cfg.use_alt_audio_device); + aud_cfg_db_get_string(db, "OSS", "alt_audio_device", + &oss_cfg.alt_audio_device); + aud_cfg_db_get_int(db, "OSS", "saved_volume", &vol); + aud_cfg_db_close(db); + } + //volume gets saved anyway, but is ignored unless "saved_volume" is true + if(!oss_cfg.save_volume) + vol=0x6464; //maximum +} + +static void oss_cleanup(void) +{ + mcs_handle_t *db; + db = aud_cfg_db_open(); + aud_cfg_db_set_int(db, "OSS", "saved_volume", vol); + aud_cfg_db_close(db); + + if (oss_cfg.alt_audio_device) { + g_free(oss_cfg.alt_audio_device); + oss_cfg.alt_audio_device = NULL; + } + +} + +static OutputPlugin oss4_op = { .description = "OSS4 Output Plugin", /* Description */ .init = oss_init, .cleanup = oss_cleanup, @@ -46,20 +120,6 @@ .tell_audio = oss_tell }; -OutputPlugin *oss_oplist[] = { &oss_op, NULL }; - -DECLARE_PLUGIN(OSS4, NULL, NULL, NULL, oss_oplist, NULL, NULL, NULL, NULL); +static OutputPlugin *oss4_oplist[] = { &oss4_op, NULL }; -void oss_cleanup(void) -{ - mcs_handle_t *db; - db = aud_cfg_db_open(); - aud_cfg_db_set_int(db, "OSS", "saved_volume", vol); - aud_cfg_db_close(db); - - if (oss_cfg.alt_audio_device) { - g_free(oss_cfg.alt_audio_device); - oss_cfg.alt_audio_device = NULL; - } - -} +DECLARE_PLUGIN(OSS4, NULL, NULL, NULL, oss4_oplist, NULL, NULL, NULL, NULL);
--- a/src/OSS4/OSS4.h Fri Jun 06 15:01:35 2008 +0300 +++ b/src/OSS4/OSS4.h Fri Jun 06 15:02:21 2008 +0300 @@ -48,9 +48,6 @@ extern OSSConfig oss_cfg; int vol; -void oss_init(void); -void oss_cleanup(void); -void oss_about(void); void oss_configure(void); void oss_get_volume(int *l, int *r);
--- a/src/OSS4/about.c Fri Jun 06 15:01:35 2008 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* Audacious OSS4 output plugin - * Copyright (C) 2007 Cristi Magherusan - * - * Based on BMP - Cross-platform multimedia player - * Copyright (C) 2003-2004 BMP development team. - * - * Based on XMMS: - * Copyright (C) 1998-2003 XMMS development team. - * - * 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 "OSS4.h" - -#include <glib.h> -#include <audacious/i18n.h> -#include <gtk/gtk.h> - - - -void -oss_about(void) -{ - static GtkWidget *dialog; - - if (dialog != NULL) - return; - - dialog = audacious_info_dialog(_("About OSSv4 Driver"), - _("Audacious OSSv4 Driver\n\n" - "Based on the OSSv3 Output plugin,\n" - "Ported to OSSv4's VMIX by Cristi Magherusan <majeru@gentoo.ro>\n\n" - "This program is free software; you can redistribute it and/or modify\n" - "it under the terms of the GNU General Public License as published by\n" - "the Free Software Foundation; either version 2 of the License, or\n" - "(at your option) any later version.\n" - "\n" - "This program is distributed in the hope that it will be useful,\n" - "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - "GNU General Public License for more details.\n" - "\n" - "You should have received a copy of the GNU General Public License\n" - "along with this program; if not, write to the Free Software\n" - "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,\n" - "USA."), _("Ok"), FALSE, NULL, NULL); - g_signal_connect(G_OBJECT(dialog), "destroy", - G_CALLBACK(gtk_widget_destroyed), &dialog); -}
--- a/src/OSS4/init.c Fri Jun 06 15:01:35 2008 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* BMP - Cross-platform multimedia player - * Copyright (C) 2003-2004 BMP development team. - * - * Based on XMMS: - * Copyright (C) 1998-2003 XMMS development team. - * - * 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 <string.h> -#include <audacious/plugin.h> -#include "OSS4.h" - - -OSSConfig oss_cfg; - -void -oss_init(void) -{ - mcs_handle_t *db; - - memset(&oss_cfg, 0, sizeof(OSSConfig)); - - oss_cfg.audio_device = 0; - oss_cfg.buffer_size = 3000; - oss_cfg.prebuffer = 25; - oss_cfg.use_alt_audio_device = FALSE; - oss_cfg.alt_audio_device = NULL; - - if ((db = aud_cfg_db_open())) { - aud_cfg_db_get_int(db, "OSS", "audio_device", &oss_cfg.audio_device); - aud_cfg_db_get_int(db, "OSS", "buffer_size", &oss_cfg.buffer_size); - aud_cfg_db_get_int(db, "OSS", "prebuffer", &oss_cfg.prebuffer); - aud_cfg_db_get_bool(db, "OSS", "save_volume", &oss_cfg.save_volume); - aud_cfg_db_get_bool(db, "OSS", "use_alt_audio_device", - &oss_cfg.use_alt_audio_device); - aud_cfg_db_get_string(db, "OSS", "alt_audio_device", - &oss_cfg.alt_audio_device); - aud_cfg_db_get_int(db, "OSS", "saved_volume", &vol); - aud_cfg_db_close(db); - } - //volume gets saved anyway, but is ignored unless "saved_volume" is true - if(!oss_cfg.save_volume) - vol=0x6464; //maximum - - -}