Ticket #5477: toggleupmixer_v2_fixes_branch.diff

File toggleupmixer_v2_fixes_branch.diff, 7.8 KB (added by Markus Schulz <msc@…>, 12 years ago)

Toggle-Upmixer for Fixes Branch. compiles fine but currently not tested.

  • libs/libmythtv/NuppelVideoPlayer.cpp

     
    37003700    audio_codec = ac;
    37013701}
    37023702
     3703bool NuppelVideoPlayer::ToggleUpmixer()
     3704{
     3705    if (audioOutput)
     3706    {
     3707        return audioOutput->ToggleUpmixer( audio_bits, audio_channels,
     3708            audio_samplerate, audio_passthru, audio_codec);
     3709    }
     3710    return false;
     3711}
     3712
    37033713void NuppelVideoPlayer::SetEffDsp(int dsprate)
    37043714{
    37053715    if (audioOutput)
  • libs/libmythtv/tv_play.h

     
    223223    // Used by EPG
    224224    void ChangeVolume(bool up);
    225225    void ToggleMute(void);
     226    void ToggleUpmixer(void);
    226227
    227228  public slots:
    228229    void HandleOSDClosed(int osdType);
  • libs/libmythtv/NuppelVideoPlayer.h

     
    128128    void SetAudioParams(int bits, int channels, int samplerate, bool passthru);
    129129    void SetEffDsp(int dsprate);
    130130    void SetAudioCodec(void *ac);
     131    bool ToggleUpmixer();
    131132
    132133    // Sets
    133134    void SetParentWidget(QWidget *widget)     { parentWidget = widget; }
  • libs/libmythtv/tv_play.cpp

     
    348348    REG_KEY("TV Playback", "VOLUMEDOWN", "Volume down", "[,{,F10,Volume Down");
    349349    REG_KEY("TV Playback", "VOLUMEUP",   "Volume up",   "],},F11,Volume Up");
    350350    REG_KEY("TV Playback", "MUTE",       "Mute",        "|,\\,F9,Volume Mute");
     351    REG_KEY("TV Playback", "TOGGLEUPMIXER",       "Toggle Upmixer",        "F12,Toggle Upmixer");
    351352    REG_KEY("TV Playback", "TOGGLEPIPMODE", "Toggle Picture-in-Picture mode",
    352353            "V");
    353354    REG_KEY("TV Playback", "TOGGLEPIPWINDOW", "Toggle active PiP window", "B");
     
    27102711            else if (action == "VOLUMEDOWN" || action == "VOLUMEUP" ||
    27112712                     action == "STRETCHINC" || action == "STRETCHDEC" ||
    27122713                     action == "MUTE"       || action == "TOGGLEASPECT" ||
    2713                      action == "TOGGLEFILL" )
     2714                     action == "TOGGLEFILL" || action == "TOGGLEUPMIXER")
    27142715            {
    27152716                passThru = 1;
    27162717                handled = false;
     
    27652766            else if (action == "VOLUMEDOWN" || action == "VOLUMEUP" ||
    27662767                     action == "STRETCHINC" || action == "STRETCHDEC" ||
    27672768                     action == "MUTE" || action == "PAUSE" ||
    2768                      action == "CLEAROSD")
     2769                     action == "CLEAROSD" || action == "TOGGLEUPMIXER")
    27692770            {
    27702771                passThru = 1;
    27712772                handled = false;
     
    33093310            ChangeVolume(true);
    33103311        else if (action == "MUTE")
    33113312            ToggleMute();
     3313        else if (action == "TOGGLEUPMIXER")
     3314            ToggleUpmixer();
    33123315        else if (action == "STRETCHINC")
    33133316            ChangeTimeStretch(1);
    33143317        else if (action == "STRETCHDEC")
     
    61316134        GetOSD()->SetSettingsText(text, 5);
    61326135}
    61336136
     6137void TV::ToggleUpmixer(void)
     6138{
     6139    bool state=nvp->ToggleUpmixer();
     6140
     6141    QString text;
     6142
     6143    if(state)
     6144        text = tr("Upmixer enabled");
     6145    else
     6146        text = tr("Upmixer disabled");
     6147
     6148    if (GetOSD() && !browsemode)
     6149        GetOSD()->SetSettingsText(text, 5);
     6150}
     6151
    61346152void TV::ToggleSleepTimer(void)
    61356153{
    61366154    QString text;
     
    72787296
    72797297    if (HandleTrackAction(action))
    72807298        ;
     7299    else if (action == "TOGGLEUPMIXER")
     7300        ToggleUpmixer();
    72817301    else if (action == "TOGGLEMANUALZOOM")
    72827302        SetManualZoom(true);
    72837303    else if (action == "TOGGLESTRETCH")
     
    75127532                QString("TOGGLEPICCONTROLS%1").arg(i));
    75137533        }
    75147534    }
     7535    new OSDGenericTree(treeMenu, tr("Toggle Upmixer"), "TOGGLEUPMIXER");
    75157536
    75167537    item = new OSDGenericTree(treeMenu, tr("Manual Zoom Mode"),
    75177538                             "TOGGLEMANUALZOOM");
  • libs/libmyth/audiooutputbase.h

     
    8787    virtual void bufferOutputData(bool y){ buffer_output_data_for_use = y; }
    8888    virtual int readOutputData(unsigned char *read_buffer, int max_length);
    8989   
     90    virtual bool ToggleUpmixer( int   audio_bits,
     91                                int   audio_channels,
     92                                int   audio_samplerate,
     93                                bool  audio_passthru,
     94                                void *audio_codec = NULL);
    9095 protected:
    9196
    9297    // You need to implement the following functions
     
    169174    int source_audio_channels;
    170175    int source_audio_bytes_per_sample;
    171176    bool needs_upmix;
     177    bool upmixer_enabled;
    172178    int surround_mode;
    173179
    174180    bool blocking; // do AddSamples calls block?
  • libs/libmyth/audiooutputbase.cpp

     
    5757    source_audio_channels(-1),
    5858    source_audio_bytes_per_sample(0),
    5959    needs_upmix(false),
     60    upmixer_enabled(false),
    6061    surround_mode(FreeSurround::SurroundModePassive),
    6162
    6263    blocking(false),
     
    195196    int lsource_audio_channels = laudio_channels;
    196197    bool lneeds_upmix = false;
    197198
     199    if (!upmixer_enabled)
     200        configured_audio_channels = laudio_channels;
     201    else
     202        configured_audio_channels = gContext->GetNumSetting("MaxChannels", 2);
     203
    198204    if (laudio_codec)
    199205    {
    200206        lcodec_id = ((AVCodecContext*)laudio_codec)->codec_id;
     
    846852    return len;
    847853}
    848854
     855bool AudioOutputBase::ToggleUpmixer(int laudio_bits, int laudio_channels,
     856                                  int laudio_samplerate, bool laudio_passthru,
     857                                  void *laudio_codec)
     858{
     859    upmixer_enabled = !upmixer_enabled;
     860    this->Reconfigure(laudio_bits, laudio_channels,
     861      laudio_samplerate, laudio_passthru, laudio_codec);
     862    return upmixer_enabled;
     863}
     864
    849865void AudioOutputBase::_AddSamples(void *buffer, bool interleaved, int samples,
    850866                                  long long timecode)
    851867{
  • libs/libmyth/audiooutput.h

     
    7474    virtual void bufferOutputData(bool y) = 0;
    7575    virtual int readOutputData(unsigned char *read_buffer, int max_length) = 0;
    7676
     77    virtual bool ToggleUpmixer( int audio_bits,
     78                                int audio_channels,
     79                                int audio_samplerate,
     80                                bool audio_passthru,
     81                                void* audio_codec = NULL) = 0;
     82
    7783  protected:
    7884    void Error(QString msg)
    7985    {
  • programs/mythtranscode/transcode.cpp

     
    166166        // Do nothing
    167167        return;
    168168    }
     169    virtual bool ToggleUpmixer( int audio_bits,
     170                                int audio_channels,
     171                                int audio_samplerate,
     172                                bool audio_passthru,
     173                                void* audio_codec = NULL)
     174    {
     175        return false;
     176    };
    169177
    170178    virtual int GetAudiotime(void)
    171179    {