Merge "Update Visualizer implementation after changes in AudioEffect" into rvc-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b4f13f85fd
@@ -33,21 +33,9 @@ namespace android {
|
|||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
Visualizer::Visualizer (const String16& opPackageName,
|
Visualizer::Visualizer (const String16& opPackageName)
|
||||||
int32_t priority,
|
: AudioEffect(opPackageName)
|
||||||
effect_callback_t cbf,
|
|
||||||
void* user,
|
|
||||||
audio_session_t sessionId)
|
|
||||||
: AudioEffect(SL_IID_VISUALIZATION, opPackageName, NULL, priority, cbf, user, sessionId),
|
|
||||||
mCaptureRate(CAPTURE_RATE_DEF),
|
|
||||||
mCaptureSize(CAPTURE_SIZE_DEF),
|
|
||||||
mSampleRate(44100000),
|
|
||||||
mScalingMode(VISUALIZER_SCALING_MODE_NORMALIZED),
|
|
||||||
mMeasurementMode(MEASUREMENT_MODE_NONE),
|
|
||||||
mCaptureCallBack(NULL),
|
|
||||||
mCaptureCbkUser(NULL)
|
|
||||||
{
|
{
|
||||||
initCaptureSize();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Visualizer::~Visualizer()
|
Visualizer::~Visualizer()
|
||||||
@@ -57,6 +45,23 @@ Visualizer::~Visualizer()
|
|||||||
setCaptureCallBack(NULL, NULL, 0, 0);
|
setCaptureCallBack(NULL, NULL, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
status_t Visualizer::set(int32_t priority,
|
||||||
|
effect_callback_t cbf,
|
||||||
|
void* user,
|
||||||
|
audio_session_t sessionId,
|
||||||
|
audio_io_handle_t io,
|
||||||
|
const AudioDeviceTypeAddr& device,
|
||||||
|
bool probe)
|
||||||
|
{
|
||||||
|
status_t status = AudioEffect::set(
|
||||||
|
SL_IID_VISUALIZATION, nullptr, priority, cbf, user, sessionId, io, device, probe);
|
||||||
|
if (status == NO_ERROR || status == ALREADY_EXISTS) {
|
||||||
|
initCaptureSize();
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Visualizer::release()
|
void Visualizer::release()
|
||||||
{
|
{
|
||||||
ALOGV("Visualizer::release()");
|
ALOGV("Visualizer::release()");
|
||||||
|
|||||||
@@ -65,14 +65,22 @@ public:
|
|||||||
/* Constructor.
|
/* Constructor.
|
||||||
* See AudioEffect constructor for details on parameters.
|
* See AudioEffect constructor for details on parameters.
|
||||||
*/
|
*/
|
||||||
Visualizer(const String16& opPackageName,
|
explicit Visualizer(const String16& opPackageName);
|
||||||
int32_t priority = 0,
|
|
||||||
effect_callback_t cbf = NULL,
|
|
||||||
void* user = NULL,
|
|
||||||
audio_session_t sessionId = AUDIO_SESSION_OUTPUT_MIX);
|
|
||||||
|
|
||||||
~Visualizer();
|
~Visualizer();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize an uninitialized Visualizer.
|
||||||
|
* See AudioEffect 'set' function for details on parameters.
|
||||||
|
*/
|
||||||
|
status_t set(int32_t priority = 0,
|
||||||
|
effect_callback_t cbf = NULL,
|
||||||
|
void* user = NULL,
|
||||||
|
audio_session_t sessionId = AUDIO_SESSION_OUTPUT_MIX,
|
||||||
|
audio_io_handle_t io = AUDIO_IO_HANDLE_NONE,
|
||||||
|
const AudioDeviceTypeAddr& device = {},
|
||||||
|
bool probe = false);
|
||||||
|
|
||||||
// Declared 'final' because we call this in ~Visualizer().
|
// Declared 'final' because we call this in ~Visualizer().
|
||||||
status_t setEnabled(bool enabled) final;
|
status_t setEnabled(bool enabled) final;
|
||||||
|
|
||||||
@@ -163,15 +171,15 @@ private:
|
|||||||
uint32_t initCaptureSize();
|
uint32_t initCaptureSize();
|
||||||
|
|
||||||
Mutex mCaptureLock;
|
Mutex mCaptureLock;
|
||||||
uint32_t mCaptureRate;
|
uint32_t mCaptureRate = CAPTURE_RATE_DEF;
|
||||||
uint32_t mCaptureSize;
|
uint32_t mCaptureSize = CAPTURE_SIZE_DEF;
|
||||||
uint32_t mSampleRate;
|
uint32_t mSampleRate = 44100000;
|
||||||
uint32_t mScalingMode;
|
uint32_t mScalingMode = VISUALIZER_SCALING_MODE_NORMALIZED;
|
||||||
uint32_t mMeasurementMode;
|
uint32_t mMeasurementMode = MEASUREMENT_MODE_NONE;
|
||||||
capture_cbk_t mCaptureCallBack;
|
capture_cbk_t mCaptureCallBack = nullptr;
|
||||||
void *mCaptureCbkUser;
|
void *mCaptureCbkUser = nullptr;
|
||||||
sp<CaptureThread> mCaptureThread;
|
sp<CaptureThread> mCaptureThread;
|
||||||
uint32_t mCaptureFlags;
|
uint32_t mCaptureFlags = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -337,22 +337,21 @@ android_media_AudioEffect_native_setup(JNIEnv *env, jobject thiz, jobject weak_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create the native AudioEffect object
|
// create the native AudioEffect object
|
||||||
lpAudioEffect = new AudioEffect(typeStr,
|
lpAudioEffect = new AudioEffect(String16(opPackageNameStr.c_str()));
|
||||||
String16(opPackageNameStr.c_str()),
|
|
||||||
uuidStr,
|
|
||||||
priority,
|
|
||||||
effectCallback,
|
|
||||||
&lpJniStorage->mCallbackData,
|
|
||||||
(audio_session_t) sessionId,
|
|
||||||
AUDIO_IO_HANDLE_NONE,
|
|
||||||
device,
|
|
||||||
probe);
|
|
||||||
if (lpAudioEffect == 0) {
|
if (lpAudioEffect == 0) {
|
||||||
ALOGE("Error creating AudioEffect");
|
ALOGE("Error creating AudioEffect");
|
||||||
goto setup_failure;
|
goto setup_failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lpAudioEffect->set(typeStr,
|
||||||
|
uuidStr,
|
||||||
|
priority,
|
||||||
|
effectCallback,
|
||||||
|
&lpJniStorage->mCallbackData,
|
||||||
|
(audio_session_t) sessionId,
|
||||||
|
AUDIO_IO_HANDLE_NONE,
|
||||||
|
device,
|
||||||
|
probe);
|
||||||
lStatus = AudioEffectJni::translateNativeErrorToJava(lpAudioEffect->initCheck());
|
lStatus = AudioEffectJni::translateNativeErrorToJava(lpAudioEffect->initCheck());
|
||||||
if (lStatus != AUDIOEFFECT_SUCCESS && lStatus != AUDIOEFFECT_ERROR_ALREADY_EXISTS) {
|
if (lStatus != AUDIOEFFECT_SUCCESS && lStatus != AUDIOEFFECT_ERROR_ALREADY_EXISTS) {
|
||||||
ALOGE("AudioEffect initCheck failed %d", lStatus);
|
ALOGE("AudioEffect initCheck failed %d", lStatus);
|
||||||
|
|||||||
@@ -382,15 +382,15 @@ android_media_visualizer_native_setup(JNIEnv *env, jobject thiz, jobject weak_th
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create the native Visualizer object
|
// create the native Visualizer object
|
||||||
lpVisualizer = new Visualizer(String16(opPackageNameStr.c_str()),
|
lpVisualizer = new Visualizer(String16(opPackageNameStr.c_str()));
|
||||||
0,
|
|
||||||
android_media_visualizer_effect_callback,
|
|
||||||
lpJniStorage,
|
|
||||||
(audio_session_t) sessionId);
|
|
||||||
if (lpVisualizer == 0) {
|
if (lpVisualizer == 0) {
|
||||||
ALOGE("Error creating Visualizer");
|
ALOGE("Error creating Visualizer");
|
||||||
goto setup_failure;
|
goto setup_failure;
|
||||||
}
|
}
|
||||||
|
lpVisualizer->set(0,
|
||||||
|
android_media_visualizer_effect_callback,
|
||||||
|
lpJniStorage,
|
||||||
|
(audio_session_t) sessionId);
|
||||||
|
|
||||||
lStatus = translateError(lpVisualizer->initCheck());
|
lStatus = translateError(lpVisualizer->initCheck());
|
||||||
if (lStatus != VISUALIZER_SUCCESS && lStatus != VISUALIZER_ERROR_ALREADY_EXISTS) {
|
if (lStatus != VISUALIZER_SUCCESS && lStatus != VISUALIZER_ERROR_ALREADY_EXISTS) {
|
||||||
|
|||||||
Reference in New Issue
Block a user