Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 65fb6567 authored by Mikhail Naganov's avatar Mikhail Naganov Committed by Android (Google) Code Review
Browse files

Merge "Brush up audio parameters usage"

parents 9a79c8f8 388360c7
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -58,9 +58,23 @@ public:
    static const char * const keyMonoOutput;
    static const char * const keyStreamHwAvSync;

    //  keyStreamConnect / Disconnect: value is an int in audio_devices_t
    static const char * const keyStreamConnect;
    static const char * const keyStreamDisconnect;

    // For querying stream capabilities. All the returned values are lists.
    //   keyStreamSupportedFormats: audio_format_t
    //   keyStreamSupportedChannels: audio_channel_mask_t
    //   keyStreamSupportedSamplingRates: sampling rate values
    static const char * const keyStreamSupportedFormats;
    static const char * const keyStreamSupportedChannels;
    static const char * const keyStreamSupportedSamplingRates;

    static const char * const valueOn;
    static const char * const valueOff;

    static const char * const valueListSeparator;

    String8 toString();

    status_t add(const String8& key, const String8& value);
+8 −1
Original line number Diff line number Diff line
@@ -19,8 +19,8 @@

#include <utils/Log.h>

#include <hardware/audio.h>
#include <media/AudioParameter.h>
#include <system/audio.h>

