void AudioChannelAgent::NotifyAudioChannelStateChanged() { nsCOMPtr<nsIAudioChannelAgentCallback> callback = GetCallback(); if (callback) { AudioChannelService *service = AudioChannelService::GetAudioChannelService(); callback->CanPlayChanged(service->GetState(this, !mVisible)); } }
/* void setVisibilityState (in boolean visible); */ NS_IMETHODIMP AudioChannelAgent::SetVisibilityState(bool visible) { bool oldVisibility = mVisible; nsCOMPtr<nsIAudioChannelAgentCallback> callback = GetCallback(); mVisible = visible; if (mIsRegToService && oldVisibility != mVisible && callback) { AudioChannelService *service = AudioChannelService::GetAudioChannelService(); callback->CanPlayChanged(service->GetState(this, !mVisible)); } return NS_OK; }
/* boolean startPlaying (); */ NS_IMETHODIMP AudioChannelAgent::StartPlaying(int32_t *_retval) { AudioChannelService *service = AudioChannelService::GetAudioChannelService(); if (mAudioChannelType == AUDIO_AGENT_CHANNEL_ERROR || service == nullptr || mIsRegToService) { return NS_ERROR_FAILURE; } service->RegisterAudioChannelAgent(this, static_cast<AudioChannel>(mAudioChannelType), mWithVideo); *_retval = service->GetState(this, !mVisible); mIsRegToService = true; return NS_OK; }