Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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 );
}
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
0
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;
}
Ejemplo n.º 5
0
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 );
}
Ejemplo n.º 6
0
void CTcpClient::TcpError( QAbstractSocket::SocketError socketError )
{
    QString strMsg;
    CNetCommFunction::GetErrorMsg( strMsg, socketError, this );
    strMsg = "Tcp socket :\r\n" + strMsg;
    emit NotifyMessage( strMsg );

    HandleDisconnect( );
}
Ejemplo n.º 7
0
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 );
}
Ejemplo n.º 8
0
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 );
}
Ejemplo n.º 9
0
 bool operator()(const Args&... args) { return operator()( NotifyMessage( args... ) ); }
Ejemplo n.º 10
0
void QAnalogCameraThread::SendNotifyMessage( QString& strMsg, bool bSuccess )
{
    emit NotifyMessage( strMsg, bSuccess );
}
Ejemplo n.º 11
0
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;
}
Ejemplo n.º 12
0
void QJwsIPCThread::EmitMsg(QString strMsg, QString strFunName)
{
    emit NotifyMessage( strMsg );
    qDebug( ) << strMsg << ":" << strFunName << endl;
}