Skip to content

Commit b4f13f8

Browse files
TreeHugger RobotAndroid (Google) Code Review
authored andcommitted
Merge "Update Visualizer implementation after changes in AudioEffect" into rvc-qpr-dev
2 parents 43f1054 + ed15eee commit b4f13f8

4 files changed

Lines changed: 55 additions & 43 deletions

File tree

media/jni/audioeffect/Visualizer.cpp

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,9 @@ namespace android {
3333

3434
// ---------------------------------------------------------------------------
3535

36-
Visualizer::Visualizer (const String16& opPackageName,
37-
int32_t priority,
38-
effect_callback_t cbf,
39-
void* user,
40-
audio_session_t sessionId)
41-
: AudioEffect(SL_IID_VISUALIZATION, opPackageName, NULL, priority, cbf, user, sessionId),
42-
mCaptureRate(CAPTURE_RATE_DEF),
43-
mCaptureSize(CAPTURE_SIZE_DEF),
44-
mSampleRate(44100000),
45-
mScalingMode(VISUALIZER_SCALING_MODE_NORMALIZED),
46-
mMeasurementMode(MEASUREMENT_MODE_NONE),
47-
mCaptureCallBack(NULL),
48-
mCaptureCbkUser(NULL)
36+
Visualizer::Visualizer (const String16& opPackageName)
37+
: AudioEffect(opPackageName)
4938
{
50-
initCaptureSize();
5139
}
5240

5341
Visualizer::~Visualizer()
@@ -57,6 +45,23 @@ Visualizer::~Visualizer()
5745
setCaptureCallBack(NULL, NULL, 0, 0);
5846
}
5947

48+
status_t Visualizer::set(int32_t priority,
49+
effect_callback_t cbf,
50+
void* user,
51+
audio_session_t sessionId,
52+
audio_io_handle_t io,
53+
const AudioDeviceTypeAddr& device,
54+
bool probe)
55+
{
56+
status_t status = AudioEffect::set(
57+
SL_IID_VISUALIZATION, nullptr, priority, cbf, user, sessionId, io, device, probe);
58+
if (status == NO_ERROR || status == ALREADY_EXISTS) {
59+
initCaptureSize();
60+
}
61+
return status;
62+
}
63+
64+
6065
void Visualizer::release()
6166
{
6267
ALOGV("Visualizer::release()");

media/jni/audioeffect/Visualizer.h

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,22 @@ class Visualizer: public AudioEffect {
6565
/* Constructor.
6666
* See AudioEffect constructor for details on parameters.
6767
*/
68-
Visualizer(const String16& opPackageName,
69-
int32_t priority = 0,
70-
effect_callback_t cbf = NULL,
71-
void* user = NULL,
72-
audio_session_t sessionId = AUDIO_SESSION_OUTPUT_MIX);
68+
explicit Visualizer(const String16& opPackageName);
7369

7470
~Visualizer();
7571

72+
/**
73+
* Initialize an uninitialized Visualizer.
74+
* See AudioEffect 'set' function for details on parameters.
75+
*/
76+
status_t set(int32_t priority = 0,
77+
effect_callback_t cbf = NULL,
78+
void* user = NULL,
79+
audio_session_t sessionId = AUDIO_SESSION_OUTPUT_MIX,
80+
audio_io_handle_t io = AUDIO_IO_HANDLE_NONE,
81+
const AudioDeviceTypeAddr& device = {},
82+
bool probe = false);
83+
7684
// Declared 'final' because we call this in ~Visualizer().
7785
status_t setEnabled(bool enabled) final;
7886

@@ -163,15 +171,15 @@ class Visualizer: public AudioEffect {
163171
uint32_t initCaptureSize();
164172

165173
Mutex mCaptureLock;
166-
uint32_t mCaptureRate;
167-
uint32_t mCaptureSize;
168-
uint32_t mSampleRate;
169-
uint32_t mScalingMode;
170-
uint32_t mMeasurementMode;
171-
capture_cbk_t mCaptureCallBack;
172-
void *mCaptureCbkUser;
174+
uint32_t mCaptureRate = CAPTURE_RATE_DEF;
175+
uint32_t mCaptureSize = CAPTURE_SIZE_DEF;
176+
uint32_t mSampleRate = 44100000;
177+
uint32_t mScalingMode = VISUALIZER_SCALING_MODE_NORMALIZED;
178+
uint32_t mMeasurementMode = MEASUREMENT_MODE_NONE;
179+
capture_cbk_t mCaptureCallBack = nullptr;
180+
void *mCaptureCbkUser = nullptr;
173181
sp<CaptureThread> mCaptureThread;
174-
uint32_t mCaptureFlags;
182+
uint32_t mCaptureFlags = 0;
175183
};
176184

177185

media/jni/audioeffect/android_media_AudioEffect.cpp

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -337,22 +337,21 @@ android_media_AudioEffect_native_setup(JNIEnv *env, jobject thiz, jobject weak_t
337337
}
338338

339339
// create the native AudioEffect object
340-
lpAudioEffect = new AudioEffect(typeStr,
341-
String16(opPackageNameStr.c_str()),
342-
uuidStr,
343-
priority,
344-
effectCallback,
345-
&lpJniStorage->mCallbackData,
346-
(audio_session_t) sessionId,
347-
AUDIO_IO_HANDLE_NONE,
348-
device,
349-
probe);
340+
lpAudioEffect = new AudioEffect(String16(opPackageNameStr.c_str()));
350341
if (lpAudioEffect == 0) {
351342
ALOGE("Error creating AudioEffect");
352343
goto setup_failure;
353344
}
354345

355-
346+
lpAudioEffect->set(typeStr,
347+
uuidStr,
348+
priority,
349+
effectCallback,
350+
&lpJniStorage->mCallbackData,
351+
(audio_session_t) sessionId,
352+
AUDIO_IO_HANDLE_NONE,
353+
device,
354+
probe);
356355
lStatus = AudioEffectJni::translateNativeErrorToJava(lpAudioEffect->initCheck());
357356
if (lStatus != AUDIOEFFECT_SUCCESS && lStatus != AUDIOEFFECT_ERROR_ALREADY_EXISTS) {
358357
ALOGE("AudioEffect initCheck failed %d", lStatus);

media/jni/audioeffect/android_media_Visualizer.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -382,15 +382,15 @@ android_media_visualizer_native_setup(JNIEnv *env, jobject thiz, jobject weak_th
382382
}
383383

384384
// create the native Visualizer object
385-
lpVisualizer = new Visualizer(String16(opPackageNameStr.c_str()),
386-
0,
387-
android_media_visualizer_effect_callback,
388-
lpJniStorage,
389-
(audio_session_t) sessionId);
385+
lpVisualizer = new Visualizer(String16(opPackageNameStr.c_str()));
390386
if (lpVisualizer == 0) {
391387
ALOGE("Error creating Visualizer");
392388
goto setup_failure;
393389
}
390+
lpVisualizer->set(0,
391+
android_media_visualizer_effect_callback,
392+
lpJniStorage,
393+
(audio_session_t) sessionId);
394394

395395
lStatus = translateError(lpVisualizer->initCheck());
396396
if (lStatus != VISUALIZER_SUCCESS && lStatus != VISUALIZER_ERROR_ALREADY_EXISTS) {

0 commit comments

Comments
 (0)