⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rmprop.cpp

📁 神龙卡 SDK_84xx_DShow_145_02.zip 这个是 windows 上二个是linux
💻 CPP
字号:
//
// RTSP Property Page
//////////////////////////////////////////////////////////////////
#include "rtspprop.h"

//
//////////////////////////////////////////////////////////////////
CUnknown * WINAPI CRTSPPropertyPage::CreateInstance(LPUNKNOWN lpunk, HRESULT *phr)
{
    CUnknown *punk = new CRTSPPropertyPage(TEXT("RTSP Property Page"), lpunk);
    if (punk == NULL) {
        *phr = E_OUTOFMEMORY;
    }
    return punk;

}

//////////////////////////////////////////////////////////////////
CRTSPPropertyPage::CRTSPPropertyPage(TCHAR *pName, LPUNKNOWN pUnk) :
		CBasePropertyPage(pName, pUnk, IDD_PROPPAGE_SMALL, IDS_RTSPTITLE)
{
	InitValues();
}

//////////////////////////////////////////////////////////////////
CRTSPPropertyPage::~CRTSPPropertyPage()
{
	if(m_pPropConnParams->sSessionId[0] == '\0')
	{	//if no session is active, initialize the rtsp
		PHOSTENT g_temphost;
		char g_sHost[1024];
		struct sockaddr_in   g_dest;	
		gethostname(g_sHost, 1024);
		g_temphost = gethostbyname(g_sHost);
		memcpy(&(g_dest.sin_addr), g_temphost->h_addr_list[0], g_temphost->h_length);		
		// initialize the connection parameters
		int		iUserPort = 5004;
		int		iRtpPort  = 5006;
		IRtsp_Initialize(m_pIRtsp, m_pPropConnParams, inet_ntoa(g_dest.sin_addr), iUserPort, iRtpPort);
	}
	m_pRMSourceStream->SetUpThreadProc();
	ASSERT(m_pRMSourceStream);
	m_pRMSourceStream->Release();
	m_pRMSourceStream = NULL;
}

//////////////////////////////////////////////////////////////////
HRESULT CRTSPPropertyPage::OnConnect(IUnknown *pUnknown)
{
	OutputDebugString("\nOnConnect");
	if(!m_pRMSourceStream)
	{
	    HRESULT hr = pUnknown->QueryInterface(IID_IRMSourceStream, (void **) &m_pRMSourceStream);
	    if (FAILED(hr)) {
	        DbgBreak("Can't get IRMSourceStream interface.");
	        return E_NOINTERFACE;
	    }
		m_pRMSourceStream->get_ConnParams(&m_pPropConnParams);
		m_pRMSourceStream->get_pRMSource(&m_pIRMSource);
		m_pRMSourceStream->get_pRMProps(&m_pRMProps);
		m_pRMSourceStream->get_pIRTSP(&m_pIRtsp);
	}	
	m_rmprops.servertype = m_pRMProps->servertype;
	OSstrcpy(m_rmprops.serverIp,m_pRMProps->serverIp);
	OSstrcpy(m_rmprops.browseinfo,m_pRMProps->browseinfo);
	return S_OK;
}

//////////////////////////////////////////////////////////////////
HRESULT CRTSPPropertyPage::OnDeactivate()
{

	OutputDebugString("\nOnDeactivate");
	Apply();
	return S_OK;
}

//////////////////////////////////////////////////////////////////
HRESULT CRTSPPropertyPage::OnDisconnect()
{
	OutputDebugString("\nOnDisconnect");

	Apply();
	return S_OK;
}

//////////////////////////////////////////////////////////////////
HRESULT CRTSPPropertyPage::OnActivate()
{
	OutputDebugString("\nOnActivate");
	return S_OK;
}

//////////////////////////////////////////////////////////////////
HRESULT CRTSPPropertyPage::OnApplyChanges()
{
	OutputDebugString("\nOnApplyChanges");
//	OSstrcpy(m_pPropConnParams->sServerIp, m_rmprops.serverIp);
	m_pRMProps->servertype = m_rmprops.servertype;
	OSstrcpy(m_pRMProps->browseinfo,m_rmprops.browseinfo);
	OSstrcpy(m_pRMProps->serverIp, m_rmprops.serverIp);
	m_pIRMSource->SetDirty(TRUE);
	return S_OK;
}

