Bug 1089526 - Change speaker state. r=baku

This commit is contained in:
Alastor Wu 2015-02-16 10:50:56 +08:00
Родитель 83b72f4ab3
Коммит bb8b9b94f4
3 изменённых файлов: 12 добавлений и 5 удалений

Просмотреть файл

@ -360,6 +360,13 @@ AudioChannelService::GetState(AudioChannelAgent* aAgent, bool aElementHidden)
data->mState = GetStateInternal(data->mChannel, CONTENT_PROCESS_ID_MAIN,
aElementHidden, oldElementHidden);
#ifdef MOZ_WIDGET_GONK
bool active = AnyAudioChannelIsActive();
for (uint32_t i = 0; i < mSpeakerManager.Length(); i++) {
mSpeakerManager[i]->SetAudioChannelActive(active);
}
#endif
return data->mState;
}

Просмотреть файл

@ -211,12 +211,11 @@ SpeakerManager::HandleEvent(nsIDOMEvent* aEvent)
void
SpeakerManager::SetAudioChannelActive(bool isActive)
{
if (!isActive && !mVisible) {
if (mForcespeaker) {
SpeakerManagerService *service =
SpeakerManagerService::GetOrCreateSpeakerManagerService();
MOZ_ASSERT(service);
service->ForceSpeaker(false, mVisible);
service->ForceSpeaker(isActive, mVisible);
}
}

Просмотреть файл

@ -146,8 +146,9 @@ SpeakerManagerService::SetAudioChannelActive(bool aIsActive)
}
NS_IMETHODIMP
SpeakerManagerService::Observe(nsISupports* aSubject, const char*
aTopic, const char16_t* aData)
SpeakerManagerService::Observe(nsISupports* aSubject,
const char* aTopic,
const char16_t* aData)
{
if (!strcmp(aTopic, "ipc:content-shutdown")) {
nsCOMPtr<nsIPropertyBag2> props = do_QueryInterface(aSubject);