namespace android {

@@ -36,8 +36,15 @@ const char * const AudioParameter::keyBtNrec = AUDIO_PARAMETER_KEY_BT_NREC;
const char * const AudioParameter::keyHwAvSync = AUDIO_PARAMETER_HW_AV_SYNC;
const char * const AudioParameter::keyMonoOutput = AUDIO_PARAMETER_MONO_OUTPUT;
const char * const AudioParameter::keyStreamHwAvSync = AUDIO_PARAMETER_STREAM_HW_AV_SYNC;
const char * const AudioParameter::keyStreamConnect = AUDIO_PARAMETER_DEVICE_CONNECT;
const char * const AudioParameter::keyStreamDisconnect = AUDIO_PARAMETER_DEVICE_DISCONNECT;
const char * const AudioParameter::keyStreamSupportedFormats = AUDIO_PARAMETER_STREAM_SUP_FORMATS;
const char * const AudioParameter::keyStreamSupportedChannels = AUDIO_PARAMETER_STREAM_SUP_CHANNELS;
const char * const AudioParameter::keyStreamSupportedSamplingRates =
        AUDIO_PARAMETER_STREAM_SUP_SAMPLING_RATES;
const char * const AudioParameter::valueOn = AUDIO_PARAMETER_VALUE_ON;
const char * const AudioParameter::valueOff = AUDIO_PARAMETER_VALUE_OFF;
const char * const AudioParameter::valueListSeparator = AUDIO_PARAMETER_VALUE_LIST_SEPARATOR;

AudioParameter::AudioParameter(const String8& keyValuePairs)
{
+1 −1
Original line number Diff line number Diff line
@@ -41,9 +41,9 @@
#include <media/stagefright/MediaDefs.h>
#include <media/AudioSystem.h>
#include <media/MediaPlayerInterface.h>
#include <hardware/audio.h>
#include <media/stagefright/Utils.h>
#include <media/AudioParameter.h>
#include <system/audio.h>

namespace android {

+17 −13
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@

#include "policy.h"
#include <Volume.h>
#include <media/AudioParameter.h>
#include <system/audio.h>
#include <convert/convert.h>
#include <utils/Log.h>
@@ -89,7 +90,7 @@ struct DefaultTraits

template <class Traits>
static void collectionFromString(const std::string &str, typename Traits::Collection &collection,
                                 const char *del = "|")
                                 const char *del = AudioParameter::valueListSeparator)
{
    char *literal = strdup(str.c_str());
    for (const char *cstr = strtok(literal, del); cstr != NULL; cstr = strtok(NULL, del)) {
@@ -111,11 +112,13 @@ public:

    static void collectionFromString(const std::string &str,
                                     typename Traits::Collection &collection,
                                     const char *del = "|");
                                     const char *del = AudioParameter::valueListSeparator);

    static uint32_t maskFromString(const std::string &str, const char *del = "|");
    static uint32_t maskFromString(
            const std::string &str, const char *del = AudioParameter::valueListSeparator);

    static void maskToString(uint32_t mask, std::string &str, const char *del = "|");
    static void maskToString(
            uint32_t mask, std::string &str, const char *del = AudioParameter::valueListSeparator);

protected:
    struct Table {
@@ -139,8 +142,8 @@ typedef TypeConverter<DeviceCategoryTraits> DeviceCategoryConverter;
typedef TypeConverter<AudioModeTraits> AudioModeConverter;

inline
static SampleRateTraits::Collection samplingRatesFromString(const std::string &samplingRates,
                                                            const char *del = "|")
static SampleRateTraits::Collection samplingRatesFromString(
        const std::string &samplingRates, const char *del = AudioParameter::valueListSeparator)
{
    SampleRateTraits::Collection samplingRateCollection;
    collectionFromString<SampleRateTraits>(samplingRates, samplingRateCollection, del);
@@ -148,7 +151,8 @@ static SampleRateTraits::Collection samplingRatesFromString(const std::string &s
}

inline
static FormatTraits::Collection formatsFromString(const std::string &formats, const char *del = "|")
static FormatTraits::Collection formatsFromString(
        const std::string &formats, const char *del = AudioParameter::valueListSeparator)
{
    FormatTraits::Collection formatCollection;
    FormatConverter::collectionFromString(formats, formatCollection, del);
@@ -178,8 +182,8 @@ static audio_channel_mask_t channelMaskFromString(const std::string &literalChan
}

inline
static ChannelTraits::Collection channelMasksFromString(const std::string &channels,
                                                        const char *del = "|")
static ChannelTraits::Collection channelMasksFromString(
        const std::string &channels, const char *del = AudioParameter::valueListSeparator)
{
    ChannelTraits::Collection channelMaskCollection;
    OutputChannelConverter::collectionFromString(channels, channelMaskCollection, del);
@@ -189,8 +193,8 @@ static ChannelTraits::Collection channelMasksFromString(const std::string &chann
}

inline
static InputChannelTraits::Collection inputChannelMasksFromString(const std::string &inChannels,
                                                                  const char *del = "|")
static InputChannelTraits::Collection inputChannelMasksFromString(
        const std::string &inChannels, const char *del = AudioParameter::valueListSeparator)
{
    InputChannelTraits::Collection inputChannelMaskCollection;
    InputChannelConverter::collectionFromString(inChannels, inputChannelMaskCollection, del);
@@ -199,8 +203,8 @@ static InputChannelTraits::Collection inputChannelMasksFromString(const std::str
}

inline
static OutputChannelTraits::Collection outputChannelMasksFromString(const std::string &outChannels,
                                                                    const char *del = "|")
static OutputChannelTraits::Collection outputChannelMasksFromString(
        const std::string &outChannels, const char *del = AudioParameter::valueListSeparator)
{
    OutputChannelTraits::Collection outputChannelMaskCollection;
    OutputChannelConverter::collectionFromString(outChannels, outputChannelMaskCollection, del);
+3 −2
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include "IOProfile.h"
#include "TypeConverter.h"
#include <system/audio.h>
#include <media/AudioParameter.h>
#include <utils/Log.h>
#include <cutils/misc.h>

@@ -289,7 +290,7 @@ void ConfigParsingUtils::loadDevicesFromTag(const char *tag, DeviceVector &devic
                                            const DeviceVector &declaredDevices)
{
    char *tagLiteral = strndup(tag, strlen(tag));
    char *devTag = strtok(tagLiteral, "|");
    char *devTag = strtok(tagLiteral, AudioParameter::valueListSeparator);
    while (devTag != NULL) {
        if (strlen(devTag) != 0) {
            audio_devices_t type;
@@ -311,7 +312,7 @@ void ConfigParsingUtils::loadDevicesFromTag(const char *tag, DeviceVector &devic
                }
            }
        }
        devTag = strtok(NULL, "|");
        devTag = strtok(NULL, AudioParameter::valueListSeparator);
    }
    free(tagLiteral);
}
Loading