X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=plugins%2Fdsp%2Fdsp.c;h=bdadf7694e0511f8b4c9b6b96978385491a21681;hb=440f9992ee947ea5fd0debbf35fdd1011c6404b3;hp=78bccbf10fb75d930ea28a1fcbb9a7a08c442a5d;hpb=e13aed00cf01eefa9285cb030486ee0118ea0425;p=vlc diff --git a/plugins/dsp/dsp.c b/plugins/dsp/dsp.c index 78bccbf10f..bdadf7694e 100644 --- a/plugins/dsp/dsp.c +++ b/plugins/dsp/dsp.c @@ -1,9 +1,11 @@ /***************************************************************************** - * dsp.c : OSS /dev/dsp plugin for vlc + * dsp.c : OSS /dev/dsp module for vlc ***************************************************************************** * Copyright (C) 2000 VideoLAN + * $Id: dsp.c,v 1.9 2001/05/30 17:03:12 sam Exp $ * - * Authors: + * Authors: Michel Kaempf + * Samuel Hocevar * * 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 @@ -20,98 +22,49 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. *****************************************************************************/ +#define MODULE_NAME dsp +#include "modules_inner.h" + /***************************************************************************** * Preamble *****************************************************************************/ #include "defs.h" -#include -#include -#include #include /* malloc(), free() */ -#include /* close() */ +#include /* strdup() */ #include "config.h" #include "common.h" /* boolean_t, byte_t */ #include "threads.h" #include "mtime.h" -#include "tests.h" -#include "plugins.h" - -#include "interface.h" -#include "audio_output.h" -#include "video.h" -#include "video_output.h" - -#include "main.h" - -/***************************************************************************** - * Exported prototypes - *****************************************************************************/ -static void aout_GetPlugin( p_aout_thread_t p_aout ); -/* Audio output */ -int aout_DspOpen ( aout_thread_t *p_aout ); -int aout_DspReset ( aout_thread_t *p_aout ); -int aout_DspSetFormat ( aout_thread_t *p_aout ); -int aout_DspSetChannels ( aout_thread_t *p_aout ); -int aout_DspSetRate ( aout_thread_t *p_aout ); -long aout_DspGetBufInfo ( aout_thread_t *p_aout, long l_buffer_info ); -void aout_DspPlaySamples ( aout_thread_t *p_aout, byte_t *buffer, - int i_size ); -void aout_DspClose ( aout_thread_t *p_aout ); +#include "modules.h" +#include "modules_export.h" /***************************************************************************** - * GetConfig: get the plugin structure and configuration + * Capabilities defined in the other files. *****************************************************************************/ -plugin_info_t * GetConfig( void ) -{ - int i_fd; - plugin_info_t * p_info = (plugin_info_t *) malloc( sizeof(plugin_info_t) ); - - p_info->psz_name = "OSS /dev/dsp"; - p_info->psz_version = VERSION; - p_info->psz_author = "the VideoLAN team "; - - p_info->aout_GetPlugin = aout_GetPlugin; - p_info->vout_GetPlugin = NULL; - p_info->intf_GetPlugin = NULL; - p_info->yuv_GetPlugin = NULL; - - /* Test if the device can be opened */ - if ( (i_fd = open( main_GetPszVariable( AOUT_DSP_VAR, AOUT_DSP_DEFAULT ), - O_WRONLY )) < 0 ) - { - p_info->i_score = 0; - } - else - { - close( i_fd ); - p_info->i_score = 0x100; - } - - /* If this plugin was requested, score it higher */ - if( TestMethod( AOUT_METHOD_VAR, "dsp" ) ) - { - p_info->i_score += 0x200; - } - - return( p_info ); -} +void _M( aout_getfunctions )( function_list_t * p_function_list ); /***************************************************************************** - * Following functions are only called through the p_info structure + * Build configuration tree. *****************************************************************************/ - -static void aout_GetPlugin( p_aout_thread_t p_aout ) -{ - p_aout->p_sys_open = aout_DspOpen; - p_aout->p_sys_reset = aout_DspReset; - p_aout->p_sys_setformat = aout_DspSetFormat; - p_aout->p_sys_setchannels = aout_DspSetChannels; - p_aout->p_sys_setrate = aout_DspSetRate; - p_aout->p_sys_getbufinfo = aout_DspGetBufInfo; - p_aout->p_sys_playsamples = aout_DspPlaySamples; - p_aout->p_sys_close = aout_DspClose; -} +MODULE_CONFIG_START +ADD_WINDOW( "Configuration for dsp module" ) + ADD_FRAME( "OSS Device" ) + ADD_FILE( "Device name: ", MODULE_VAR(device), NULL ) +MODULE_CONFIG_STOP + +MODULE_INIT_START + p_module->i_capabilities = MODULE_CAPABILITY_NULL + | MODULE_CAPABILITY_AOUT; + p_module->psz_longname = "Linux OSS /dev/dsp module"; +MODULE_INIT_STOP + +MODULE_ACTIVATE_START + _M( aout_getfunctions )( &p_module->p_functions->aout ); +MODULE_ACTIVATE_STOP + +MODULE_DEACTIVATE_START +MODULE_DEACTIVATE_STOP