예제 #1
0
void AudioChannelAgent::NotifyAudioChannelStateChanged()
{
    if (mCallback != nullptr) {
        AudioChannelService *service = AudioChannelService::GetAudioChannelService();
        mCallback->CanPlayChanged(!service->GetMuted(this, !mVisible));
    }
}
예제 #2
0
/* void setVisibilityState (in boolean visible); */
NS_IMETHODIMP AudioChannelAgent::SetVisibilityState(bool visible)
{
    bool oldVisibility = mVisible;

    mVisible = visible;
    if (mIsRegToService && oldVisibility != mVisible && mCallback != nullptr) {
        AudioChannelService *service = AudioChannelService::GetAudioChannelService();
        mCallback->CanPlayChanged(!service->GetMuted(this, !mVisible));
    }
    return NS_OK;
}
예제 #3
0
/* boolean startPlaying (); */
NS_IMETHODIMP AudioChannelAgent::StartPlaying(bool *_retval)
{
    AudioChannelService *service = AudioChannelService::GetAudioChannelService();
    if (mAudioChannelType == AUDIO_AGENT_CHANNEL_ERROR ||
            service == nullptr) {
        return NS_ERROR_FAILURE;
    }

    service->RegisterAudioChannelAgent(this,
                                       static_cast<AudioChannelType>(mAudioChannelType));
    *_retval = !service->GetMuted(this, !mVisible);
    mIsRegToService = true;
    return NS_OK;
}