DirectShowAudioEndpointControl::DirectShowAudioEndpointControl( DirectShowPlayerService *service, QObject *parent) : QAudioEndpointSelector(parent) , m_service(service) , m_bindContext(0) , m_deviceEnumerator(0) { if (CreateBindCtx(0, &m_bindContext) == S_OK) { m_deviceEnumerator = com_new<ICreateDevEnum>(CLSID_SystemDeviceEnum, IID_ICreateDevEnum); updateEndpoints(); setActiveEndpoint(m_defaultEndpoint); } }
void S60VideoPlayerSession::MvpuoPrepareComplete(TInt aError) { DP0("S60VideoPlayerSession::MvpuoPrepareComplete +++"); DP1("S60VideoPlayerSession::MvpuoPrepareComplete - aError:", aError); if (KErrNone == aError && m_stream) { emit accessPointChanged(m_accessPointId); } if (KErrCouldNotConnect == aError && !(m_networkAccessControl->isLastAccessPoint())) { load(m_UrlPath); return; } TInt error = aError; if (KErrNone == error || KErrMMPartialPlayback == error) { TSize originalSize; TRAP(error, m_player->VideoFrameSizeL(originalSize)); if (KErrNone == error) { m_nativeSize = QSize(originalSize.iWidth, originalSize.iHeight); emit nativeSizeChanged(m_nativeSize); m_pendingChanges |= ScaleFactors; #ifdef HAS_AUDIOROUTING_IN_VIDEOPLAYER Q_ASSERT(!m_audioOutput); TRAP(error, m_audioOutput = CAudioOutput::NewL(*m_player)); if (KErrNone == error) { TRAP(error, m_audioOutput->RegisterObserverL(*this)); if (KErrNone == error) setActiveEndpoint(m_audioEndpoint); } #endif } if (KErrNone == error) { applyPendingChanges(true); // force apply even though state is not Loaded if (KErrNone == this->error()) // applyPendingChanges() can call setError() loaded(); } } else { setError(error); } DP0("S60VideoPlayerSession::MvpuoPrepareComplete ---"); }