Ticket #7512: AudioMixer.patch

File AudioMixer.patch, 13.7 KB (added by taos, 8 years ago)

New (and more complete) attempt to localize AudioMixer.cpp (Jamfile and .rdef included).

  • src/add-ons/media/media-add-ons/mixer/AudioMixer.rdef

     
     1/*
     2 * AudioMixer.rdef
     3 */
     4
     5resource app_signature "application/x-vnd.Haiku-mixer.media_addon";
     6
     7resource app_version {
     8    major  = 1,
     9    middle = 0,
     10    minor  = 0,
     11    variety = 0,
     12    internal = 0,
     13    short_info = "1.0.0",
     14    long_info = "Haiku AudioMixer media add-on."
     15};
  • src/add-ons/media/media-add-ons/mixer/AudioMixer.cpp

     
    1515#include <string.h>
    1616
    1717#include <Buffer.h>
     18#include <Catalog.h>
    1819#include <FindDirectory.h>
    1920#include <MediaRoster.h>
    2021#include <ParameterWeb.h>
     
    2829#include "MixerUtils.h"
    2930
    3031
     32#undef B_TRANSLATE_CONTEXT
     33#define B_TRANSLATE_CONTEXT "AudioMixer"
     34
     35
    3136// the range of the gain sliders (in dB)
    3237#define DB_MAX  18.0
    3338#define DB_MIN  -60.0
     
    16961701    MixerOutput *out;
    16971702    char buf[50];
    16981703
    1699     top = web->MakeGroup("Gain controls");
     1704    top = web->MakeGroup(B_TRANSLATE("Gain controls"));
    17001705
    17011706    out = fCore->Output();
    17021707    group = top->MakeGroup("");
    1703     group->MakeNullParameter(PARAM_STR1(0), B_MEDIA_RAW_AUDIO, "Master output", B_WEB_BUFFER_INPUT);
     1708    group->MakeNullParameter(PARAM_STR1(0), B_MEDIA_RAW_AUDIO,
     1709        B_TRANSLATE("Master output"), B_WEB_BUFFER_INPUT);
    17041710    if (!out) {
    1705         group->MakeNullParameter(PARAM_STR2(0), B_MEDIA_RAW_AUDIO, "not connected", B_GENERIC);
     1711        group->MakeNullParameter(PARAM_STR2(0), B_MEDIA_RAW_AUDIO,
     1712            B_TRANSLATE("not connected"), B_GENERIC);
    17061713    } else {
    1707         group->MakeNullParameter(PARAM_STR2(0), B_MEDIA_RAW_AUDIO, StringForFormat(buf, out), B_GENERIC);
    1708         group->MakeDiscreteParameter(PARAM_MUTE(0), B_MEDIA_RAW_AUDIO, "Mute", B_MUTE);
    1709         if (fCore->Settings()->UseBalanceControl() && out->GetOutputChannelCount() == 2 && 1 /*channel mask is stereo */) {
     1714        group->MakeNullParameter(PARAM_STR2(0), B_MEDIA_RAW_AUDIO,
     1715            StringForFormat(buf, out), B_GENERIC);
     1716        group->MakeDiscreteParameter(PARAM_MUTE(0), B_MEDIA_RAW_AUDIO,
     1717            B_TRANSLATE("Mute"), B_MUTE);
     1718        if (fCore->Settings()->UseBalanceControl()
     1719            && out->GetOutputChannelCount() == 2 && 1
     1720            /*channel mask is stereo */) {
    17101721            // single channel control + balance
    1711             group->MakeContinuousParameter(PARAM_GAIN(0), B_MEDIA_RAW_AUDIO, "Gain", B_MASTER_GAIN, "dB", DB_MIN, DB_MAX, 0.1);
    1712             group->MakeContinuousParameter(PARAM_BALANCE(0), B_MEDIA_RAW_AUDIO, "", B_BALANCE, "", 0, 100, 1);
     1722            group->MakeContinuousParameter(PARAM_GAIN(0), B_MEDIA_RAW_AUDIO,
     1723                B_TRANSLATE("Gain"), B_MASTER_GAIN, B_TRANSLATE("dB"),
     1724                DB_MIN, DB_MAX, 0.1);
     1725            group->MakeContinuousParameter(PARAM_BALANCE(0), B_MEDIA_RAW_AUDIO,
     1726                "", B_BALANCE, "", 0, 100, 1);
    17131727        } else {
    17141728            // multi channel control
    1715             group->MakeContinuousParameter(PARAM_GAIN(0), B_MEDIA_RAW_AUDIO, "Gain", B_MASTER_GAIN, "dB", DB_MIN, DB_MAX, 0.1)
    1716                                            ->SetChannelCount(out->GetOutputChannelCount());
     1729            group->MakeContinuousParameter(PARAM_GAIN(0), B_MEDIA_RAW_AUDIO,
     1730                B_TRANSLATE("Gain"), B_MASTER_GAIN, B_TRANSLATE("dB"),
     1731                DB_MIN, DB_MAX, 0.1)
     1732                   ->SetChannelCount(out->GetOutputChannelCount());
    17171733        }
    1718         group->MakeNullParameter(PARAM_STR3(0), B_MEDIA_RAW_AUDIO, "To output", B_WEB_BUFFER_OUTPUT);
     1734        group->MakeNullParameter(PARAM_STR3(0), B_MEDIA_RAW_AUDIO,
     1735            B_TRANSLATE("To output"), B_WEB_BUFFER_OUTPUT);
    17191736    }
    17201737
    17211738    for (int i = 0; (in = fCore->Input(i)); i++) {
    17221739        group = top->MakeGroup("");
    1723         group->MakeNullParameter(PARAM_STR1(in->ID()), B_MEDIA_RAW_AUDIO, in->MediaInput().name, B_WEB_BUFFER_INPUT);
    1724         group->MakeNullParameter(PARAM_STR2(in->ID()), B_MEDIA_RAW_AUDIO, StringForFormat(buf, in), B_GENERIC);
    1725         group->MakeDiscreteParameter(PARAM_MUTE(in->ID()), B_MEDIA_RAW_AUDIO, "Mute", B_MUTE);
     1740        group->MakeNullParameter(PARAM_STR1(in->ID()), B_MEDIA_RAW_AUDIO,
     1741            in->MediaInput().name, B_WEB_BUFFER_INPUT);
     1742        group->MakeNullParameter(PARAM_STR2(in->ID()), B_MEDIA_RAW_AUDIO,
     1743            StringForFormat(buf, in), B_GENERIC);
     1744        group->MakeDiscreteParameter(PARAM_MUTE(in->ID()), B_MEDIA_RAW_AUDIO,
     1745            B_TRANSLATE("Mute"), B_MUTE);
    17261746        // XXX the gain control is ugly once you have more than two channels,
    17271747        //     as you don't know what channel each slider controls. Tooltips might help...
    17281748        if (fCore->Settings()->InputGainControls() == 0) {
    17291749            // Physical input channels
    1730             if (fCore->Settings()->UseBalanceControl() && in->GetInputChannelCount() == 2 && 1 /*channel mask is stereo */) {
     1750            if (fCore->Settings()->UseBalanceControl()
     1751                && in->GetInputChannelCount() == 2 && 1
     1752                /*channel mask is stereo */) {
    17311753                // single channel control + balance
    1732                 group->MakeContinuousParameter(PARAM_GAIN(in->ID()), B_MEDIA_RAW_AUDIO, "Gain", B_GAIN, "dB", DB_MIN, DB_MAX, 0.1);
    1733                 group->MakeContinuousParameter(PARAM_BALANCE(in->ID()), B_MEDIA_RAW_AUDIO, "", B_BALANCE, "", 0, 100, 1);
     1754                group->MakeContinuousParameter(PARAM_GAIN(in->ID()),
     1755                    B_MEDIA_RAW_AUDIO, B_TRANSLATE("Gain"), B_GAIN,
     1756                    B_TRANSLATE("dB"), DB_MIN, DB_MAX, 0.1);
     1757                group->MakeContinuousParameter(PARAM_BALANCE(in->ID()),
     1758                    B_MEDIA_RAW_AUDIO, "", B_BALANCE, "", 0, 100, 1);
    17341759            } else {
    17351760                // multi channel control
    1736                 group->MakeContinuousParameter(PARAM_GAIN(in->ID()), B_MEDIA_RAW_AUDIO, "Gain", B_GAIN, "dB", DB_MIN, DB_MAX, 0.1)
    1737                                                ->SetChannelCount(in->GetInputChannelCount());
     1761                group->MakeContinuousParameter(PARAM_GAIN(in->ID()),
     1762                    B_MEDIA_RAW_AUDIO, B_TRANSLATE("Gain"), B_GAIN,
     1763                    B_TRANSLATE("dB"), DB_MIN, DB_MAX, 0.1)
     1764                        ->SetChannelCount(in->GetInputChannelCount());
    17381765            }
    17391766        } else {
    17401767            // Virtual output channels
    1741             if (fCore->Settings()->UseBalanceControl() && in->GetMixerChannelCount() == 2 && 1 /*channel mask is stereo */) {
     1768            if (fCore->Settings()->UseBalanceControl()
     1769                && in->GetMixerChannelCount() == 2 && 1
     1770                /*channel mask is stereo */) {
    17421771                // single channel control + balance
    1743                 group->MakeContinuousParameter(PARAM_GAIN(in->ID()), B_MEDIA_RAW_AUDIO, "Gain", B_GAIN, "dB", DB_MIN, DB_MAX, 0.1);
    1744                 group->MakeContinuousParameter(PARAM_BALANCE(in->ID()), B_MEDIA_RAW_AUDIO, "", B_BALANCE, "", 0, 100, 1);
     1772                group->MakeContinuousParameter(PARAM_GAIN(in->ID()),
     1773                    B_MEDIA_RAW_AUDIO, B_TRANSLATE("Gain"), B_GAIN,
     1774                    B_TRANSLATE("dB"), DB_MIN, DB_MAX, 0.1);
     1775                group->MakeContinuousParameter(PARAM_BALANCE(in->ID()),
     1776                    B_MEDIA_RAW_AUDIO, "", B_BALANCE, "", 0, 100, 1);
    17451777            } else {
    17461778                // multi channel control
    1747                 group->MakeContinuousParameter(PARAM_GAIN(in->ID()), B_MEDIA_RAW_AUDIO, "Gain", B_GAIN, "dB", DB_MIN, DB_MAX, 0.1)
    1748                                                ->SetChannelCount(in->GetMixerChannelCount());
     1779                group->MakeContinuousParameter(PARAM_GAIN(in->ID()),
     1780                    B_MEDIA_RAW_AUDIO, B_TRANSLATE("Gain"), B_GAIN,
     1781                    B_TRANSLATE("dB"), DB_MIN, DB_MAX, 0.1)
     1782                        ->SetChannelCount(in->GetMixerChannelCount());
    17491783            }
    17501784        }
    1751         group->MakeNullParameter(PARAM_STR3(in->ID()), B_MEDIA_RAW_AUDIO, "To master", B_WEB_BUFFER_OUTPUT);
     1785        group->MakeNullParameter(PARAM_STR3(in->ID()), B_MEDIA_RAW_AUDIO,
     1786            B_TRANSLATE("To master"), B_WEB_BUFFER_OUTPUT);
    17521787    }
    17531788
    17541789    if (fCore->Settings()->AllowOutputChannelRemapping()) {
    1755         top = web->MakeGroup("Output mapping"); // top level group
     1790        top = web->MakeGroup(B_TRANSLATE("Output mapping")); // top level group
    17561791        outputchannels = top->MakeGroup("");
    1757         outputchannels->MakeNullParameter(PARAM_STR4(0), B_MEDIA_RAW_AUDIO, "Output channel sources", B_GENERIC);
     1792        outputchannels->MakeNullParameter(PARAM_STR4(0), B_MEDIA_RAW_AUDIO,
     1793            B_TRANSLATE("Output channel sources"), B_GENERIC);
    17581794
    17591795        group = outputchannels->MakeGroup("");
    1760         group->MakeNullParameter(PARAM_STR5(0), B_MEDIA_RAW_AUDIO, "Master output", B_GENERIC);
     1796        group->MakeNullParameter(PARAM_STR5(0), B_MEDIA_RAW_AUDIO,
     1797            B_TRANSLATE("Master output"), B_GENERIC);
    17611798        group = group->MakeGroup("");
    17621799        if (!out) {
    1763             group->MakeNullParameter(PARAM_STR6(0), B_MEDIA_RAW_AUDIO, "not connected", B_GENERIC);
     1800            group->MakeNullParameter(PARAM_STR6(0), B_MEDIA_RAW_AUDIO,
     1801                B_TRANSLATE("not connected"), B_GENERIC);
    17641802        } else {
    17651803            for (int chan = 0; chan < out->GetOutputChannelCount(); chan++) {
    17661804                subgroup = group->MakeGroup("");
     
    17821820    }
    17831821
    17841822    if (fCore->Settings()->AllowInputChannelRemapping()) {
    1785         top = web->MakeGroup("Input mapping"); // top level group
     1823        top = web->MakeGroup(B_TRANSLATE("Input mapping")); // top level group
    17861824        inputchannels = top->MakeGroup("");
    1787         inputchannels->MakeNullParameter(PARAM_STR7(0), B_MEDIA_RAW_AUDIO, "Input channel destinations", B_GENERIC);
     1825        inputchannels->MakeNullParameter(PARAM_STR7(0), B_MEDIA_RAW_AUDIO,
     1826            B_TRANSLATE("Input channel destinations"), B_GENERIC);
    17881827
    17891828        for (int i = 0; (in = fCore->Input(i)); i++) {
    17901829            group = inputchannels->MakeGroup("");
    1791             group->MakeNullParameter(PARAM_STR4(in->ID()), B_MEDIA_RAW_AUDIO, in->MediaInput().name, B_GENERIC);
     1830            group->MakeNullParameter(PARAM_STR4(in->ID()), B_MEDIA_RAW_AUDIO,
     1831                in->MediaInput().name, B_GENERIC);
    17921832            group = group->MakeGroup("");
    17931833
    17941834            for (int chan = 0; chan < in->GetInputChannelCount(); chan++) {
    17951835                subgroup = group->MakeGroup("");
    1796                 subgroup->MakeNullParameter(PARAM_DST_STR(in->ID(), chan), B_MEDIA_RAW_AUDIO,
    1797                                             StringForChannelType(buf, in->GetInputChannelType(chan)), B_GENERIC);
     1836                subgroup->MakeNullParameter(PARAM_DST_STR(in->ID(), chan),
     1837                    B_MEDIA_RAW_AUDIO, StringForChannelType(buf,
     1838                    in->GetInputChannelType(chan)), B_GENERIC);
    17981839                for (int dst = 0; dst < MAX_CHANNEL_TYPES; dst++) {
    1799                     subgroup->MakeDiscreteParameter(PARAM_DST_ENABLE(in->ID(), chan, dst), B_MEDIA_RAW_AUDIO, StringForChannelType(buf, dst), B_ENABLE);
     1840                    subgroup->MakeDiscreteParameter(PARAM_DST_ENABLE(in->ID(),
     1841                    chan, dst), B_MEDIA_RAW_AUDIO, StringForChannelType(buf, dst),
     1842                    B_ENABLE);
    18001843                }
    18011844            }
    18021845        }
    18031846    }
    18041847
    1805     top = web->MakeGroup("Setup"); // top level group
     1848    top = web->MakeGroup(B_TRANSLATE("Setup")); // top level group
    18061849    group = top->MakeGroup("");
    18071850
    1808     group->MakeDiscreteParameter(PARAM_ETC(10), B_MEDIA_RAW_AUDIO, "Attenuate mixer output by 3dB (like BeOS R5)", B_ENABLE);
    1809     group->MakeDiscreteParameter(PARAM_ETC(20), B_MEDIA_RAW_AUDIO, "Use non linear gain sliders (like BeOS R5)", B_ENABLE);
    1810     group->MakeDiscreteParameter(PARAM_ETC(30), B_MEDIA_RAW_AUDIO, "Display balance control for stereo connections", B_ENABLE);
     1851    group->MakeDiscreteParameter(PARAM_ETC(10), B_MEDIA_RAW_AUDIO,
     1852        B_TRANSLATE("Attenuate mixer output by 3dB (like BeOS R5)"), B_ENABLE);
     1853    group->MakeDiscreteParameter(PARAM_ETC(20), B_MEDIA_RAW_AUDIO,
     1854        B_TRANSLATE("Use non linear gain sliders (like BeOS R5)"), B_ENABLE);
     1855    group->MakeDiscreteParameter(PARAM_ETC(30), B_MEDIA_RAW_AUDIO,
     1856        B_TRANSLATE("Display balance control for stereo connections"),
     1857        B_ENABLE);
    18111858
    1812     group->MakeDiscreteParameter(PARAM_ETC(40), B_MEDIA_RAW_AUDIO, "Allow output channel remapping", B_ENABLE);
    1813     group->MakeDiscreteParameter(PARAM_ETC(50), B_MEDIA_RAW_AUDIO, "Allow input channel remapping", B_ENABLE);
     1859    group->MakeDiscreteParameter(PARAM_ETC(40), B_MEDIA_RAW_AUDIO,
     1860        B_TRANSLATE("Allow output channel remapping"), B_ENABLE);
     1861    group->MakeDiscreteParameter(PARAM_ETC(50), B_MEDIA_RAW_AUDIO,
     1862        B_TRANSLATE("Allow input channel remapping"), B_ENABLE);
    18141863
    1815     dp = group->MakeDiscreteParameter(PARAM_ETC(60), B_MEDIA_RAW_AUDIO, "Input gain controls represent", B_INPUT_MUX);
    1816     dp->AddItem(0, "Physical input channels");
    1817     dp->AddItem(1, "Virtual output channels");
     1864    dp = group->MakeDiscreteParameter(PARAM_ETC(60), B_MEDIA_RAW_AUDIO,
     1865        B_TRANSLATE("Input gain controls represent"), B_INPUT_MUX);
     1866    dp->AddItem(0, B_TRANSLATE("Physical input channels"));
     1867    dp->AddItem(1, B_TRANSLATE("Virtual output channels"));
    18181868
    1819     dp = group->MakeDiscreteParameter(PARAM_ETC(70), B_MEDIA_RAW_AUDIO, "Resampling algorithm", B_INPUT_MUX);
    1820     dp->AddItem(0, "Drop/repeat samples");
    1821     dp->AddItem(2, "Linear interpolation");
     1869    dp = group->MakeDiscreteParameter(PARAM_ETC(70), B_MEDIA_RAW_AUDIO,
     1870        B_TRANSLATE("Resampling algorithm"), B_INPUT_MUX);
     1871    dp->AddItem(0, B_TRANSLATE("Drop/repeat samples"));
     1872    dp->AddItem(2, B_TRANSLATE("Linear interpolation"));
    18221873
    18231874    // Note: The following code is outcommented on purpose
    18241875    // and is about to be modified at a later point
    18251876    /*
    1826     dp->AddItem(1, "Drop/repeat samples (template based)");
    1827     dp->AddItem(3, "17th order filtering");
     1877    dp->AddItem(1, B_TRANSLATE("Drop/repeat samples (template based)"));
     1878    dp->AddItem(3, B_TRANSLATE("17th order filtering"));
    18281879    */
    1829     group->MakeDiscreteParameter(PARAM_ETC(80), B_MEDIA_RAW_AUDIO, "Refuse output format changes", B_ENABLE);
    1830     group->MakeDiscreteParameter(PARAM_ETC(90), B_MEDIA_RAW_AUDIO, "Refuse input format changes", B_ENABLE);
     1880    group->MakeDiscreteParameter(PARAM_ETC(80), B_MEDIA_RAW_AUDIO,
     1881        B_TRANSLATE("Refuse output format changes"), B_ENABLE);
     1882    group->MakeDiscreteParameter(PARAM_ETC(90), B_MEDIA_RAW_AUDIO,
     1883        B_TRANSLATE("Refuse input format changes"), B_ENABLE);
    18311884
    18321885    fCore->Unlock();
    18331886    SetParameterWeb(web);
  • src/add-ons/media/media-add-ons/mixer/Jamfile

     
    22
    33SetSubDirSupportedPlatformsBeOSCompatible ;
    44
     5AddResources mixer.media_addon : AudioMixer.rdef ;
     6
    57Addon mixer.media_addon :
    68    AudioMixer.cpp
    79    ByteSwap.cpp
     
    1315    MixerSettings.cpp
    1416    MixerUtils.cpp
    1517    Resampler.cpp
    16     : be media $(TARGET_LIBSUPC++)
     18    : be media $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS)
    1719;
    1820
    1921Package haiku-mixer-cvs
    2022    : mixer.media_addon
    2123    : boot home config add-ons media ;
     24
     25DoCatalogs mixer.media_addon
     26    :
     27    x-vnd.Haiku-mixer.media_addon
     28    :
     29    AudioMixer.cpp
     30    ;