]> git.sesse.net Git - vlc/blobdiff - include/audio_output.h
. all plugins now compile with -fPIC.
[vlc] / include / audio_output.h
index 80d909104fd321115b939b1952a2933701383512..31457b10f63aa8e6bdbd27dd08d47fa30b6d4ad4 100644 (file)
  * - Créer un flag destroy dans les fifos audio pour indiquer au thread audio
  *   qu'il peut libérer la mémoire occupée par le buffer de la fifo lorsqu'il
  *   le désire (fin du son ou fin du thread)
- * - Redéplacer les #define dans config.h
  *
  */
 
-/*
- * Defines => "config.h"
- */
-
-/* Default output device. You probably should not change this. */
-#define AOUT_DEFAULT_DEVICE     "/dev/dsp"
-
-/* Default audio output format (AOUT_FMT_S16_NE = Native Endianess) */
-#define AOUT_DEFAULT_FORMAT     AOUT_FMT_S16_NE
-
-/* #define AOUT_DEFAULT_FORMAT     AOUT_FMT_S8 */
-/* #define AOUT_DEFAULT_FORMAT     AOUT_FMT_U8 */
-/* #define AOUT_DEFAULT_FORMAT     AOUT_FMT_S16_BE */
-/* #define AOUT_DEFAULT_FORMAT     AOUT_FMT_S16_LE */
-/* #define AOUT_DEFAULT_FORMAT     AOUT_FMT_U16_BE */
-/* #define AOUT_DEFAULT_FORMAT     AOUT_FMT_U16_LE */
-
-
-/* Default stereo mode (0 stands for mono, 1 for stereo) */
-#define AOUT_DEFAULT_STEREO     1
-/* #define AOUT_DEFAULT_STEREO     0 */
-
-/* Audio output rate, in Hz */
-#define AOUT_MIN_RATE           22050 /* XXX?? */
-#define AOUT_DEFAULT_RATE       44100
-#define AOUT_MAX_RATE           48000
-
-
-/* Volume (default 100) */
-#define VOL 100
-#define VOLSTEP 5
-#define VOLMAX 300
-
-/* Number of audio output frames contained in an audio output fifo.
- * (AOUT_FIFO_SIZE + 1) must be a power of 2, in order to optimise the
- * %(AOUT_FIFO_SIZE + 1) operation with an &AOUT_FIFO_SIZE.
- * With 511 we have at least 511*384/2/48000=2 seconds of sound */
-#define AOUT_FIFO_SIZE          511
-
-/* Maximum number of audio fifos. The value of AOUT_MAX_FIFOS should be a power
- * of two, in order to optimize the '/AOUT_MAX_FIFOS' and '*AOUT_MAX_FIFOS'
- * operations with '>>' and '<<' (gcc changes this at compilation-time) */
-#define AOUT_MAX_FIFOS          2
-
-/* Duration (in microseconds) of an audio output buffer should be :
- * - short, in order to be able to play a new song very quickly (especially a
- *   song from the interface)
- * - long, in order to perform the buffer calculations as few as possible */
-#define AOUT_BUFFER_DURATION    100000
-
 /*
  * Macros
  */
@@ -171,16 +120,13 @@ typedef struct
 /*****************************************************************************
  * aout_thread_t : audio output thread descriptor
  *****************************************************************************/
-typedef int  (aout_sys_open_t)           ( p_aout_thread_t p_aout );
-typedef int  (aout_sys_reset_t)          ( p_aout_thread_t p_aout );
-typedef int  (aout_sys_setformat_t)      ( p_aout_thread_t p_aout );
-typedef int  (aout_sys_setchannels_t)    ( p_aout_thread_t p_aout );
-typedef int  (aout_sys_setrate_t)        ( p_aout_thread_t p_aout );
-typedef long (aout_sys_getbufinfo_t)     ( p_aout_thread_t p_aout,
-                                           long l_buffer_limit );
-typedef void (aout_sys_playsamples_t)    ( p_aout_thread_t p_aout,
-                                           byte_t *buffer, int i_size );
-typedef void (aout_sys_close_t)          ( p_aout_thread_t p_aout );
+typedef int  (aout_open_t)       ( p_aout_thread_t p_aout );
+typedef int  (aout_setformat_t)  ( p_aout_thread_t p_aout );
+typedef long (aout_getbufinfo_t) ( p_aout_thread_t p_aout,
+                                   long l_buffer_limit );
+typedef void (aout_play_t)       ( p_aout_thread_t p_aout,
+                                   byte_t *buffer, int i_size );
+typedef void (aout_close_t)      ( p_aout_thread_t p_aout );
 
 typedef struct aout_thread_s
 {
@@ -191,15 +137,13 @@ typedef struct aout_thread_s
     vlc_mutex_t         fifos_lock;
     aout_fifo_t         fifo[ AOUT_MAX_FIFOS ];
 
-    /* Plugins */
-    aout_sys_open_t *           p_sys_open;
-    aout_sys_reset_t *          p_sys_reset;
-    aout_sys_setformat_t *      p_sys_setformat;
-    aout_sys_setchannels_t *    p_sys_setchannels;
-    aout_sys_setrate_t *        p_sys_setrate;
-    aout_sys_getbufinfo_t *     p_sys_getbufinfo;
-    aout_sys_playsamples_t *    p_sys_playsamples;
-    aout_sys_close_t *          p_sys_close;
+    /* Plugin used and shortcuts to access its capabilities */
+    struct module_s *   p_module;
+    aout_open_t *       p_open;
+    aout_setformat_t *  p_setformat;
+    aout_getbufinfo_t * p_getbufinfo;
+    aout_play_t *       p_play;
+    aout_close_t *      p_close;
 
     void *              buffer;
     /* The s32 buffer is used to mix all the audio fifos together before