]> git.sesse.net Git - vlc/blobdiff - src/audio_output/common.c
aout: move audio output module function (back) to output.c
[vlc] / src / audio_output / common.c
index 3e728ebe81b53ef8ffa9b906a2c6c17a4df94603..b11e08631ca6555934402421d09cd12180a0c8db 100644 (file)
@@ -21,9 +21,6 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-/*****************************************************************************
- * Preamble
- *****************************************************************************/
 #ifdef HAVE_CONFIG_H
 # include "config.h"
 #endif
 
 #include <vlc_common.h>
 #include <vlc_aout.h>
-#include <vlc_modules.h>
 #include "aout_internal.h"
-#include "libvlc.h"
-
-/*
- * Instances management (internal and external)
- */
-
-/* Local functions */
-static void aout_Destructor( vlc_object_t * p_this );
-
-#undef aout_New
-/*****************************************************************************
- * aout_New: initialize aout structure
- *****************************************************************************/
-audio_output_t *aout_New( vlc_object_t * p_parent )
-{
-    audio_output_t *aout = vlc_custom_create (p_parent,
-                                              sizeof (aout_instance_t),
-                                              "audio output");
-    if (unlikely(aout == NULL))
-        return NULL;
-
-    aout_owner_t *owner = aout_owner (aout);
-
-    vlc_mutex_init (&owner->lock);
-    owner->module = NULL;
-    owner->input = NULL;
-    vlc_mutex_init (&owner->volume.lock);
-    owner->volume.multiplier = 1.0;
-    owner->volume.mixer = NULL;
-
-    aout->pf_play = aout_DecDeleteBuffer;
-    aout->pf_volume_set = NULL;
-    vlc_object_set_destructor (aout, aout_Destructor);
-
-    /*
-     * Persistent audio output variables
-     */
-    vlc_value_t val, text;
-    char *str;
-
-    var_Create (aout, "volume", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT);
-    var_Create (aout, "mute", VLC_VAR_BOOL | VLC_VAR_DOINHERIT);
-
-    /* Visualizations */
-    var_Create (aout, "visual", VLC_VAR_STRING | VLC_VAR_HASCHOICE);
-    text.psz_string = _("Visualizations");
-    var_Change (aout, "visual", VLC_VAR_SETTEXT, &text, NULL);
-    val.psz_string = (char *)"";
-    text.psz_string = _("Disable");
-    var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
-    val.psz_string = (char *)"spectrometer";
-    text.psz_string = _("Spectrometer");
-    var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
-    val.psz_string = (char *)"scope";
-    text.psz_string = _("Scope");
-    var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
-    val.psz_string = (char *)"spectrum";
-    text.psz_string = _("Spectrum");
-    var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
-    val.psz_string = (char *)"vuMeter";
-    text.psz_string = _("Vu meter");
-    var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
-    /* Look for goom plugin */
-    if (module_exists ("goom"))
-    {
-        val.psz_string = (char *)"goom";
-        text.psz_string = (char *)"Goom";
-        var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
-    }
-    /* Look for libprojectM plugin */
-    if (module_exists ("projectm"))
-    {
-        val.psz_string = (char *)"projectm";
-        text.psz_string = (char*)"projectM";
-        var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
-    }
-    /* Look for VSXu plugin */
-    if (module_exists ("vsxu"))
-    {
-        val.psz_string = (char *)"vsxu";
-        text.psz_string = (char*)"Vovoid VSXu";
-        var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
-    }
-    str = var_GetNonEmptyString (aout, "effect-list");
-    if (str != NULL)
-    {
-        var_SetString (aout, "visual", str);
-        free (str);
-    }
-
-    /* Equalizer */
-    var_Create (aout, "equalizer", VLC_VAR_STRING | VLC_VAR_HASCHOICE);
-    text.psz_string = _("Equalizer");
-    var_Change (aout, "equalizer", VLC_VAR_SETTEXT, &text, NULL);
-    val.psz_string = (char*)"";
-    text.psz_string = _("Disable");
-    var_Change (aout, "equalizer", VLC_VAR_ADDCHOICE, &val, &text);
-    {
-        module_config_t *cfg = config_FindConfig (VLC_OBJECT(aout),
-                                                  "equalizer-preset");
-        if (cfg != NULL)
-            for (int i = 0; i < cfg->i_list; i++)
-            {
-                val.psz_string = (char *)cfg->ppsz_list[i];
-                text.psz_string = (char *)cfg->ppsz_list_text[i];
-                var_Change (aout, "equalizer", VLC_VAR_ADDCHOICE, &val, &text);
-            }
-    }
-
-
-    var_Create (aout, "audio-filter", VLC_VAR_STRING | VLC_VAR_DOINHERIT);
-    text.psz_string = _("Audio filters");
-    var_Change (aout, "audio-filter", VLC_VAR_SETTEXT, &text, NULL);
-
-
-    var_Create (aout, "audio-visual", VLC_VAR_STRING | VLC_VAR_DOINHERIT);
-    text.psz_string = _("Audio visualizations");
-    var_Change (aout, "audio-visual", VLC_VAR_SETTEXT, &text, NULL);
-
-
-    /* Replay gain */
-    var_Create (aout, "audio-replay-gain-mode",
-                VLC_VAR_STRING | VLC_VAR_DOINHERIT );
-    text.psz_string = _("Replay gain");
-    var_Change (aout, "audio-replay-gain-mode", VLC_VAR_SETTEXT, &text, NULL);
-    {
-        module_config_t *cfg = config_FindConfig (VLC_OBJECT(aout),
-                                                  "audio-replay-gain-mode");
-        if( cfg != NULL )
-            for (int i = 0; i < cfg->i_list; i++)
-            {
-                val.psz_string = (char *)cfg->ppsz_list[i];
-                text.psz_string = (char *)cfg->ppsz_list_text[i];
-                var_Change (aout, "audio-replay-gain-mode", VLC_VAR_ADDCHOICE,
-                            &val, &text);
-            }
-    }
-
-
-    return aout;
-}
-
-void aout_Destroy (audio_output_t *aout)
-{
-    aout_owner_t *owner = aout_owner (aout);
-
-    if (owner->module != NULL)
-        aout_Shutdown (aout);
-    vlc_object_release (aout);
-}
-
-/*****************************************************************************
- * aout_Destructor: destroy aout structure
- *****************************************************************************/
-static void aout_Destructor (vlc_object_t *obj)
-{
-    audio_output_t *aout = (audio_output_t *)obj;
-    aout_owner_t *owner = aout_owner (aout);
-
-    vlc_mutex_destroy (&owner->volume.lock);
-    vlc_mutex_destroy (&owner->lock);
-}
-
-#ifdef AOUT_DEBUG
-/* Lock debugging */
-static __thread unsigned aout_locks = 0;
-
-void aout_lock_check (unsigned i)
-{
-    unsigned allowed;
-    switch (i)
-    {
-        case VOLUME_LOCK:
-            allowed = 0;
-            break;
-        case OUTPUT_LOCK:
-            allowed = VOLUME_LOCK;
-            break;
-        default:
-            abort ();
-    }
-
-    if (aout_locks & ~allowed)
-    {
-        fprintf (stderr, "Illegal audio lock transition (%x -> %x)\n",
-                 aout_locks, aout_locks|i);
-        vlc_backtrace ();
-        abort ();
-    }
-    aout_locks |= i;
-}
-
-void aout_unlock_check (unsigned i)
-{
-    assert (aout_locks & i);
-    aout_locks &= ~i;
-}
-#endif
 
 /*
  * Formats management (internal and external)
@@ -402,6 +200,10 @@ const char * aout_FormatPrintChannels( const audio_sample_format_t * p_format )
           | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT | AOUT_CHAN_MIDDLELEFT
           | AOUT_CHAN_MIDDLERIGHT | AOUT_CHAN_LFE:
         return "3F2M2R/LFE";
+    case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
+          | AOUT_CHAN_REARCENTER | AOUT_CHAN_MIDDLELEFT
+          | AOUT_CHAN_MIDDLERIGHT | AOUT_CHAN_LFE:
+        return "3F2M1R/LFE";
     }
 
     return "ERROR";
@@ -651,13 +453,12 @@ bool aout_CheckChannelExtraction( int *pi_selection,
 static int FilterOrder( const char *psz_name )
 {
     static const struct {
-        const char *psz_name;
+        const char psz_name[10];
         int        i_order;
     } filter[] = {
         { "equalizer",  0 },
-        { NULL,         INT_MAX },
     };
-    for( int i = 0; filter[i].psz_name; i++ )
+    for( unsigned i = 0; i < ARRAY_SIZE(filter); i++ )
     {
         if( !strcmp( filter[i].psz_name, psz_name ) )
             return filter[i].i_order;
@@ -768,6 +569,3 @@ bool aout_ChangeFilterString( vlc_object_t *p_obj, vlc_object_t *p_aout,
 
     return true;
 }
-
-
-