Merge "aaudio examples: add -u -i and -y for attributes"

gugelfrei
TreeHugger Robot 7 years ago committed by Android (Google) Code Review
commit bf2fbb73c7

@ -160,16 +160,9 @@ static void MyErrorCallbackProc(
static void usage() {
printf("Usage: aaudio_loopback [OPTION]...\n\n");
printf(" -c{channels} number of output channels\n");
AAudioArgsParser::usage();
printf(" -C{channels} number of input channels\n");
printf(" -g{gain} recirculating loopback gain\n");
printf(" -m{0|1|2|3} set MMAP policy\n");
printf(" 0 = _UNSPECIFIED\n");
printf(" 1 = _NEVER\n");
printf(" 2 = _AUTO, also if -m is used with no number\n");
printf(" 3 = _ALWAYS\n");
printf(" -n{numBursts} buffer size, for example 2 for double buffered\n");
printf(" -p{outPerf} set output AAUDIO_PERFORMANCE_MODE*\n");
printf(" -P{inPerf} set input AAUDIO_PERFORMANCE_MODE*\n");
printf(" n for _NONE\n");
printf(" l for _LATENCY\n");
@ -178,8 +171,7 @@ static void usage() {
printf(" m for sine magnitude\n");
printf(" e for echo latency (default)\n");
printf(" f for file latency, analyzes %s\n\n", FILENAME_ECHOS);
printf(" -x use EXCLUSIVE mode for output\n");
printf(" -X use EXCLUSIVE mode for input\n");
printf(" -X use EXCLUSIVE mode for input\n");
printf("Example: aaudio_loopback -n2 -pl -Pl -x\n");
}

@ -88,6 +88,30 @@ public:
mPerformanceMode = performanceMode;
}
aaudio_usage_t getUsage() const {
return mUsage;
}
void setUsage(aaudio_usage_t usage) {
mUsage = usage;
}
aaudio_content_type_t getContentType() const {
return mContentType;
}
void setContentType(aaudio_content_type_t contentType) {
mContentType = contentType;
}
aaudio_input_preset_t getInputPreset() const {
return mInputPreset;
}
void setInputPreset(aaudio_input_preset_t inputPreset) {
mInputPreset = inputPreset;
}
int32_t getDeviceId() const {
return mDeviceId;
}
@ -116,6 +140,9 @@ public:
AAudioStreamBuilder_setDeviceId(builder, mDeviceId);
AAudioStreamBuilder_setSharingMode(builder, mSharingMode);
AAudioStreamBuilder_setPerformanceMode(builder, mPerformanceMode);
AAudioStreamBuilder_setUsage(builder, mUsage);
AAudioStreamBuilder_setContentType(builder, mContentType);
AAudioStreamBuilder_setInputPreset(builder, mInputPreset);
}
private:
@ -128,6 +155,10 @@ private:
aaudio_sharing_mode_t mSharingMode = AAUDIO_SHARING_MODE_SHARED;
aaudio_performance_mode_t mPerformanceMode = AAUDIO_PERFORMANCE_MODE_NONE;
aaudio_usage_t mUsage = AAUDIO_UNSPECIFIED;
aaudio_content_type_t mContentType = AAUDIO_UNSPECIFIED;
aaudio_input_preset_t mInputPreset = AAUDIO_UNSPECIFIED;
int32_t mNumberOfBursts = AAUDIO_UNSPECIFIED;
};
@ -158,8 +189,8 @@ public:
case 'd':
setDeviceId(atoi(&arg[2]));
break;
case 's':
mDurationSeconds = atoi(&arg[2]);
case 'i':
setInputPreset(atoi(&arg[2]));
break;
case 'm': {
aaudio_policy_t policy = AAUDIO_POLICY_AUTO;
@ -177,9 +208,18 @@ public:
case 'r':
setSampleRate(atoi(&arg[2]));
break;
case 's':
mDurationSeconds = atoi(&arg[2]);
break;
case 'u':
setUsage(atoi(&arg[2]));
break;
case 'x':
setSharingMode(AAUDIO_SHARING_MODE_EXCLUSIVE);
break;
case 'y':
setContentType(atoi(&arg[2]));
break;
default:
unrecognized = true;
break;
@ -207,24 +247,28 @@ public:
}
static void usage() {
printf("-c{channels} -d{duration} -m -n{burstsPerBuffer} -p{perfMode} -r{rate} -x\n");
printf("-c{channels} -d{deviceId} -m{mmapPolicy} -n{burstsPerBuffer} -p{perfMode}");
printf(" -r{rate} -s{seconds} -x\n");
printf(" Default values are UNSPECIFIED unless otherwise stated.\n");
printf(" -b{bufferCapacity} frames\n");
printf(" -c{channels} for example 2 for stereo\n");
printf(" -d{deviceId} default is %d\n", AAUDIO_UNSPECIFIED);
printf(" -s{duration} in seconds, default is %d\n", DEFAULT_DURATION_SECONDS);
printf(" -i{inputPreset} eg. 5 for AAUDIO_INPUT_PRESET_CAMCORDER\n");
printf(" -m{0|1|2|3} set MMAP policy\n");
printf(" 0 = _UNSPECIFIED, default\n");
printf(" 1 = _NEVER\n");
printf(" 2 = _AUTO, also if -m is used with no number\n");
printf(" 3 = _ALWAYS\n");
printf(" 0 = _UNSPECIFIED, use aaudio.mmap_policy system property, default\n");
printf(" 1 = _NEVER, never use MMAP\n");
printf(" 2 = _AUTO, use MMAP if available, default for -m with no number\n");
printf(" 3 = _ALWAYS, use MMAP or fail\n");
printf(" -n{numberOfBursts} for setBufferSize\n");
printf(" -p{performanceMode} set output AAUDIO_PERFORMANCE_MODE*, default NONE\n");
printf(" n for _NONE\n");
printf(" l for _LATENCY\n");
printf(" p for _POWER_SAVING;\n");
printf(" -r{sampleRate} for example 44100\n");
printf(" -s{duration} in seconds, default is %d\n", DEFAULT_DURATION_SECONDS);
printf(" -u{usage} eg. 14 for AAUDIO_USAGE_GAME\n");
printf(" -x to use EXCLUSIVE mode\n");
printf(" -y{contentType} eg. 1 for AAUDIO_CONTENT_TYPE_SPEECH\n");
}
static aaudio_performance_mode_t parsePerformanceMode(char c) {
@ -287,6 +331,17 @@ public:
printf(" PerformanceMode: requested = %d, actual = %d\n",
getPerformanceMode(), AAudioStream_getPerformanceMode(stream));
printf(" Usage: requested = %d, actual = %d\n",
getUsage(), AAudioStream_getUsage(stream));
printf(" ContentType: requested = %d, actual = %d\n",
getContentType(), AAudioStream_getContentType(stream));
if (AAudioStream_getDirection(stream) == AAUDIO_DIRECTION_INPUT) {
printf(" InputPreset: requested = %d, actual = %d\n",
getInputPreset(), AAudioStream_getInputPreset(stream));
}
printf(" Is MMAP used? %s\n", AAudioStream_isMMapUsed(stream)
? "yes" : "no");

@ -204,7 +204,7 @@ static void usage() {
AAudioArgsParser::usage();
printf(" -l{count} loopCount start/stop, every other one is silent\n");
printf(" -t{msec} play a high pitched tone at the beginning\n");
printf(" -u force periodic Underruns by sleeping in callback\n");
printf(" -f force periodic underruns by sleeping in callback\n");
}
int main(int argc, const char **argv)
@ -234,7 +234,7 @@ int main(int argc, const char **argv)
case 't':
prefixToneMsec = atoi(&arg[2]);
break;
case 'u':
case 'f':
forceUnderruns = true;
break;
default:

Loading…
Cancel
Save