//////////////////////////////////////////////////////////////////
BOOL CRTSPPropertyPage::OnReceiveMessage(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	switch(uMsg)
	{
	case WM_INITDIALOG:
		SendDlgItemMessage(hwnd,IDC_EDIT1,WM_SETTEXT,0,(LPARAM)(m_rmprops.browseinfo));
		SendDlgItemMessage
			(hwnd,IDC_EDIT2,WM_SETTEXT,0,(LPARAM)m_rmprops.serverIp);
		SendDlgItemMessage(hwnd,IDC_COMBO1,CB_ADDSTRING ,0,(LPARAM)("OVS"));
		SendDlgItemMessage(hwnd,IDC_COMBO1,CB_ADDSTRING ,0,(LPARAM)("SGI"));
		switch(m_rmprops.servertype)
		{
		case OVS:
			SendDlgItemMessage(hwnd,IDC_COMBO1,CB_SELECTSTRING ,0,(LPARAM)("OVS"));
			break;
		case SGI:
			SendDlgItemMessage(hwnd,IDC_COMBO1,CB_SELECTSTRING ,0,(LPARAM)("SGI"));
			break;
		default:
			break;
		}
		return FALSE;
	case WM_COMMAND:
	{
		switch(LOWORD(wParam))
		{
		case IDC_BUTTON1: 	
			m_propOpen.lStructSize = sizeof (OPENFILENAME);
			m_propOpen.hwndOwner = hwnd;
//			m_propOpen.hInstance = (HANDLE)hInst;
			m_propOpen.lpstrFilter = m_pfiletypes;
			m_propOpen.lpstrCustomFilter = (LPTSTR)NULL;
			m_propOpen.nMaxCustFilter = 0L;
			m_propOpen.nFilterIndex = 0L;
			m_propOpen.lpstrFile = m_filepath;
			m_propOpen.nMaxFile = sizeof (m_filepath);
			m_propOpen.lpstrFileTitle = m_filepath;
			m_propOpen.nMaxFileTitle = sizeof (m_filepath);
			m_propOpen.lpstrInitialDir = NULL;
			m_propOpen.lpstrTitle = "Open";
			m_propOpen.nFileOffset = 0;
			m_propOpen.nFileExtension = 0;
			m_propOpen.lpstrDefExt = NULL;
			m_propOpen.lCustData = 0; 
			GetOpenFileName(&m_propOpen);
			OSstrcpy(m_rmprops.browseinfo,m_filepath);
			SendDlgItemMessage
				(hwnd,IDC_EDIT1,WM_SETTEXT,0,(LPARAM)(m_rmprops.browseinfo));
			m_pIRMSource->SetDirty(TRUE);
			m_bDirty = TRUE;
			return FALSE;
		case IDC_EDIT1:
			if(HIWORD(wParam) == EN_UPDATE)
			{
				m_pathlength = SendDlgItemMessage
					(hwnd,IDC_EDIT1,WM_GETTEXTLENGTH,(WPARAM)0,(LPARAM)0);
				SendDlgItemMessage
					(hwnd,IDC_EDIT1,WM_GETTEXT,(WPARAM) m_pathlength+1,(LPARAM) m_filepath);
				OSstrcpy(m_rmprops.browseinfo,m_filepath);
				m_pIRMSource->SetDirty(TRUE);
				m_bDirty = TRUE;
			}
			return FALSE;
		case IDC_EDIT2:
			if(HIWORD(wParam) == EN_UPDATE)
			{
				m_pathlength = SendDlgItemMessage
					(hwnd,IDC_EDIT2,WM_GETTEXTLENGTH,(WPARAM)0,(LPARAM)0);
				SendDlgItemMessage
					(hwnd,IDC_EDIT2,WM_GETTEXT,(WPARAM) m_pathlength+1,(LPARAM) m_ipaddress);
				OSstrcpy(m_rmprops.serverIp,m_ipaddress);
				m_pIRMSource->SetDirty(TRUE);
				m_bDirty = TRUE;
			}
			return FALSE;
		case IDC_COMBO1:
			if(HIWORD(wParam) == CBN_SELCHANGE)
			{
				m_rmprops.servertype = 
					1 + SendDlgItemMessage(hwnd,IDC_COMBO1,CB_GETCURSEL ,0,0);
				m_pIRMSource->SetDirty(TRUE);
				m_bDirty = TRUE;
			}
			return FALSE;
		default:
			return FALSE;
		}
	}
	default:
		return FALSE;
	}
	return FALSE;
}

//////////////////////////////////////////////////////////////////
STDMETHODIMP CRTSPPropertyPage::NonDelegatingQueryInterface(REFIID riid,void **ppv)
{
	return CBasePropertyPage::NonDelegatingQueryInterface(riid,ppv);
}

//////////////////////////////////////////////////////////////////
void CRTSPPropertyPage::InitValues()
{
	OutputDebugString("\nInitValues");
	m_pfiletypes = "All Files\0*.*\0";
	m_pRMSourceStream = NULL;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -