EAudioSessionType __mAudioSession;
MMSessionType __mMultimediaSession;
- mm_sound_focus_type_e __mFocusType; /* For audio focus */
- mm_sound_focus_state_e __mState; /* For audio focus */
- char* __mReasonForChange; /* For audio focus */
- char* __mAdditionalInfo; /* For audio focus */
-
CAudioInfo __mAudioInfo; /* Referenced from CAudioIO */
IAudioSessionEventListener* __mpEventListener;
bool __mIsInit;
+ int __mSubscribeId;
bool __mUseFocus;
- int __mSubscribeId;
+ mm_sound_focus_type_e __mFocusType; /* For audio focus */
+ mm_sound_focus_state_e __mState; /* For audio focus */
+ char* __mReasonForChange; /* For audio focus */
+ char* __mAdditionalInfo; /* For audio focus */
};
*/
CAudioInput::CAudioInput(CAudioInfo& info) :
CAudioIO(info),
- __mIsUsedSyncRead(true) {
+ __mIsUsedSyncRead(true),
+ __mIsInit(false) {
}
CAudioInput::CAudioInput(
CAudioInfo::EChannel channel,
CAudioInfo::ESampleType type,
CAudioInfo::EAudioType audioType) :
- __mIsUsedSyncRead(true) {
+ __mIsUsedSyncRead(true),
+ __mIsInit(false) {
mAudioInfo = CAudioInfo(sampleRate, channel, type, audioType, -1);
}
*/
CAudioOutput::CAudioOutput(CAudioInfo& info) :
CAudioIO(info),
- __mIsUsedSyncWrite(false) {
+ __mIsUsedSyncWrite(false),
+ __mIsInit(false) {
}
CAudioOutput::CAudioOutput(
CAudioInfo::EChannel channel,
CAudioInfo::ESampleType sampleType,
CAudioInfo::EAudioType audioType) :
- __mIsUsedSyncWrite(false) {
+ __mIsUsedSyncWrite(false),
+ __mIsInit(false) {
mAudioInfo = CAudioInfo(sampleRate, channel, sampleType, audioType, -1);
}
__mMultimediaSession(MM_SESSION_TYPE_MEDIA),
__mpEventListener(listener),
__mIsInit(false),
+ __mSubscribeId(-1),
__mUseFocus(false),
- __mSubscribeId(-1) {
+ __mFocusType(FOCUS_NONE),
+ __mState(FOCUS_IS_RELEASED),
+ __mReasonForChange(NULL),
+ __mAdditionalInfo(NULL) {
__mAudioInfo = audioInfo;
}
switch (pa_context_get_state(c)) {
case PA_CONTEXT_READY:
AUDIO_IO_LOGD("The context is ready!");
+ pa_threaded_mainloop_signal(pClient->__mpMainloop, 0);
+ break;
+
case PA_CONTEXT_FAILED:
case PA_CONTEXT_TERMINATED:
pa_threaded_mainloop_signal(pClient->__mpMainloop, 0);
case PA_STREAM_READY:
AUDIO_IO_LOGD("The stream is ready!");
pClient->__mpListener->onStateChanged(CAudioInfo::EAudioIOState::AUDIO_IO_STATE_RUNNING);
+ pa_threaded_mainloop_signal(pClient->__mpMainloop, 0);
+ break;
+
case PA_STREAM_FAILED:
case PA_STREAM_TERMINATED:
pa_threaded_mainloop_signal(pClient->__mpMainloop, 0);
break;
case PA_STREAM_UNCONNECTED:
- break;
case PA_STREAM_CREATING:
break;
}
checkRunningState();
- if (data == NULL || length < 0) {
+ if (data == NULL) {
THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_ARGUMENT, "The parameter is invalid");
}