HRESULT CGraphManager::RunCaptureGraphInternal() { HRESULT hr = S_OK; CComPtr<IGraphBuilder> pGraphBuilder; CComPtr<IMediaControl> pMediaControl; // Let's make sure that the graph has been initialized if(( m_pCaptureGraphBuilder == NULL ) || ( m_fGraphBuilt == FALSE )) { ERR( E_FAIL ); } // Retrieve the filtergraph off the capture graph builder CHK( m_pCaptureGraphBuilder->GetFiltergraph( &pGraphBuilder )); // Get the media control interface, and run the graph CHK( pGraphBuilder->QueryInterface( &pMediaControl )); CHK( pMediaControl->Run()); CHK( NotifyMessage( MESSAGE_INFO, L"The Graph is running" )); Cleanup: if( FAILED( hr )) { NotifyMessage( MESSAGE_ERROR, L"Runing the capture graph failed" ); } return hr; }
void CMyTcpServer::incomingConnection( int socketDescriptor ) { // client endpoint / connectToHost CPeerSocket* pSocket = new CPeerSocket( this ); pSocket->setSocketDescriptor( socketDescriptor ); //addPendingConnection( pSocket ); connect( pSocket, SIGNAL( disconnected( ) ), this, SLOT( HandleDisconnect( ) ) ); if ( GetMgmtTCPFlag( ) ) { connect( pSocket, SIGNAL( readyRead( ) ), this, SLOT( GetMgmtStream( ) ) ); } else { connect( pSocket, SIGNAL( readyRead( ) ), this, SLOT( GetStream( ) ) ); } connect( pSocket, SIGNAL( error( QAbstractSocket::SocketError ) ), this, SLOT( TcpError( QAbstractSocket::SocketError ) ) ); QString strKey; QString strMsg; GetKeyMsg( pSocket, strKey, strMsg, true ); clientHash.insert( strKey, pSocket ); emit NotifyMessage( strMsg ); }
HRESULT CGraphManager::CaptureStillImageInternal() { HRESULT hr = S_OK; CComPtr<IFileSinkFilter> pFileSink; CComPtr<IUnknown> pUnkCaptureFilter; CComPtr<IPin> pStillPin; CComPtr<IAMVideoControl> pVideoControl; if(( m_pCaptureGraphBuilder == NULL ) || ( m_fGraphBuilt == FALSE )) { ERR( E_FAIL ); } CHK( m_pImageSinkFilter.QueryInterface( &pFileSink )); CHK( pFileSink->SetFileName( m_StillImageLocation, NULL )); CHK( m_pVideoCaptureFilter.QueryInterface( &pUnkCaptureFilter )); CHK( m_pCaptureGraphBuilder->FindPin( pUnkCaptureFilter, PINDIR_OUTPUT, &PIN_CATEGORY_STILL, &MEDIATYPE_Video, FALSE, 0, &pStillPin )); CHK( m_pVideoCaptureFilter.QueryInterface( &pVideoControl )); CHK( pVideoControl->SetMode( pStillPin, VideoControlFlag_Trigger )); Cleanup: if( FAILED( hr )) { NotifyMessage( MESSAGE_ERROR, L"Capturing a still image failed" ); } return hr; }
HRESULT CGraphManager::ProcessDShowEvent() { HRESULT hr = S_OK; long lEventCode, lParam1, lParam2; CComPtr<IMediaEvent> pMediaEvent; CComPtr<IGraphBuilder> pFilterGraph; CComPtr<IMediaControl> pMediaControl; if( m_pCaptureGraphBuilder == NULL ) { ERR( E_FAIL ); } CHK( m_pCaptureGraphBuilder->GetFiltergraph( &pFilterGraph )); CHK( pFilterGraph->QueryInterface( &pMediaEvent )); CHK( pMediaEvent->GetEvent( &lEventCode, &lParam1, &lParam2, 0 )); if( lEventCode == EC_CAP_FILE_COMPLETED ) { NotifyMessage( MESSAGE_FILECAPTURED, L"File captured ..." ); } CHK( pMediaEvent->FreeEventParams( lEventCode, lParam1, lParam2 )); Cleanup: return S_OK; }
void CMyTcpServer::TcpError( QAbstractSocket::SocketError socketError ) { QString strMsg; QTcpSocket* pTcpServer = qobject_cast< QTcpSocket* > ( sender( ) ); CNetCommFunction::GetErrorMsg( strMsg, socketError, pTcpServer ); strMsg = "Tcp client peer socket :\r\n" + strMsg; emit NotifyMessage( strMsg ); }
void CTcpClient::TcpError( QAbstractSocket::SocketError socketError ) { QString strMsg; CNetCommFunction::GetErrorMsg( strMsg, socketError, this ); strMsg = "Tcp socket :\r\n" + strMsg; emit NotifyMessage( strMsg ); HandleDisconnect( ); }
void QUdpClient::HandleError( QAbstractSocket::SocketError socketError ) { QString* pstrMsg = new QString( ); QNetCommFunction::GetErrorMsg( *pstrMsg, socketError, this ); *pstrMsg = LogText( *pstrMsg ); OutputMsg( "Sender:" + sender( )->objectName( ) + QString( "emit NotifyMessage( %1, QManipulateIniFile::LogNetwork )" ).arg( *pstrMsg ) ); emit NotifyMessage( pstrMsg, QManipulateIniFile::LogNetwork ); }
void CMyTcpServer::HandleDisconnect( ) // Client / reconnect { CPeerSocket* pSocket = qobject_cast< CPeerSocket* >( sender( ) ); QString strKey; QString strMsg; GetKeyMsg( pSocket, strKey, strMsg, false ); #ifndef QT_NO_DEBUG qDebug( ) << "HandleDisconnect( ) ,Peer host " << pSocket->peerAddress( ).toString( ) << ":" << QString::number( pSocket->peerPort( ) ) << endl; #endif clientHash.remove( strKey ); pSocket->close( ); pSocket->deleteLater( ); // Leave event loop to delete pParserThread->PostReleaseMessage( ( quint32 ) pSocket ); emit NotifyMessage( strMsg ); }
bool operator()(const Args&... args) { return operator()( NotifyMessage( args... ) ); }
void QAnalogCameraThread::SendNotifyMessage( QString& strMsg, bool bSuccess ) { emit NotifyMessage( strMsg, bSuccess ); }
HRESULT CGraphManager::CreateCaptureGraphInternal() { HRESULT hr = S_OK; CComVariant varCamName; CPropertyBag PropBag; OAEVENT oaEvent; WCHAR wzDeviceName[ MAX_PATH + 1 ]; CComPtr<IMediaEvent> pMediaEvent; CComPtr<IGraphBuilder> pFilterGraph; CComPtr<IPersistPropertyBag> pPropertyBag; CComPtr<IDMOWrapperFilter> pWrapperFilter; CComPtr<IBaseFilter> pImageSinkFilter; // // Create the capture graph builder and register the filtergraph manager. // CHK( m_pCaptureGraphBuilder.CoCreateInstance( CLSID_CaptureGraphBuilder )); CHK( pFilterGraph.CoCreateInstance( CLSID_FilterGraph )); CHK( m_pCaptureGraphBuilder->SetFiltergraph( pFilterGraph )); // // Create and initialize the video capture filter // CHK( m_pVideoCaptureFilter.CoCreateInstance( CLSID_VideoCapture )); CHK( m_pVideoCaptureFilter.QueryInterface( &pPropertyBag )); // We are loading the driver CAM1 in the video capture filter. CHK( GetFirstCameraDriver( wzDeviceName )); varCamName = wzDeviceName; if( varCamName.vt != VT_BSTR ) { ERR( E_OUTOFMEMORY ); } CHK( PropBag.Write( L"VCapName", &varCamName )); CHK( pPropertyBag->Load( &PropBag, NULL )); // Everything succeeded, the video capture filter is added to the filtergraph CHK( pFilterGraph->AddFilter( m_pVideoCaptureFilter, L"Video Capture Filter Source" )); // // Create the still image filter, and connect it to the video capture filter // CHK( pImageSinkFilter.CoCreateInstance( CLSID_IMGSinkFilter )); CHK( pFilterGraph->AddFilter( pImageSinkFilter, L"Still image filter" )); CHK( m_pCaptureGraphBuilder->RenderStream( &PIN_CATEGORY_STILL, &MEDIATYPE_Video, m_pVideoCaptureFilter, NULL, pImageSinkFilter )); CHK( pImageSinkFilter.QueryInterface( &m_pImageSinkFilter )); // // Prevent the data from flowing into the capture stream // // CHK( m_pCaptureGraphBuilder->ControlStream( &PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, m_pVideoCaptureFilter, 0, 0 ,0,0 )); // // Let's get the handle for DShow events. The main loop will listen to both notifications from // the UI thread and for DShow notifications // CHK( pFilterGraph->QueryInterface( IID_IMediaEvent, (void**) &pMediaEvent )); CHK( pMediaEvent->GetEventHandle( &oaEvent )); m_handle[1] = (HANDLE) oaEvent; m_fGraphBuilt = TRUE; NotifyMessage( MESSAGE_INFO, L"Builing the graph completed" ); Cleanup: if( FAILED( hr )) { NotifyMessage( MESSAGE_ERROR, L"Builing the graph failed" ); } return hr; }
void QJwsIPCThread::EmitMsg(QString strMsg, QString strFunName) { emit NotifyMessage( strMsg ); qDebug( ) << strMsg << ":" << strFunName << endl; }