Ejemplo n.º 1
0
j_result_t CXlClient::SendMsgInfo(j_string_t strHostId, j_int32_t nType, j_int32_t nNo, j_int32_t nChannel)
{
	if (nType == xlc_msg_host)
	{
		J_OS::LOGINFO("CXlClient::SendMsgInfo xlc_msg_host sub = %d", nNo);
		if (nNo == xlc_host_broken)
		{
			TLock(m_vecLocker);
			VideoInfoVec::iterator it = m_videoInfoVec.begin();
			for (; it!=m_videoInfoVec.end(); ++it)
			{
				if (it->strHost == strHostId)
				{
					it->bConnected = false;
				}
			}
			TUnlock(m_vecLocker);
		}
		else if (nNo == xlc_host_connected)
		{
			TLock(m_vecLocker);
			VideoInfoVec::iterator it = m_videoInfoVec.begin();
			for (; it!=m_videoInfoVec.end(); ++it)
			{
				if (!it->bConnected)
				{
					CliRealPlay realPlay = {0};
					strcpy(realPlay.hostId, it->strHost.c_str());
					realPlay.channel = it->nChanId;
					if (StartView(realPlay, NULL) == J_OK)
					{
						it->bConnected = true;
					}
				}
			}
			TUnlock(m_vecLocker);
		}
	}
	else
	{
		struct MessageBody
		{
			CmdHeader header;
			CliMessage data;
			CmdTail tial;
		} messageBody;
		memset (&messageBody, 0, sizeof(MessageBody));
		messageBody.data.uiType = nType;
		messageBody.data.uiNO = nNo;
		messageBody.data.nChannelID = nChannel;
		strcpy(messageBody.data.hostID, strHostId.c_str());
		CXlHelper::MakeResponse(xlc_message, (j_char_t *)&messageBody.data, sizeof(CliMessage), (j_char_t *)&messageBody);
		m_socket.Write_n((j_char_t *)&messageBody, sizeof(CmdHeader) + sizeof(CliMessage) + sizeof(CmdTail));
		J_OS::LOGINFO("CXlClient::SendMessage %d-%d", nType, nNo);
	}

	return J_OK;
}
Ejemplo n.º 2
0
int CHikv3Channel::OpenStream(J_Obj *&pObj, CRingBuffer *pRingBuffer)
{
	if (m_pAdapter->GetStatus() != jo_dev_ready)
	{
		m_pAdapter->Broken();
		m_pAdapter->Relogin();
		m_bOpened = false;
		return J_DEV_BROKEN;
	}

	if (m_bOpened && pObj != NULL)
	{
		MakeIFrame(m_nChannel);
		/*pHeader = new char[DATA_BUFF_SIZE];
		memcpy(pHeader, m_pDataBuff, DATA_BUFF_SIZE);

		NVRStreamHeader streamHeader;
		streamHeader.dataLen = 40;
		streamHeader.frameType = HEADER_T;
		pRingBuffer->PushBuffer(m_pDataBuff + sizeof(PackHeader) + 4,
				streamHeader);*/

		(dynamic_cast<CHikv3Stream *> (pObj))->AddRingBuffer(pRingBuffer);
		return J_OK;
	}

	int nRet = StartView();
	if (nRet != J_OK)
	{
		m_pAdapter->Broken();
		m_pAdapter->Relogin();
		J_OS::LOGINFO("CHikv3Channel::OpenStream StartView error, errno = %d", nRet);
		return J_STREAM_ERROR;
	}
	//pHeader = new char[DATA_BUFF_SIZE];
	//memcpy(pHeader, m_pDataBuff, DATA_BUFF_SIZE);

	m_bOpened = true;
	pObj = new CHikv3Stream(m_recvSocket, m_resid, m_pDataBuff + 12);
	//J_OS::LOGINFO("CHikv3Channel ringBuffer = %x", pRingBuffer);
	(dynamic_cast<CHikv3Stream *> (pObj))->AddRingBuffer(pRingBuffer);
	(dynamic_cast<CHikv3Stream *> (pObj))->Startup();

	return J_OK;
}
Ejemplo n.º 3
0
j_result_t CXlClient::OnRealPlay(J_AsioDataBase *pAsioData)
{
	CliRealPlay *pReps = (CliRealPlay *)(m_readBuff + sizeof(CmdHeader));
	J_OS::LOGINFO("CXlClient::OnRealPlay hostId = %s, channel = %d", pReps->hostId, pReps->channel & 0xFF);

	if (StartView(*pReps, pAsioData) != J_OK)
	{
		J_OS::LOGINFO("CXlClient::OnRealPlay StartView failed");
	}

	pAsioData->ioCall = J_AsioDataBase::j_read_e;
	CXlHelper::MakeNetData(pAsioData, m_readBuff, sizeof(CmdHeader));
	if (m_nRefCnt == 0)
		pAsioData->ioCall = J_AsioDataBase::j_read_write_e;
	atomic_inc(&m_nRefCnt);

	return J_OK;
}
Ejemplo n.º 4
0
            virtual void ProcessEvent( EFlowEvent evt, SActivationInfo* pActInfo )
            {
                this->awesomium = PluginManager::safeGetPluginConcreteInterface<IPluginAwesomium*>( PLUGIN_NAME );

                if ( awesomium == NULL )
                {
                    return;
                }

                this->sys = this->awesomium->GetSystem();

                switch ( evt )
                {
                    case eFE_Activate:
                        if ( IsPortActive( pActInfo, EIP_START ) )
                        {
                            ActivateOutput<bool>( pActInfo, EOP_STARTED, StartView( GetPortInt( pActInfo, EIP_WIDTH ), GetPortInt( pActInfo, EIP_HEIGHT ), GetPortString( pActInfo, EIP_MATNAME ), GetPortString( pActInfo, EIP_OBJNAME ) ) );
                            std::string url = GetPortString( pActInfo, EIP_TOURL );

                            if ( view && url.length() != 0 )
                            {
                                view->GetView()->LoadURL( WebURL( WSLit( url.c_str() ) ) );
                            }
                        }

                        if ( viewCreated )
                        {
                            if ( IsPortActive( pActInfo, EIP_RELEASE ) )
                            {
                                sys->DeleteView( view );
                                view = NULL;
                                viewCreated = false;
                            }

                            if ( IsPortActive( pActInfo, EIP_TOURL ) )
                            {
                                std::string url = GetPortString( pActInfo, EIP_TOURL );

                                if ( view && url.length() != 0 )
                                {
                                    view->GetView()->LoadURL( WebURL( WSLit( url.c_str() ) ) );
                                }
                            }

                            if ( IsPortActive( pActInfo, EIP_COPY ) )
                            {
                                view->GetView()->Copy();
                            }

                            if ( IsPortActive( pActInfo, EIP_GETLOADING ) )
                            {
                                ActivateOutput<bool>( pActInfo, EOP_LOADING, view->GetView()->IsLoading() );
                            }

                            /*
                            if ( IsPortActive( pActInfo, EIP_GETTITLE ) )
                            {
                                ActivateOutput<string>( pActInfo, EOP_TITLE, view->GetView()->title().data );
                            }

                            if ( IsPortActive( pActInfo, EIP_GETURL ) )
                            {
                                ActivateOutput<string>( pActInfo, EOP_TITLE, view->GetView()->url().path );
                            }
                            */

                            if ( IsPortActive( pActInfo, EIP_GOBACK ) )
                            {
                                view->GetView()->GoBack();
                            }

                            if ( IsPortActive( pActInfo, EIP_GOFORWARD ) )
                            {
                                view->GetView()->GoForward();
                            }

                            if ( IsPortActive( pActInfo, EIP_PASTE ) )
                            {
                                view->GetView()->Paste();
                            }

                            if ( IsPortActive( pActInfo, EIP_REDO ) )
                            {
                                view->GetView()->Redo();
                            }

                            if ( IsPortActive( pActInfo, EIP_REFRESH ) )
                            {
                                view->GetView()->Reload( true );
                            }

                            if ( IsPortActive( pActInfo, EIP_RESIZE ) )
                            {
                                view->GetView()->Resize( GetPortInt( pActInfo, EIP_WIDTH ), GetPortInt( pActInfo, EIP_HEIGHT ) );
                            }

                            if ( IsPortActive( pActInfo, EIP_SELECTALL ) )
                            {
                                view->GetView()->SelectAll();
                            }

                            if ( IsPortActive( pActInfo, EIP_STOP ) )
                            {
                                view->GetView()->Stop();
                            }

                            if ( IsPortActive( pActInfo, EIP_UNDO ) )
                            {
                                view->GetView()->Undo();
                            }
                        }

                        break;
                }
            }