123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736 |
- // MyOutput.cpp : implementation file
- //
- #include "stdafx.h"
- #include "newclient.h"
- #include "MyOutput.h"
- #include "CurWin.h"
- #include "newclientDlg.h"
- #include "DecodeCardSDK.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- WORD iActiveWndNumber = 0;
- WORD m_iSubWndCreated = 0;
- extern void F_AddEvent(CString csEvent);
- extern CLIENTPARAM ClientParam;
- extern CCurwin mycurwin;
- extern CMyOutput myoutput[MAXVIEWNUM];
- extern HBRUSH hBrush;
- extern BOOL g_bShareSound;
- extern int g_nNetDelay;
- /////////////////////////////////////////////////////////////////////////////
- // CMyOutput dialog
- RECT g_ShowRect3;
- RECT g_MouseRect3;
- void CALLBACK DrawFun3(long nPort,HDC hDc,DWORD nUser)
- {
- ::DrawEdge(hDc, &g_ShowRect3, BDR_SUNKENOUTER, BF_RECT);
-
- SetBkMode(hDc, TRANSPARENT);
- }
- void CALLBACK RealDataCallBack(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer,DWORD dwBufSize,DWORD dwUser)
- {
- int a=0;
- // TRACE("lRealHandle = %d dwUser = %d dwDataType = %d dwBufSize = %d", lRealHandle, dwUser, dwDataType, dwBufSize);
- }
- CMyOutput::CMyOutput(CWnd* pParent /*=NULL*/)
- : CDialog(CMyOutput::IDD, pParent)
- {
- //{{AFX_DATA_INIT(CMyOutput)
- // NOTE: the ClassWizard will add member initialization here
- //}}AFX_DATA_INIT
- m_bIsAutoSave = FALSE;
- }
- void CMyOutput::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CMyOutput)
- // NOTE: the ClassWizard will add DDX and DDV calls here
- //}}AFX_DATA_MAP
- }
- BEGIN_MESSAGE_MAP(CMyOutput, CDialog)
- //{{AFX_MSG_MAP(CMyOutput)
- ON_WM_CREATE()
- ON_WM_CTLCOLOR()
- ON_WM_DESTROY()
- ON_WM_LBUTTONDBLCLK()
- ON_WM_LBUTTONDOWN()
- ON_WM_MOUSEMOVE()
- ON_WM_PAINT()
- ON_WM_RBUTTONDOWN()
- ON_WM_TIMER()
- ON_COMMAND(IDC_MENU_FRONTPAGE, OnMenuFrontpage)
- ON_COMMAND(IDC_MENU_NEXTPAGE, OnMenuNextpage)
- ON_COMMAND(IDC_MENU_PAUSECYCLE, OnMenuPausecycle)
- ON_COMMAND(IDC_MENU_SOUND, OnMenuSound)
- ON_COMMAND(IDC_MENU_MULTISCREEN, OnMenuMultiscreen)
- ON_WM_LBUTTONUP()
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CMyOutput message handlers
- BOOL CMyOutput::OnInitDialog()
- {
- CDialog::OnInitDialog();
-
- // TODO: Add extra initialization here
- // m_iSubWndCreated = 0;
- m_dwDVRIP = 0;
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
- void CMyOutput::StartNet(PIP_INFO ipinfo)
- {
- NET_DVR_CLIENTINFO playstru;
- char ipaddress[256];
- char multiipaddress[256];
- char user[100];
- char password[100];
- WORD iServerPort;
- CString sTemp;
-
- ZeroMemory(user,100);
- ZeroMemory(password,100);
-
- if(m_iPlayhandle != -1)
- {
- TRACE("NET_DVR_StopRealPlay m_iPlayhandle = %d", m_iPlayhandle);
- if(g_bShareSound)
- {
- NET_DVR_CloseSoundShare(m_iPlayhandle);
- }
- if(!NET_DVR_StopRealPlay(m_iPlayhandle))
- {
- TRACE("NET_DVR_StopRealPlay 失败 m_iPlayhandle = %d", m_iPlayhandle);
- }
- }
-
- m_bNeedjudge = FALSE;
- playstru.hPlayWnd = GetSafeHwnd();
- playstru.lChannel = ipinfo->m_iChannel;
- playstru.lLinkMode = ipinfo->m_dwProtocol;
- if(ipinfo->m_dwMultiIPvalue == 0)
- strcpy(multiipaddress,"");
- else
- sprintf(multiipaddress,"%s",ipinfo->m_csMultiIP);
- playstru.sMultiCastIP = multiipaddress;
-
- iServerPort = ipinfo->m_wServerport;
- //TRACE("StartNet");
- m_iPlayhandle = NET_DVR_RealPlay(ipinfo->m_lServerID, &playstru);
- if(m_iPlayhandle == -1)
- {
- DWORD dwErr = NET_DVR_GetLastError();
- sprintf(ipaddress,"%s",ipinfo->m_csIP);
- sTemp.Format("访问IP:%s 通道%d 连接启动失败 dwErr = %d",ipaddress,playstru.lChannel, dwErr);
- F_AddEvent(sTemp);
- TRACE(sTemp);
- }
- else
- {
- //TRACE("StartNet m_iPlayhandle = %d", m_iPlayhandle);
- switch(g_nNetDelay) {
- case 0:
- NET_DVR_SetPlayerBufNumber(m_iPlayhandle, 1);
- break;
- case 1:
- NET_DVR_SetPlayerBufNumber(m_iPlayhandle, 6);
- break;
- case 2:
- NET_DVR_SetPlayerBufNumber(m_iPlayhandle, 15);
- break;
- case 3:
- NET_DVR_SetPlayerBufNumber(m_iPlayhandle, 30);
- break;
- case 4:
- NET_DVR_SetPlayerBufNumber(m_iPlayhandle, 45);
- break;
- default:
- NET_DVR_SetPlayerBufNumber(m_iPlayhandle, 15);
- break;
- }
-
- //NET_DVR_SetPlayerBufNumber(m_iPlayhandle, 15);
- NET_DVR_ThrowBFrame(m_iPlayhandle,1);
- NET_DVR_SetRealDataCallBack(m_iPlayhandle, RealDataCallBack, m_iPlayhandle);
- m_csIP = ipinfo->m_csIP;
- m_dwDVRIP = ipinfo->m_dwIPvalue;
- m_lServerID = ipinfo->m_lServerID;
- m_iChannel = playstru.lChannel;
- m_bNeedjudge = TRUE;
- }
- CNewclientDlg* mainwnd =(CNewclientDlg*) AfxGetMainWnd();
- m_iWindowNum = mainwnd->WINDOWNUM;
- }
- void CMyOutput::StopNet()
- {
- if(m_iPlayhandle != -1)
- {
- if(m_bFileSave)
- NET_DVR_StopSaveRealData(m_iPlayhandle);
- m_bFileSave = FALSE;
- if(!NET_DVR_StopRealPlay(m_iPlayhandle))
- {
- TRACE("NET_DVR_StopRealPlay 失败 m_iPlayhandle = %d", m_iPlayhandle);
- }
- //TRACE("NET_DVR_StopRealPlay");
- m_bNeedjudge = FALSE;
- invateframe();
- m_iPlayhandle = -1;
- ClientParam.m_bPlaySound[m_iSubWndNumber] = FALSE;
- CNewclientDlg* mainwnd = (CNewclientDlg*) AfxGetMainWnd();
- }
- }
- void CMyOutput::StartCard(PIP_INFO ipinfo)
- {
- NET_DVR_CARDINFO playstru;
- char ipaddress[256];
- char multiipaddress[256];
- char user[100];
- char password[100];
- WORD iServerPort;
- CString sTemp;
- ULONG ulMode = 0;
-
- ZeroMemory(user,100);
- ZeroMemory(password,100);
- if(m_iPlayhandle != -1)
- {
- if(!NET_DVR_StopRealPlay(m_iPlayhandle))
- {
- TRACE("NET_DVR_StopRealPlay 失败 m_iPlayhandle = %d", m_iPlayhandle);
- }
- }
- m_bNeedjudge = FALSE;
- playstru.lChannel = ipinfo->m_iChannel;
- playstru.lLinkMode = ipinfo->m_dwProtocol;
- if(ipinfo->m_dwMultiIPvalue == 0)
- strcpy(multiipaddress,"");
- else
- sprintf(multiipaddress,"%s",ipinfo->m_csMultiIP);
- playstru.sMultiCastIP = multiipaddress;
- iServerPort = ipinfo->m_wServerport;
-
- playstru.struDisplayPara.nLeft = m_display_para.nLeft;
- playstru.struDisplayPara.nTop = m_display_para.nTop;
- playstru.struDisplayPara.nWidth = m_display_para.nWidth;
- playstru.struDisplayPara.nHeight = m_display_para.nHeight;
- playstru.struDisplayPara.bToScreen = 1;
- playstru.struDisplayPara.bToVideoOut = 1;
-
- TRACE("使用解码卡");
- m_iPlayhandle = NET_DVR_RealPlay_Card(ipinfo->m_lServerID,&playstru,m_iSubWndNumber);
- if(m_iPlayhandle == -1)
- {
- sprintf(ipaddress,"%s",ipinfo->m_csIP);
- sTemp.Format("访问IP:%s 通道%d 连接启动失败",ipaddress,playstru.lChannel);
- F_AddEvent(sTemp);
- TRACE(sTemp);
- }
- else
- {
- switch(g_nNetDelay) {
- case 0:
- ulMode = 1;
- break;
- case 1:
- ulMode = 2;
- break;
- case 2:
- ulMode = 3;
- break;
- case 3:
- ulMode = 4;
- break;
- case 4:
- ulMode = 5;
- break;
- default:
- ulMode = 3;
- break;
- }
- HW_SetStreamOpenMode((HANDLE)m_iSubWndNumber, ulMode);
- NET_DVR_ThrowBFrame(m_iPlayhandle,1);
- m_csIP = ipinfo->m_csIP;
- m_dwDVRIP = ipinfo->m_dwIPvalue;
- m_lServerID = ipinfo->m_lServerID;
- m_iChannel = playstru.lChannel;
- m_bNeedjudge = TRUE;
- }
- }
- BOOL CMyOutput::DestroyWindow()
- {
- // TODO: Add your specialized code here and/or call the base class
- return CDialog::DestroyWindow();
- }
- BOOL CMyOutput::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
- {
- // TODO: Add your specialized code here and/or call the base class
- if ((nID == 2) || (nID == 1))
- return TRUE;
-
- return CDialog::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
- }
- int CMyOutput::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (CDialog::OnCreate(lpCreateStruct) == -1)
- return -1;
-
- // TODO: Add your specialized creation code here
- m_iSubWndNumber = m_iSubWndCreated++;
-
- m_iPlayhandle = -1;
- m_bPlaying = FALSE;
- m_bNeedjudge = FALSE;
- m_bFileSave = FALSE;
-
- return 0;
- }
- HBRUSH CMyOutput::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
- {
- HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
-
- // TODO: Change any attributes of the DC here
- if(ClientParam.m_bUseCard)
- {
- NET_DVR_RestoreSurface_Card();
- return hBrush;
- }
- // TODO: Return a different brush if the default is not desired
- return hbr;
- }
- void CMyOutput::OnDestroy()
- {
- CDialog::OnDestroy();
-
- // TODO: Add your message handler code here
-
- }
- void CMyOutput::OnLButtonDblClk(UINT nFlags, CPoint point)
- {
- // TODO: Add your message handler code here and/or call default
- iActiveWndNumber = m_iSubWndNumber;
- if(m_iPlayhandle < 0)
- return;
- CNewclientDlg* mainwnd =(CNewclientDlg*) AfxGetMainWnd();
- m_iWindowNum = mainwnd->WINDOWNUM;
- if(ClientParam.m_bFullScreen || ClientParam.m_bMultiScreen)
- {
- ClientParam.m_bFullScreen = FALSE;
- ClientParam.m_bEnlarged = FALSE;
- ClientParam.m_bMultiScreen = FALSE;
- NET_DVR_ThrowBFrame(m_iPlayhandle, 1);
- mainwnd->F_EndFullScreen();
- mainwnd->ArrayWindow(iActiveWndNumber,m_iWindowNum);
- mycurwin.ShowWindow(SW_SHOW);
- mainwnd->MoveCurWin(m_iWindowNum,iActiveWndNumber);
- return;
- }
-
- if( (ClientParam.m_bEnlarged) || (m_iWindowNum == 1) )
- { //一个窗口或者窗口放大
- mainwnd->F_FullScreen();
- MoveWindow(0, 0, 1024, 768, TRUE);
- NET_DVR_ThrowBFrame(m_iPlayhandle, 0);
- ShowWindow(SW_SHOW);
- ClientParam.m_bFullScreen = TRUE;
- }
- else
- { //多窗口
- NET_DVR_ThrowBFrame(m_iPlayhandle,0);
- m_iWindowNum = 1;
- ClientParam.m_bEnlarged = TRUE;
- mainwnd->ArrayWindow(iActiveWndNumber,m_iWindowNum);
- mainwnd->MoveCurWin(m_iWindowNum,iActiveWndNumber);
- }
- if(!ClientParam.m_bUseCard)
- {
- DWORD dwBright,dwContrast, dwSaturation, dwHue;
- dwBright = dwContrast = dwContrast = dwHue = 0;
- NET_DVR_ClientGetVideoEffect(m_iPlayhandle, &dwBright,&dwContrast, &dwSaturation, &dwHue);
- ClientParam.m_VideoInfo[iActiveWndNumber].m_iBrightness = dwBright;
- ClientParam.m_VideoInfo[iActiveWndNumber].m_iContrast = dwContrast;
- ClientParam.m_VideoInfo[iActiveWndNumber].m_iSaturation = dwSaturation;
- ClientParam.m_VideoInfo[iActiveWndNumber].m_iHue = dwHue;
- }
- CDialog::OnLButtonDblClk(nFlags, point);
- }
- void CMyOutput::OnLButtonDown(UINT nFlags, CPoint point)
- {
- // TODO: Add your message handler code here and/or call default
- CNewclientDlg* mainwnd =(CNewclientDlg*) AfxGetMainWnd();
-
- if(iActiveWndNumber != m_iSubWndNumber)
- {
- iActiveWndNumber = m_iSubWndNumber;
- mainwnd->MoveCurWin(mainwnd->WINDOWNUM, iActiveWndNumber);
- mainwnd->F_ShowVideoParams();
- if(!ClientParam.m_bUseCard)
- {
- DWORD dwBright,dwContrast, dwSaturation, dwHue;
- dwBright = dwContrast = dwSaturation = dwHue = 0;
- NET_DVR_ClientGetVideoEffect(m_iPlayhandle, &dwBright,&dwContrast, &dwSaturation, &dwHue);
- ClientParam.m_VideoInfo[iActiveWndNumber].m_iBrightness = dwBright;
- ClientParam.m_VideoInfo[iActiveWndNumber].m_iContrast = dwContrast;
- ClientParam.m_VideoInfo[iActiveWndNumber].m_iSaturation = dwSaturation;
- ClientParam.m_VideoInfo[iActiveWndNumber].m_iHue = dwHue;
- }
- }
- if (MK_CONTROL&nFlags&&(m_iPlayhandle != -1))
- {
- NET_DVR_RigisterDrawFun(m_iPlayhandle, DrawFun3, 0);
- if (point.x < 0)
- point.x = 0;
- g_MouseRect3.left=point.x/16*16;
- if (point.y < 0)
- point.y = 0;
- g_MouseRect3.top=point.y/16*16;
- g_MouseRect3.right=g_MouseRect3.left;
- g_MouseRect3.bottom=g_MouseRect3.top;
- POINT tPoint=point;
- g_ShowRect3.left=tPoint.x/16*16;
- g_ShowRect3.top=tPoint.y/16*16;
- g_ShowRect3.right=tPoint.x/16*16+1;
- g_ShowRect3.bottom=tPoint.y/16*16+1;
- }
- CDialog::OnLButtonDown(nFlags, point);
- }
- void CMyOutput::OnMouseMove(UINT nFlags, CPoint point)
- {
- // TODO: Add your message handler code here and/or call default
- if ((MK_CONTROL&nFlags) && (MK_LBUTTON&nFlags) && (m_iPlayhandle != -1))
- {
- POINT tPoint=point;
- g_ShowRect3.right=tPoint.x/16*16;
- g_ShowRect3.bottom=tPoint.y/16*16;
- }
- CDialog::OnMouseMove(nFlags, point);
- }
- void CMyOutput::OnPaint()
- {
- CPaintDC dc(this); // device context for painting
-
- // TODO: Add your message handler code here
- if(ClientParam.m_bUseCard)
- NET_DVR_RestoreSurface_Card();
- // Do not call CDialog::OnPaint() for painting messages
- }
- void CMyOutput::OnRButtonDown(UINT nFlags, CPoint point)
- {
- CancelSelectZoom();
- // TODO: Add your message handler code here and/or call default
- CMenu m_PopMenu;
- CNewclientDlg* mainwnd =(CNewclientDlg*) AfxGetMainWnd();
-
- if(iActiveWndNumber != m_iSubWndNumber)
- {
- iActiveWndNumber = m_iSubWndNumber;
- mainwnd->MoveCurWin(mainwnd->WINDOWNUM, iActiveWndNumber);
- mainwnd->F_ShowVideoParams();
- if(!ClientParam.m_bUseCard)
- {
- DWORD dwBright,dwContrast, dwSaturation, dwHue;
- dwBright = dwContrast = dwSaturation = dwHue = 0;
- NET_DVR_ClientGetVideoEffect(m_iPlayhandle, &dwBright,&dwContrast, &dwSaturation, &dwHue);
- ClientParam.m_VideoInfo[iActiveWndNumber].m_iBrightness = dwBright;
- ClientParam.m_VideoInfo[iActiveWndNumber].m_iContrast = dwContrast;
- ClientParam.m_VideoInfo[iActiveWndNumber].m_iSaturation = dwSaturation;
- ClientParam.m_VideoInfo[iActiveWndNumber].m_iHue = dwHue;
- }
- }
-
- if(ClientParam.m_bFullScreen || ClientParam.m_bMultiScreen)
- return;
- if(!m_PopMenu.LoadMenu(IDR_MENU1))
- return;
- ClientToScreen(&point);
- CMenu *psub = (CMenu *)m_PopMenu.GetSubMenu(0);
- psub->EnableMenuItem(0, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);
- psub->EnableMenuItem(1, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);
- psub->EnableMenuItem(2, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);
- psub->EnableMenuItem(3, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);
- if(ClientParam.m_bCycling)
- {
- if(ClientParam.m_bPaused)
- psub->ModifyMenu(0, MF_BYPOSITION, IDC_MENU_PAUSECYCLE, "开始循环");
- else
- psub->ModifyMenu(0, MF_BYPOSITION, IDC_MENU_PAUSECYCLE, "暂停循环");
-
- psub->EnableMenuItem(0, MF_BYPOSITION | MF_ENABLED);
- psub->EnableMenuItem(1, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);
- psub->EnableMenuItem(2, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);
- }
- else
- {
- if(ClientParam.m_bNextPage)
- {
- psub->EnableMenuItem(0, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);
- psub->EnableMenuItem(1, MF_BYPOSITION | MF_ENABLED);
- }
- if(ClientParam.m_bFrontPage)
- {
- psub->EnableMenuItem(0, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);
- psub->EnableMenuItem(2, MF_BYPOSITION | MF_ENABLED);
- }
- }
- //
- {
- if(ClientParam.m_bPlaySound[iActiveWndNumber])
- psub->ModifyMenu(3, MF_BYPOSITION, IDC_MENU_SOUND, "关闭声音");
- else
- psub->ModifyMenu(3, MF_BYPOSITION, IDC_MENU_SOUND, "打开声音");
- psub->EnableMenuItem(3, MF_BYPOSITION | MF_ENABLED);
- }
- psub->EnableMenuItem(4, MF_BYPOSITION | MF_ENABLED);
- psub->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
- m_PopMenu.DestroyMenu();
- CDialog::OnRButtonDown(nFlags, point);
- }
- void CMyOutput::OnTimer(UINT nIDEvent)
- {
- // TODO: Add your message handler code here and/or call default
-
- CDialog::OnTimer(nIDEvent);
- }
- void CMyOutput::OnMenuFrontpage()
- {
- // TODO: Add your command handler code here
- CNewclientDlg* mainwnd =(CNewclientDlg*) AfxGetMainWnd();
- mainwnd->F_FrontPage();
- }
- void CMyOutput::OnMenuNextpage()
- {
- // TODO: Add your command handler code here
- CNewclientDlg* mainwnd =(CNewclientDlg*) AfxGetMainWnd();
- mainwnd->F_NextPage();
- }
- void CMyOutput::OnMenuPausecycle()
- {
- // TODO: Add your command handler code here
- CNewclientDlg* mainwnd =(CNewclientDlg*) AfxGetMainWnd();
- mainwnd->F_CyclePause();
- }
- void CMyOutput::OnMenuSound()
- {
- // TODO: Add your command handler code here
- int i;
- WORD wTemp;
- WORD wVolumevalue;
-
- wTemp = (0xFFFF) / 100;
- wVolumevalue = 50 * wTemp;
-
- if(myoutput[iActiveWndNumber].m_iPlayhandle >= 0)
- {
- if(ClientParam.m_bUseCard)
- {
- if(ClientParam.m_bPlaySound[iActiveWndNumber])
- {
- NET_DVR_CloseSound_Card(myoutput[iActiveWndNumber].m_iPlayhandle);
- ClientParam.m_bPlaySound[iActiveWndNumber] = FALSE;
- }
- else
- {
- NET_DVR_OpenSound_Card(myoutput[iActiveWndNumber].m_iPlayhandle);
- NET_DVR_AudioPreview_Card(myoutput[iActiveWndNumber].m_iPlayhandle, TRUE);
- NET_DVR_SetVolume_Card(myoutput[iActiveWndNumber].m_iPlayhandle, wVolumevalue);
- ClientParam.m_bPlaySound[iActiveWndNumber] = TRUE;
- }
- }
- else
- {
- TRACE("Close Audio");
- if(!g_bShareSound)
- {
- NET_DVR_CloseSound();
- }
- if(ClientParam.m_bPlaySound[iActiveWndNumber])
- {
- TRACE("Close m_bPlaySound[%d] Sound", iActiveWndNumber);
- ClientParam.m_bPlaySound[iActiveWndNumber] = FALSE;
- if(g_bShareSound)
- {
- NET_DVR_CloseSoundShare(myoutput[iActiveWndNumber].m_iPlayhandle);
- }
- }
- else
- {
- TRACE("Open m_bPlaySound[%d] = TRUE Sound", iActiveWndNumber);
- ClientParam.m_bPlaySound[iActiveWndNumber] = TRUE;
- if(g_bShareSound)
- {
- if(!NET_DVR_OpenSoundShare(myoutput[iActiveWndNumber].m_iPlayhandle))
- TRACE("Client Play Audio error");
- }
- else
- {
- if(!NET_DVR_OpenSound(myoutput[iActiveWndNumber].m_iPlayhandle))
- TRACE("Client Play Audio error");
- }
- if(!NET_DVR_Volume(myoutput[iActiveWndNumber].m_iPlayhandle, wVolumevalue))
- TRACE("Client Audio Volume error");
- }
- }
- if(!g_bShareSound)
- {
- for(i = 0; i < MAXVIEWNUM; i++)
- { //关闭别的窗口声音标志
- if(i == (int)iActiveWndNumber)
- continue;
- ClientParam.m_bPlaySound[i] = FALSE;
- }
- }
- }
- }
- void CMyOutput::OnMenuMultiscreen()
- {
- // TODO: Add your command handler code here
- if(m_iPlayhandle < 0)
- return;
- CNewclientDlg* mainwnd = (CNewclientDlg*) AfxGetMainWnd();
- ClientParam.m_bMultiScreen = TRUE;
- mainwnd->F_FullScreen();
- mainwnd->ArrayWindow(iActiveWndNumber,mainwnd->WINDOWNUM);
- mainwnd->MoveCurWin(mainwnd->WINDOWNUM,iActiveWndNumber);
- // StopNet();
- }
- void CMyOutput::invateframe()
- {
- Invalidate(TRUE);
- UpdateData(FALSE);
- if(ClientParam.m_bUseCard)
- NET_DVR_RefreshSurface_Card();
- }
- void CMyOutput::OnLButtonUp(UINT nFlags, CPoint point)
- {
- // TODO: Add your message handler code here and/or call default
- if ((MK_CONTROL&nFlags) && (m_iPlayhandle != -1))
- {
- POINT tPoint=point;
- g_ShowRect3.right=tPoint.x/16*16;
- g_ShowRect3.bottom=tPoint.y/16*16;
-
- NET_DVR_POINT_FRAME ptFrame;
- double scale = 1;
- if (ClientParam.m_bFullScreen)
- {
- scale = 0.32;
- }
- else if (m_iWindowNum == 1)
- {
- scale = 0.5;
- }
- else if (m_iWindowNum == 9)
- {
- scale = 1.5;
- }
- else if (m_iWindowNum == 16)
- {
- scale = 2;
- }
- ptFrame.xTop = (int)(g_MouseRect3.left*2*scale);
- ptFrame.yTop = (int)(g_MouseRect3.top*2*scale);
- ptFrame.xBottom = (int)(g_ShowRect3.right*2*scale);
- ptFrame.yBottom = (int)(g_ShowRect3.bottom*2*scale);
-
- if (g_MouseRect3.left < g_ShowRect3.right)
- {
- if (g_MouseRect3.top < g_ShowRect3.bottom)
- {
- ptFrame.bCounter = 4;
- }
- else
- {
- ptFrame.bCounter = 2;
- }
- }
- else
- {
- if (g_MouseRect3.top < g_ShowRect3.bottom)
- {
- ptFrame.bCounter = 3;
- }
- else
- {
- ptFrame.bCounter = 1;
- }
- }
- if (!NET_DVR_PTZSelZoomIn(m_iPlayhandle, &ptFrame))
- {
- CString tmp;
- tmp.Format("Error: NET_DVR_PTZSelZoomIn = %d", NET_DVR_GetLastError());
- AfxMessageBox(tmp);
- }
- CancelSelectZoom();
- }
- else
- {
- CancelSelectZoom();
- }
-
- CDialog::OnLButtonUp(nFlags, point);
- }
- void CMyOutput::CancelSelectZoom()
- {
- if (m_iPlayhandle != -1)
- {
- g_MouseRect3.top = 0;
- g_MouseRect3.left = 0;
- g_MouseRect3.right = 0;
- g_MouseRect3.bottom = 0;
- g_ShowRect3.top = 0;
- g_ShowRect3.left = 0;
- g_ShowRect3.right = 0;
- g_ShowRect3.bottom = 0;
-
- NET_DVR_RigisterDrawFun(m_iPlayhandle, NULL, 0);
- }
- }
|