12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046 |
- // newclientDlg.cpp : implementation file
- //
- #include "stdafx.h"
- #include "StoneU_HC_OCX.h"
- #include "newclientDlg.h"
- #include "MyOutput.h"
- #include "Curwin.h"
- #include "EventLog.h"
- #include "VoiceExchange.h"
- #include "SetAlarm.h"
- #include "PlayBack.h"
- #include "SystemConfig.h"
- #include "DecodeCardSDK.h"
- #include "SYS\TIMEB.H"
- #include "GetCapture.h"
- #include "CruiseRoute.h"
- #include "Global.h"
- #include "mdlProject.h"
- #include ".\newclientdlg.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- #define LEFT_DISTANCE 0
- #define TOP_DISTANCE 0
- #define W_RATIO 1.0
- #define H_RATIO 1.0
- #pragma comment(lib,"Ws2_32.lib")
- #pragma comment(lib,"lib\\playm4.lib")
- #pragma comment(lib,"lib\\AudioCodecSDK.lib")
- #pragma comment(lib,"lib\\DsSdk.lib")
- #pragma comment(lib,"lib\\HCNetSDK.lib")
- #pragma comment(lib,"Winmm.lib")
- #define WM_MYCOMMAND WM_USER+1 //for sdk
- CNewclientDlg *g_NewClientDlg = NULL;
- typedef struct _RECORDINFO
- {
- bool bHaveSignal; //真:有信号
- bool bCapture; //真:正在下载
- DWORD dwVideoStartTime; //开始下载时间
- DWORD dwNoMotionStartTime; //没移动开始时间
- char sDvsName[50]; //DVS
- int nDvrChannel; //DVS 通道号
- }RECORD_INFO;
- RECORD_INFO g_RecordInfo[64];
- int g_nRecordIndex=0; //Record 索引
- BOOL __stdcall MessCallBack_EX(LONG lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen)
- {
- return TRUE;
- }
- CLIENTPARAM ClientParam;
- SERVER_INFO serverinfo[MAXIPNUMBER];
- IP_INFO allipinfo[MAXIPNUMBER][MAXCHANNUM];
- IP_INFO selipinfo[MAXNUMBER];
- ALARM_INFO alarminfo[MAXALARMIN];
- int iSurveillanceNumber;
- CMyOutput myoutput[MAXVIEWNUM];
- extern WORD m_iSubWndCreated;
- CGetCapture getpic;
- CCurwin mycurwin;
- char cWorkDir[256];
- BOOL bLargeWnd = FALSE; //播放窗口是否在放大,如果是放大的窗口,则关闭该窗口时,恢复到原来多窗口画面;
- WORD numberpos = 0;
- HBRUSH hBrush;
- extern WORD iActiveWndNumber;
- extern LONG lVoiceIndex;
- extern void ReadSurveillanceConfig();
- extern void ReadClientConfig();
- extern void F_AddEvent(CString csEvent);
- int MYVIEW_LEFT = 20;
- int MYVIEW_TOP = 20;
- HANDLE hVideoBeeper; //报警事件
- HANDLE hBeepThread; //报警线程
- extern int nUseCard;
- CNewclientDlg *MainDlg;
- BOOL g_bShareSound = FALSE;
- int g_nNetDelay = 2;
- BOOL g_bPTZStart = FALSE;
- int g_nPTZUP = 0;
- int g_nPTZNum = 0;
- DWORD runTimes = 0;
- const int interval = 5000;
- DWORD g_dwTime1 = 0;
- DWORD g_dwTime2 = 0;
- DWORD g_dwThread = 0;
- UINT Beeper(LPVOID pParam)
- {
- while(true)
- {
- Beep(800,500);
- Beep(1000,500);
- Beep(800,500);
- Beep(1000,500);
- if(WaitForSingleObject(hVideoBeeper,1000) == WAIT_OBJECT_0)
- {
- ResetEvent(hVideoBeeper);
- hBeepThread = NULL;
- return FALSE;
- }
- }
- return TRUE;
- }
- //根据IP和通道号得到索引
- int g_FunGetRecordIndex( CString sDvrIP,int nChannel )
- {
- int nRet=-1;
- for( int i=0;i<g_nRecordIndex;i++ )
- {
- if( g_RecordInfo[i].sDvsName==sDvrIP && g_RecordInfo[i].nDvrChannel==nChannel )
- {
- nRet = i;
- break;
- }
- }
- return nRet;
- }
- //消息回调处理函数
- int CALLBACK MessageCallback(LONG lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen,WORD dwLinkDVRPort)
- {
- CString csTemp;
- int i = 0;
- BOOL bDisk = FALSE;
- csTemp.Format("dwLinkDVRPor[%d]", dwLinkDVRPort);
- TRACE(csTemp);
- csTemp.Format("%s", sDVRIP);
-
- for(i=0; i<MAXIPNUMBER; i++)
- {
- if(strcmp(serverinfo[i].m_csServerIP, csTemp) == 0)
- break;
- }
- int nStartChan = serverinfo[i].m_lStartChannel;
- switch(lCommand)
- {
- case COMM_ALARM:
- NET_DVR_ALARMINFO m_alarminfo;
- memcpy(&m_alarminfo, pBuf, sizeof(NET_DVR_ALARMINFO));
- switch(m_alarminfo.dwAlarmType)
- {
- case 0:
- csTemp.Format("服务器%s发生信号量报警 报警输入%d ", sDVRIP, m_alarminfo.dwAlarmInputNumber+1);
- F_AddEvent(csTemp);
- TRACE(csTemp);
- for(i=0; i<MAX_CHANNUM; i++)
- {
- if (m_alarminfo.dwAlarmRelateChannel[i] == 1)
- {
- int nIndex = g_FunGetRecordIndex( sDVRIP,m_alarminfo.dwAlarmInputNumber );
- if( !g_RecordInfo[nIndex].bCapture && g_RecordInfo[nIndex].bHaveSignal )
- {
- if(g_NewClientDlg->F_MakeDir())
- {
- g_RecordInfo[nIndex].dwVideoStartTime = GetTickCount();
- g_RecordInfo[nIndex].dwNoMotionStartTime = GetTickCount();
-
- g_NewClientDlg->F_StartClientRecord(nIndex);
- }
- }
- else if( g_RecordInfo[nIndex].bCapture && g_RecordInfo[nIndex].bHaveSignal )
- {
- g_RecordInfo[nIndex].dwNoMotionStartTime = GetTickCount();
- }
- }
- //if (m_alarminfo.dwAlarmRelateChannel[i] == 1)
- //{
- // csTemp.Format("触发通道号%d ", i+nStartChan);
- // F_AddEvent(csTemp);
- // TRACE(csTemp);
- //}
- }
- break;
- case 1:
- for(i=0; i<MAX_DISKNUM; i++)
- {
- if(m_alarminfo.dwDiskNumber[i] == 1)
- {
- csTemp.Format("服务器%s发生硬盘满报警 硬盘号%d ", sDVRIP, i);
- F_AddEvent(csTemp);
- TRACE(csTemp);
- }
- }
-
- break;
- case 2:
- for(i=0; i<MAX_CHANNUM; i++)
- {
- if (m_alarminfo.dwChannel[i] == 1)
- {
- csTemp.Format("服务器%s发生信号丢失报警 通道号%d ", sDVRIP, i+nStartChan);
- F_AddEvent(csTemp);
- TRACE(csTemp);
- int nIndex = g_FunGetRecordIndex( sDVRIP,i );
- if( !g_RecordInfo[nIndex].bCapture && g_RecordInfo[nIndex].bHaveSignal )
- {
- if(g_NewClientDlg->F_MakeDir())
- {
- g_RecordInfo[nIndex].dwVideoStartTime = GetTickCount();
- g_RecordInfo[nIndex].dwNoMotionStartTime = GetTickCount();
-
- g_NewClientDlg->F_StartClientRecord(nIndex);
- }
- }
- else if( g_RecordInfo[nIndex].bCapture && g_RecordInfo[nIndex].bHaveSignal )
- {
- g_RecordInfo[nIndex].dwNoMotionStartTime = GetTickCount();
- }
- }
- }
-
- break;
- case 3:
- for(i=0; i<MAX_CHANNUM; i++)
- {
- //csTemp.Format("服务器%s发生移动侦测报警 通道号%d ", sDVRIP, i+nStartChan);
- //F_AddEvent(csTemp);
- //TRACE(csTemp);
-
- if( (myoutput[i].m_iPlayhandle >= 0) )
- {
- int nIndex = g_FunGetRecordIndex( sDVRIP,i );
- if( !g_RecordInfo[nIndex].bCapture && g_RecordInfo[nIndex].bHaveSignal )
- {
- if(g_NewClientDlg->F_MakeDir())
- {
- g_RecordInfo[nIndex].dwVideoStartTime = GetTickCount();
- g_RecordInfo[nIndex].dwNoMotionStartTime = GetTickCount();
-
- g_NewClientDlg->F_StartClientRecord(nIndex);
- }
- }
- else if( g_RecordInfo[nIndex].bCapture && g_RecordInfo[nIndex].bHaveSignal )
- {
- g_RecordInfo[nIndex].dwNoMotionStartTime = GetTickCount();
- }
- }
- /*if (m_alarminfo.dwChannel[i] == 1)
- {
- csTemp.Format("服务器%s发生移动侦测报警 通道号%d ", sDVRIP, i+nStartChan);
- F_AddEvent(csTemp);
- TRACE(csTemp);
-
- if( !g_NewClientDlg->m_bCapture[i] )
- {
- if( (myoutput[i].m_iPlayhandle >= 0) )
- {
- if(g_NewClientDlg->F_MakeDir())
- {
- g_NewClientDlg->F_StartClientRecord(i);
- g_NewClientDlg->m_dwNoMotionStartTime[i] = GetTickCount();
- }
- }
- }
- }*/
- }
-
- break;
- case 4:
- for(i=0; i<MAX_DISKNUM; i++)
- {
- if(m_alarminfo.dwDiskNumber[i] == 1)
- {
- csTemp.Format("服务器%s发生硬盘未格式化报警 硬盘号%d ", sDVRIP, i);
- F_AddEvent(csTemp);
- TRACE(csTemp);
- }
- }
-
- break;
- case 5:
- for(i=0; i<MAX_DISKNUM; i++)
- {
- if(m_alarminfo.dwDiskNumber[i] == 1)
- {
- bDisk = TRUE;
- csTemp.Format("服务器%s发生读写硬盘出错报警 硬盘号%d ", sDVRIP, i);
- F_AddEvent(csTemp);
- TRACE(csTemp);
- }
- }
- if (bDisk == FALSE)
- {
- csTemp.Format("服务器%s发生未接硬盘出错报警 ", sDVRIP);
- F_AddEvent(csTemp);
- TRACE(csTemp);
- }
- bDisk = FALSE;
- break;
- case 6:
- for(i=0; i<MAX_CHANNUM; i++)
- {
- if (m_alarminfo.dwChannel[i] == 1)
- {
- csTemp.Format("服务器%s发生遮挡报警 通道号%d ", sDVRIP, i+nStartChan);
- F_AddEvent(csTemp);
- TRACE(csTemp);
- int nIndex = g_FunGetRecordIndex( sDVRIP,i );
- if( !g_RecordInfo[nIndex].bCapture && g_RecordInfo[nIndex].bHaveSignal )
- {
- if(g_NewClientDlg->F_MakeDir())
- {
- g_RecordInfo[nIndex].dwVideoStartTime = GetTickCount();
- g_RecordInfo[nIndex].dwNoMotionStartTime = GetTickCount();
-
- g_NewClientDlg->F_StartClientRecord(nIndex);
- }
- }
- else if( g_RecordInfo[nIndex].bCapture && g_RecordInfo[nIndex].bHaveSignal )
- {
- g_RecordInfo[nIndex].dwNoMotionStartTime = GetTickCount();
- }
- }
- }
- break;
- case 7:
- for(i=0; i<MAX_CHANNUM; i++)
- {
- if (m_alarminfo.dwChannel[i] == 1)
- {
- csTemp.Format("服务器%s发生制式不匹配 通道号%d ", sDVRIP, i+nStartChan);
- F_AddEvent(csTemp);
- TRACE(csTemp);
- }
- }
- break;
- case 8:
- csTemp.Format("服务器%s发生非法访问 ", sDVRIP);
- F_AddEvent(csTemp);
- TRACE(csTemp);
- break;
- case 9:
- csTemp.Format("串口状态%d", m_alarminfo.dwAlarmInputNumber);
- F_AddEvent(csTemp);
- TRACE(csTemp);
- break;
- default:
- csTemp.Format("报警类型:未知 %d",m_alarminfo.dwAlarmType);
- F_AddEvent(csTemp);
- TRACE(csTemp);
- break;
- }
- if(!hBeepThread)
- {
- ResetEvent(hVideoBeeper);
- // hBeepThread = AfxBeginThread(Beeper,NULL);
- }
- csTemp.Format("%s", sDVRIP);
- for(i=0; i<16; i++)//只能对16台布防的设备显示灯
- {
- if(strcmp(serverinfo[i].m_csServerIP, csTemp) == 0)
- break;
- }
- if(i != MAX_CHANNUM)
- {
- if(ClientParam.m_iAlarmHandle[i] >= 0)
- {
- //MainDlg->m_pAlarmLed[i]->SetLed(CLed::LED_COLOR_RED,CLed::LED_ON,CLed::LED_ROUND);
- }
- else
- {
- //MainDlg->m_pAlarmLed[i]->SetLed(CLed::LED_COLOR_RED,CLed::LED_DISABLED,CLed::LED_ROUND);
- }
- }
- break;
- case COMM_TRADEINFO:
- NET_DVR_TRADEINFO m_TradeInfo;
- memcpy(&m_TradeInfo, pBuf, sizeof(NET_DVR_TRADEINFO));
- csTemp.Format("服务器%s收到卡号信息%s ", sDVRIP, m_TradeInfo.CardNumber);
- F_AddEvent(csTemp);
- TRACE(csTemp);
- break;
- default:
- break;
- }
- return 0;
- }
- /////////////////////////////////////////////////////////////////////////////
- // CNewclientDlg dialog
- CNewclientDlg::CNewclientDlg(CWnd* pParent /*=NULL*/)
- : CDialog(CNewclientDlg::IDD, pParent)
- {
- //{{AFX_DATA_INIT(CNewclientDlg)
- m_yzd = 0;
- //}}AFX_DATA_INIT
- // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
- m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- memset( g_RecordInfo,0,sizeof(RECORD_INFO)*64 );
- }
- void CNewclientDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CNewclientDlg)
- DDX_Control(pDX, IDC_COMBONETDELAY, m_NetDelayCtrl);
- DDX_Control(pDX, IDC_ALARMLED9, m_AlarmLed9);
- DDX_Control(pDX, IDC_ALARMLED8, m_AlarmLed8);
- DDX_Control(pDX, IDC_ALARMLED7, m_AlarmLed7);
- DDX_Control(pDX, IDC_ALARMLED6, m_AlarmLed6);
- DDX_Control(pDX, IDC_ALARMLED5, m_AlarmLed5);
- DDX_Control(pDX, IDC_ALARMLED4, m_AlarmLed4);
- DDX_Control(pDX, IDC_ALARMLED3, m_AlarmLed3);
- DDX_Control(pDX, IDC_ALARMLED2, m_AlarmLed2);
- DDX_Control(pDX, IDC_ALARMLED16, m_AlarmLed16);
- DDX_Control(pDX, IDC_ALARMLED15, m_AlarmLed15);
- DDX_Control(pDX, IDC_ALARMLED14, m_AlarmLed14);
- DDX_Control(pDX, IDC_ALARMLED13, m_AlarmLed13);
- DDX_Control(pDX, IDC_ALARMLED12, m_AlarmLed12);
- DDX_Control(pDX, IDC_ALARMLED11, m_AlarmLed11);
- DDX_Control(pDX, IDC_ALARMLED10, m_AlarmLed10);
- DDX_Control(pDX, IDC_ALARMLED1, m_AlarmLed1);
- DDX_Control(pDX, IDC_LED9, m_CapLed9);
- DDX_Control(pDX, IDC_LED8, m_CapLed8);
- DDX_Control(pDX, IDC_LED7, m_CapLed7);
- DDX_Control(pDX, IDC_LED6, m_CapLed6);
- DDX_Control(pDX, IDC_LED5, m_CapLed5);
- DDX_Control(pDX, IDC_LED4, m_CapLed4);
- DDX_Control(pDX, IDC_LED3, m_CapLed3);
- DDX_Control(pDX, IDC_LED2, m_CapLed2);
- DDX_Control(pDX, IDC_LED16, m_CapLed16);
- DDX_Control(pDX, IDC_LED15, m_CapLed15);
- DDX_Control(pDX, IDC_LED14, m_CapLed14);
- DDX_Control(pDX, IDC_LED13, m_CapLed13);
- DDX_Control(pDX, IDC_LED12, m_CapLed12);
- DDX_Control(pDX, IDC_LED11, m_CapLed11);
- DDX_Control(pDX, IDC_LED10, m_CapLed10);
- DDX_Control(pDX, IDC_LED1, m_CapLed1);
- DDX_Control(pDX, IDC_COMBOWNDNUM, m_windownum);
- DDX_Control(pDX, IDC_SLIDERYL, m_yl);
- DDX_Control(pDX, IDC_SLIDERSD, m_sd);
- DDX_Control(pDX, IDC_SLIDERLD, m_ld);
- DDX_Control(pDX, IDC_SLIDERDBD, m_dbd);
- DDX_Control(pDX, IDC_SLIDERBHD, m_bhd);
- DDX_Text(pDX, IDC_YZD, m_yzd);
- //}}AFX_DATA_MAP
- DDX_Control(pDX, IDC_PLAY, m_btn_Preview);
- DDX_Control(pDX, IDC_GETPICTURE, m_btn_GetPic);
- DDX_Control(pDX, IDC_SYSTEMCFG, m_btn_SetConfig);
- DDX_Control(pDX, IDC_VIDEOFILEPLAY, m_btn_Playback);
- //DDX_Control(pDX, IDC_BUTTONUP, m_Btn_Up);
- //DDX_Control(pDX, IDC_BUTTONDOWN, m_Btn_Down);
- //DDX_Control(pDX, IDC_BUTTONLEFT, m_Btn_Left);
- //DDX_Control(pDX, IDC_BUTTONRIGHT, m_Btn_Right);
- //DDX_Control(pDX, IDC_BUTTONTJLEFT, m_Btn_TJLeft);
- //DDX_Control(pDX, IDC_BUTTONTJRIGHT, m_Btn_TJRight);
- //DDX_Control(pDX, IDC_BUTTONJJLEFT, m_Btn_JJLeft);
- //DDX_Control(pDX, IDC_BUTTONJJRIGHT, m_Btn_JJRight);
- //DDX_Control(pDX, IDC_BUTTONGQLEFT, m_Btn_GQLeft);
- //DDX_Control(pDX, IDC_BUTTONGQRIGHT, m_Btn_GQRight);
- DDX_Control(pDX, IDC_BUTTONYZW, m_Btn_XZW);
- }
- BEGIN_MESSAGE_MAP(CNewclientDlg, CDialog)
- //{{AFX_MSG_MAP(CNewclientDlg)
- ON_WM_SYSCOMMAND()
- ON_WM_PAINT()
- ON_WM_QUERYDRAGICON()
- ON_BN_CLICKED(IDC_EXIT, OnExit)
- ON_BN_CLICKED(IDC_AUDIOEXCHANGE, OnAudioexchange)
- ON_BN_CLICKED(IDC_SYSTEMCFG, OnSystemcfg)
- ON_BN_CLICKED(IDC_PLAY, OnVideonetplay)
- ON_BN_CLICKED(IDC_GETPICTURE, OnGetpicture)
- ON_BN_CLICKED(IDC_RECORD, OnRecord)
- ON_BN_CLICKED(IDC_EVENTLIST, OnEventlist)
- ON_BN_CLICKED(IDC_BUTTONALARMSET, OnButtonalarmset)
- ON_BN_CLICKED(IDC_VIDEOFILEPLAY, OnVideofileplay)
- ON_WM_TIMER()
- ON_WM_HSCROLL()
- ON_BN_CLICKED(IDC_BUTTONPOLL, OnButtonpoll)
- ON_BN_CLICKED(IDC_BUTTONYZW, OnButtonyzw)
- ON_CBN_SELCHANGE(IDC_COMBOWNDNUM, OnSelchangeCombowndnum)
- ON_CBN_SELCHANGE(IDC_COMBONETDELAY, OnSelchangeCombonetdelay)
- ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
- ON_WM_MOVE()
- ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
- ON_MESSAGE(WM_MYCOMMAND,OnMyCommand)
- ON_BN_CLICKED(IDC_CRUISE, OnCruise)
- //}}AFX_MSG_MAP
- ON_BN_CLICKED(IDC_BUTTONUP, OnBnClickedButtonup)
- ON_BN_CLICKED(IDC_BUTTONDOWN, OnBnClickedButtondown)
- ON_WM_CTLCOLOR()
- ON_WM_ERASEBKGND()
- ON_WM_LBUTTONUP()
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- //wParam: 消息类型 lParam: 发生异常的索引值。
- LRESULT CNewclientDlg::OnMyCommand(WPARAM wParam, LPARAM lParam)
- {
- char tempbuf[256];
- int i = 0;
- DWORD dwType = wParam; //异常类型
- LONG lIndex = lParam; //相对应得操作返回的句柄
- ZeroMemory(tempbuf,256);
- switch(dwType)
- {
- case EXCEPTION_AUDIOEXCHANGE: //语音对讲时网络异常
- sprintf(tempbuf,"语音对讲时网络异常!!!");
- TRACE("%s",tempbuf);
- if(lVoiceIndex != -1)
- {
- if(lIndex == lVoiceIndex)
- {
- if(NET_DVR_StopVoiceCom(lVoiceIndex))
- {
- GetDlgItem(IDC_AUDIOEXCHANGE)->SetWindowText("语音对讲");
- lVoiceIndex = -1;
- }
- else
- {
- MessageBox("停止语音对讲失败!", "温馨提示", MB_ICONINFORMATION);
- }
- }
- }
- break;
- case EXCEPTION_ALARM: //报警上传时网络异常
- sprintf(tempbuf,"报警上传时网络异常!!!");
- TRACE("%s",tempbuf);
- for(i = 0; i < MAXIPNUMBER; i++)
- {
- if(ClientParam.m_iAlarmHandle[i] >= 0)
- {
- if(lIndex == ClientParam.m_iAlarmHandle[i])
- {
- if(NET_DVR_CloseAlarmChan(ClientParam.m_iAlarmHandle[i]))
- {
- ClientParam.m_iAlarmHandle[i] = -1;
- }
- else
- {
- CString sTemp;
- sTemp.Format("%s报警撤防失败!",serverinfo[i].m_csServerName);
- MessageBox(sTemp, "温馨提示", MB_ICONINFORMATION);
- }
- //m_pAlarmLed[i]->SetLed(CLed::LED_COLOR_GREEN,CLed::LED_DISABLED,CLed::LED_ROUND);
- }
- }
- }
- break;
- case EXCEPTION_PREVIEW: //网络预览时异常
- sprintf(tempbuf,"网络预览时网络异常!!!");
- TRACE("%s",tempbuf);
- if(ClientParam.m_bPlaying)
- {
- for(i = 0; i < MAXVIEWNUM; i++)
- {
- if(lIndex == myoutput[i].m_iPlayhandle)
- {
- if(myoutput[i].m_bFileSave)
- {
- F_StopClientRecord(i);
- }
- myoutput[i].StopNet();
- }
- }
- }
- break;
- case EXCEPTION_SERIAL: //透明通道传输时异常
- sprintf(tempbuf,"透明通道传输时网络异常!!!");
- TRACE("%s",tempbuf);
- //TODO: 关闭透明通道
- break;
- case EXCEPTION_RECONNECT: //预览的时候重连
- sprintf(tempbuf,"预览时网络重连!!!");
- TRACE("%s",tempbuf);
- break;
- default:
- break;
- }
- return 0L;
- }
- // CNewclientDlg message handlers
- BOOL CNewclientDlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
- // Add "About..." menu item to system menu.
- // Set the icon for this dialog. The framework does this automatically
- // when the application's main window is not a dialog
- //SetIcon(m_hIcon, TRUE); // Set big icon
- //SetIcon(m_hIcon, FALSE); // Set small icon
- CRect rc( 0,0,g_nFrameWeight,g_nFrameHeight );
- this->MoveWindow( rc );
- //调整控件位置
- SetPos();
- short shBtnColor = 30;
- m_btn_Preview.SetIcon(IDI_PREVIEW);
- //m_btn_Preview.SetTooltipText(_T("预览视频"));
- m_btn_Preview.DrawTransparent(TRUE);
- m_btn_GetPic.SetIcon(IDI_SAVEPIC);
- //m_btn_GetPic.SetTooltipText(_T("保存图片"));
- m_btn_GetPic.DrawTransparent(TRUE);
- m_btn_SetConfig.SetIcon(IDI_SETCONFIG);
- //m_btn_SetConfig.SetTooltipText(_T("系统配置"));
- m_btn_SetConfig.DrawTransparent(TRUE);
- m_btn_Playback.SetIcon(IDI_PLAYBACK);//, (int)BTNST_AUTO_GRAY);
- //m_btn_Playback.SetTooltipText(_T("视频回放"));
- m_btn_Playback.DrawTransparent(TRUE);
- TRACE("\nCurrent SDK Version is 0x%08x\n", NET_DVR_GetSDKBuildVersion());
- // TODO: Add extra initialization here
- int i,j;
- CString sTemp;
- NET_DVR_DEVICEINFO DeviceInfo;
- LONG lUserID = 0;
- char csServerIP[16];
- char cUserName[100];
- char cPassword[100];
- BOOL bLogin = FALSE;
- char cTemp[100];
- DWORD dwReturned = 0;
- m_PTZTesttimer = 0;
- nUseCard =0;
- m_byException = 0;
- hBrush=::CreateSolidBrush(COLORREF(0xff0000));
- ZeroMemory(cWorkDir, 256);
- GetCurrentDirectory(256, cWorkDir);
- TRACE("cWordDir = %s", cWorkDir);
-
- CStoneU_HC_OCXApp* pApp = (CStoneU_HC_OCXApp*)AfxGetApp();
- m_iHardDriverNum = pApp->m_iDriverNum;
- for(i = 0; i < m_iHardDriverNum; i++)
- {
- m_cHardDriver[i] = pApp->m_cHardDriver[i];
- }
- ClientParam.m_bCheckServerTime = FALSE;
- ClientParam.m_iCheckServerTime = 0;
- for(i = 0; i < MAXIPNUMBER; i++)
- {
- serverinfo[i].m_csServerName.Format(_T(""));
- serverinfo[i].m_iServerChannelNumber = -1;
- serverinfo[i].m_wServerPort = 8000;
- serverinfo[i].m_lServerID = -1;
- serverinfo[i].m_dwDevSoftVersion = 0;
- for(j = 0; j < MAXCHANNUM; j++)
- {
- allipinfo[i][j].m_lServerID = -1;
- allipinfo[i][j].m_iChannel = -1;
- allipinfo[i][j].m_iServerNum = -1;
- allipinfo[i][j].m_iChannelNum = -1;
- allipinfo[i][j].m_wServerport = 8000;
- allipinfo[i][j].m_bChoosed = FALSE;
- allipinfo[i][j].m_iSequence = -1;
- }
- }
- for(i=0; i<10; i++)
- {
- cTemp[i] = i;
- }
-
- ReadSurveillanceConfig();
- for(i=0; i<MAXIPNUMBER; i++)
- {
- if(serverinfo[i].m_iServerChannelNumber >= 0)
- {
- strcpy(csServerIP, serverinfo[i].m_csServerIP);
- strncpy(cUserName, serverinfo[i].m_csServerAdminName, MAX_NAMELEN);
- strncpy(cPassword, serverinfo[i].m_csServerAdminPasswd, PASSWD_LEN);
- lUserID = NET_DVR_Login(csServerIP, serverinfo[i].m_wServerPort, cUserName, cPassword, &DeviceInfo);
- if(lUserID < 0)
- {
- CString sTemp;
- int nErr = NET_DVR_GetLastError();
- if(nErr == NET_DVR_PASSWORD_ERROR)
- {
- sTemp.Format("%s 用户名密码错误! ", csServerIP);
- TRACE(sTemp);
- MessageBox(sTemp, "温馨提示", MB_ICONINFORMATION);
- }
- //TODO: 其他错误值
- else
- {
- sTemp.Format("%s 由于网络原因或DVR忙, 注册失败! ", csServerIP);
- TRACE(sTemp);
- MessageBox(sTemp, "温馨提示", MB_ICONINFORMATION);
- }
- }
- else
- {
- NET_DVR_DEVICECFG DeviceCfg;
- if (!NET_DVR_GetDVRConfig(lUserID, NET_DVR_GET_DEVICECFG, 0, &DeviceCfg, sizeof(DeviceCfg), &dwReturned))
- {
- sTemp.Format("%s 获取设备参数失败! ", csServerIP);
- TRACE(sTemp);
- MessageBox(sTemp, "温馨提示", MB_ICONINFORMATION);
- }
- else
- {
- serverinfo[i].m_dwDevSoftVersion = DeviceCfg.dwSoftwareVersion;
- }
- bLogin = TRUE;
- serverinfo[i].m_lServerID = lUserID;
- serverinfo[i].m_wServerType = DeviceInfo.byDVRType;
- serverinfo[i].m_lStartChannel = DeviceInfo.byStartChan;
- serverinfo[i].m_dwAlarmInNum = DeviceInfo.byAlarmInPortNum;
- serverinfo[i].m_dwAlarmOutNum = DeviceInfo.byAlarmOutPortNum;
- serverinfo[i].m_iServerChannelNumber = DeviceInfo.byChanNum;
- serverinfo[i].m_dwDiskNum = DeviceInfo.byDiskNum;
- ZeroMemory(cTemp, 100);
- memcpy(cTemp, DeviceInfo.sSerialNumber, SERIALNO_LEN);
- serverinfo[i].m_csSerialNumber.Format("%s", cTemp);
-
- for(j = 0; j < MAXCHANNUM; j++)
- {
- if(j < DeviceInfo.byChanNum)
- {
- allipinfo[i][j].m_lServerID = lUserID;
- allipinfo[i][j].m_csChanName.Format("通道%d",(j+DeviceInfo.byStartChan));
- allipinfo[i][j].m_iChannel = j+DeviceInfo.byStartChan;
- if( (allipinfo[i][j].m_bChoosed) && (allipinfo[i][j].m_iSequence != -1) )
- {
- selipinfo[allipinfo[i][j].m_iSequence].m_bChoosed = allipinfo[i][j].m_bChoosed;
- selipinfo[allipinfo[i][j].m_iSequence].m_csChanName = allipinfo[i][j].m_csChanName;
- selipinfo[allipinfo[i][j].m_iSequence].m_csIP = allipinfo[i][j].m_csIP;
- selipinfo[allipinfo[i][j].m_iSequence].m_csMultiIP = allipinfo[i][j].m_csMultiIP;
- selipinfo[allipinfo[i][j].m_iSequence].m_csPassword = allipinfo[i][j].m_csPassword;
- selipinfo[allipinfo[i][j].m_iSequence].m_csUser = allipinfo[i][j].m_csUser;
- selipinfo[allipinfo[i][j].m_iSequence].m_dwAddress = allipinfo[i][j].m_dwAddress;
- selipinfo[allipinfo[i][j].m_iSequence].m_dwAlarmlevel = allipinfo[i][j].m_dwAlarmlevel;
- selipinfo[allipinfo[i][j].m_iSequence].m_dwIPvalue = allipinfo[i][j].m_dwIPvalue;
- selipinfo[allipinfo[i][j].m_iSequence].m_dwMultiIPvalue = allipinfo[i][j].m_dwMultiIPvalue;
- selipinfo[allipinfo[i][j].m_iSequence].m_dwProtocol = allipinfo[i][j].m_dwProtocol;
- selipinfo[allipinfo[i][j].m_iSequence].m_iChannel = allipinfo[i][j].m_iChannel;
- selipinfo[allipinfo[i][j].m_iSequence].m_iSequence = allipinfo[i][j].m_iSequence;
- selipinfo[allipinfo[i][j].m_iSequence].m_lServerID = allipinfo[i][j].m_lServerID;
- selipinfo[allipinfo[i][j].m_iSequence].m_wJMQtype = allipinfo[i][j].m_wJMQtype;
- selipinfo[allipinfo[i][j].m_iSequence].m_wServerport = allipinfo[i][j].m_wServerport;
- selipinfo[allipinfo[i][j].m_iSequence].m_iServerNum = i;
- selipinfo[allipinfo[i][j].m_iSequence].m_iChannelNum = j;
- iSurveillanceNumber++;
- //TRACE("m_iSequence = %d csServerIP = %s m_lServerID = %d", allipinfo[i][j].m_iSequence, selipinfo[allipinfo[i][j].m_iSequence].m_csIP, selipinfo[allipinfo[i][j].m_iSequence].m_lServerID);
- }
- }
- else
- {
- allipinfo[i][j].m_lServerID = -1;
- allipinfo[i][j].m_csChanName.Format("");
- allipinfo[i][j].m_iChannel = -1;
- }
- }
- }
- }
- }
- ClientParam.m_bCyclePlay = FALSE;
- ClientParam.m_iCycleTime = 20;
- ClientParam.m_bUseCard = FALSE;
- ClientParam.m_bNTSC = FALSE;
- ClientParam.m_bAutoRecord = FALSE;
- ClientParam.m_bCycleRecord = FALSE;
- ClientParam.m_iRecordFileInterval = 60;
- ClientParam.m_iStartRecordDriver = 1;
- ClientParam.m_iEndRecordDriver = m_iHardDriverNum - 1;
- ClientParam.m_csDownLoadPath.Format(_T("D:\\DownLoad"));
- ClientParam.m_csPictureSavePath.Format(_T("D:\\Picture"));
- ClientParam.m_csLogSavePath.Format(_T("D:\\EventLog"));
- sTemp.Format("%s\\", ClientParam.m_csDownLoadPath);
- CreateDirectory(sTemp, NULL);
- sTemp.Format("%s\\", ClientParam.m_csPictureSavePath);
- CreateDirectory(sTemp, NULL);
- sTemp.Format("%s\\", ClientParam.m_csLogSavePath);
- CreateDirectory(sTemp, NULL);
- for(i = 0; i < 7; i++)
- {
- for(j = 0; j < 4; j++)
- {
- ClientParam.m_ClientRecordTime[i][j].m_iStartHour = 0;
- ClientParam.m_ClientRecordTime[i][j].m_iStartMinute = 0;
- ClientParam.m_ClientRecordTime[i][j].m_iStartTime = 0;
- ClientParam.m_ClientRecordTime[i][j].m_iStopHour = 0;
- ClientParam.m_ClientRecordTime[i][j].m_iStopMinute = 0;
- ClientParam.m_ClientRecordTime[i][j].m_iStopTime = 0;
- }
- }
- ClientParam.m_bAllDiskFull = FALSE;
- ClientParam.m_bPlaying = FALSE;
- ClientParam.m_bCycling = FALSE;
- ClientParam.m_bNextPage = FALSE;
- ClientParam.m_bFrontPage = FALSE;
- ClientParam.m_bEnlarged = FALSE;
- ClientParam.m_bFullScreen = FALSE;
- ClientParam.m_bMultiScreen = FALSE;
- for(i = 0; i < MAXIPNUMBER; i++)
- ClientParam.m_iAlarmHandle[i] = -1;
- for(i = 0; i < MAXVIEWNUM; i++)
- {
- ClientParam.m_VideoInfo[i].m_iBrightness = DEFAULTBRIGHTNESS;
- ClientParam.m_VideoInfo[i].m_iContrast = DEFAULTCONTRAST;
- ClientParam.m_VideoInfo[i].m_iSaturation = DEFAULTSATURATION;
- ClientParam.m_VideoInfo[i].m_iHue = DEFAULTHUE;
- }
- ClientParam.m_Volume = DEFAULTVOLUME;
- ReadClientConfig();
-
- m_cCurrentRecordDriver = m_cHardDriver[ClientParam.m_iStartRecordDriver];
- autorecordtimer = 0;
- autorecordtimer = SetTimer(AUTORECORD_TIMER, 2000, NULL);
- if(ClientParam.m_bCheckServerTime)
- {
- TRACE("启动硬盘录像机校时时钟,校时时间是每天的%06d", ClientParam.m_iCheckServerTime);
- checkservertimer = 0;
- checkservertimer = SetTimer(CHECKSERVER_TIMER, 1000, NULL);
- }
- for(i = 0; i < MAXALARMIN; i++)
- {
- alarminfo[i].m_csIP.Format(_T(""));
- alarminfo[i].m_csUsername.Format(_T(""));
- alarminfo[i].m_csPassword.Format(_T(""));
- alarminfo[i].m_lServerID = -1;
- alarminfo[i].m_iChannel = -1;
- alarminfo[i].m_iAlarmLevel = -1;
- alarminfo[i].m_iAlarmType = -1;
- alarminfo[i].m_iPortIndex = -1;
- alarminfo[i].m_wServerPort = 8000;
- }
- m_iAlarmNumber = 0;
-
- m_ld.SetRange(1,10,TRUE);
- m_sd.SetRange(1,10,TRUE);
- m_bhd.SetRange(1,10,TRUE);
- m_dbd.SetRange(1,10,TRUE);
- m_yl.SetRange(1,100,TRUE);
- m_ld.SetPos(DEFAULTBRIGHTNESS);
- m_sd.SetPos(DEFAULTHUE);
- m_bhd.SetPos(DEFAULTSATURATION);
- m_dbd.SetPos(DEFAULTCONTRAST);
- m_yl.SetPos(DEFAULTVOLUME);
-
- m_mybuttonup.SubclassDlgItem(IDC_BUTTONUP,this);
- m_mybuttondown.SubclassDlgItem(IDC_BUTTONDOWN,this);
- m_mybuttonleft.SubclassDlgItem(IDC_BUTTONLEFT,this);
- m_mybuttonright.SubclassDlgItem(IDC_BUTTONRIGHT,this);
- m_mybuttontjright.SubclassDlgItem(IDC_BUTTONTJRIGHT,this);
- m_mybuttontjleft.SubclassDlgItem(IDC_BUTTONTJLEFT,this);
- m_mybuttonjjleft.SubclassDlgItem(IDC_BUTTONJJLEFT,this);
- m_mybuttonjjright.SubclassDlgItem(IDC_BUTTONJJRIGHT,this);
- m_mybuttongqleft.SubclassDlgItem(IDC_BUTTONGQLEFT,this);
- m_mybuttongqright.SubclassDlgItem(IDC_BUTTONGQRIGHT,this);
-
- InitLed();
- m_iSubWndCreated = 0;
- for (i=0;i<MAXVIEWNUM;i++)
- {
- myoutput[i].Create(IDD_MYOUTPUT,this);
- }
- m_windownum.SetCurSel(1);
-
- //初始化窗口个数
- if( iSurveillanceNumber<=1 )
- WINDOWNUM = 1;
- else if( iSurveillanceNumber>=2 && iSurveillanceNumber<=4 )
- WINDOWNUM = 4;
- else if( iSurveillanceNumber>=5 && iSurveillanceNumber<=9 )
- WINDOWNUM = 9;
- else if( iSurveillanceNumber>=10 && iSurveillanceNumber<=16 )
- WINDOWNUM = 16;
- else if( iSurveillanceNumber>=17 && iSurveillanceNumber<=33 )
- WINDOWNUM = 33;
- else if( iSurveillanceNumber>=34 && iSurveillanceNumber<=64 )
- WINDOWNUM = 64;
- channelcount = 0;
- if(ClientParam.m_bUseCard)
- {
- F_InitDecodeCard();
- }
- mycurwin.Create(IDD_CURWIN,this);
- ArrayWindow(0,WINDOWNUM);
- MoveCurWin(WINDOWNUM,0);
-
- hVideoBeeper=NULL; //报警事件
- hBeepThread=NULL; //报警线程
- hVideoBeeper = ::CreateEvent(NULL, // no security attributes
- TRUE, // auto-reset event
- FALSE, // initial state is signaled
- NULL // object name
- );
- ResetEvent(hVideoBeeper);
-
- freespacetimer = 0;
- freespacetimer = SetTimer(FREESPACE_TIMER, 5000, NULL);
- fileintervaltimer = 0;
- fileintervaltimer = SetTimer(FILEINTERVAL_TIMER, 2000, NULL);
- //SDK中收到DVR发过来的信息需要上传的通过回调函数实现,比如报警信息,日志信息等。
- NET_DVR_SetDVRMessCallBack_NEW(MessageCallback);
- //SDK中检测到异常通过消息的方式上传,比如网络断开
- NET_DVR_SetDVRMessage(WM_MYCOMMAND, this->m_hWnd);
- // 设置连接的超时设置
- NET_DVR_SetConnectTime(5000,1);
- //7200端口是监听端口
- if(!NET_DVR_StartListen(NULL,7200))
- {
- CString sTemp;
- sTemp.Format("ERROR: NET_DVR_StartListen = %d \n", NET_DVR_GetLastError());
- MessageBox(sTemp, "温馨提示", MB_ICONINFORMATION);
- }
- cycletimer = 0;
- m_NetDelayCtrl.SetCurSel(g_nNetDelay);
- //预览,布防
- OnVideonetplay();
-
- SetTimer(55, 2000, NULL);
- g_NewClientDlg = this;
- MainDlg = this;
- CRect rc1,rc2;
- GetDlgItem(IDC_STATIC4)->GetWindowRect(rc1);
- GetDlgItem(IDC_VEDIO_SHOW)->GetWindowRect(rc2);
- //this->MoveWindow( CRect( 0,0,rc1.right,rc2.bottom ) );
-
- return TRUE; // return TRUE unless you set the focus to a control
- }
- void CNewclientDlg::SetPos()
- {
- CRect rMain;
- this->GetWindowRect( rMain );
- ScreenToClient( &rMain );
- int W=0,H=0;
- CRect rcSta2;
- GetDlgItem(IDC_STATIC2)->GetWindowRect( rcSta2 );
- W = rcSta2.Width();
- H = rcSta2.Height();
- rcSta2.right = rMain.right-10;
- rcSta2.left = rcSta2.right-W ;
- rcSta2.top = rMain.top+10;
- rcSta2.bottom = rcSta2.top+H;
- GetDlgItem(IDC_STATIC2)->MoveWindow( rcSta2 );
- CRect rcGrid1;
- GetDlgItem(IDC_STA_GRID1)->GetWindowRect( rcGrid1 );
- W = rcGrid1.Width();
- H = rcGrid1.Height();
- rcGrid1.left = rcSta2.left+7 ;
- rcGrid1.right = rcGrid1.left+W;
- rcGrid1.top = rcSta2.top+13;
- rcGrid1.bottom = rcGrid1.top+H;
- GetDlgItem(IDC_STA_GRID1)->MoveWindow( rcGrid1 );
-
- CRect rcGrid2;
- rcGrid2.left = rcGrid1.right+2 ;
- rcGrid2.right = rcGrid2.left+W;
- rcGrid2.top = rcGrid1.top;
- rcGrid2.bottom = rcGrid1.bottom;
- GetDlgItem(IDC_STA_GRID2)->MoveWindow( rcGrid2 );
- CRect rcGrid3;
- rcGrid3.left = rcGrid2.right+2 ;
- rcGrid3.right = rcGrid3.left+W;
- rcGrid3.top = rcGrid2.top;
- rcGrid3.bottom = rcGrid2.bottom;
- GetDlgItem(IDC_STA_GRID3)->MoveWindow( rcGrid3 );
- CRect rcGrid4;
- rcGrid4.left = rcSta2.left+7 ;
- rcGrid4.right = rcGrid4.left+W;
- rcGrid4.top = rcGrid1.bottom+2;
- rcGrid4.bottom = rcGrid4.top+H;
- GetDlgItem(IDC_STA_GRID4)->MoveWindow( rcGrid4 );
- CRect rcGrid5;
- rcGrid5.left = rcGrid4.right+2 ;
- rcGrid5.right = rcGrid5.left+W;
- rcGrid5.top = rcGrid4.top;
- rcGrid5.bottom = rcGrid4.bottom;
- GetDlgItem(IDC_STA_GRID5)->MoveWindow( rcGrid5 );
- CRect rcGrid6;
- rcGrid6.left = rcGrid5.right+2 ;
- rcGrid6.right = rcGrid6.left+W;
- rcGrid6.top = rcGrid4.top;
- rcGrid6.bottom = rcGrid4.bottom;
- GetDlgItem(IDC_STA_GRID6)->MoveWindow( rcGrid6 );
- ////////////////////
- CRect rcSta17;
- GetDlgItem(IDC_STATIC17)->GetWindowRect( rcSta17 );
- W = rcSta17.Width();
- H = rcSta17.Height();
- rcSta17.right = rcSta2.right;
- rcSta17.left = rcSta2.left ;
- rcSta17.top = rcSta2.bottom+10;
- rcSta17.bottom = rcSta17.top+H;
- GetDlgItem(IDC_STATIC17)->MoveWindow( rcSta17 );
- CRect rcBtnPlay;
- GetDlgItem(IDC_PLAY)->GetWindowRect( rcBtnPlay );
- W = rcBtnPlay.Width();
- H = rcBtnPlay.Height();
- rcBtnPlay.left = rcSta17.left+3 ;
- rcBtnPlay.right = rcSta17.right-3;
- rcBtnPlay.top = rcSta17.top+10;
- rcBtnPlay.bottom = rcBtnPlay.top+H;
- GetDlgItem(IDC_PLAY)->MoveWindow( rcBtnPlay );
- CRect rcBtnGetPic;
- rcBtnGetPic.left = rcSta17.left+3 ;
- rcBtnGetPic.right = rcSta17.right-3;
- rcBtnGetPic.top = rcBtnPlay.bottom+2;
- rcBtnGetPic.bottom = rcBtnGetPic.top+H;
- GetDlgItem(IDC_GETPICTURE)->MoveWindow( rcBtnGetPic );
- CRect rcBtnSet;
- rcBtnSet.left = rcSta17.left+3 ;
- rcBtnSet.right = rcSta17.right-3;
- rcBtnSet.top = rcBtnGetPic.bottom+2;
- rcBtnSet.bottom = rcBtnSet.top+H;
- GetDlgItem(IDC_SYSTEMCFG)->MoveWindow( rcBtnSet );
- CRect rcBtnPlayBack;
- rcBtnPlayBack.left = rcSta17.left+3 ;
- rcBtnPlayBack.right = rcSta17.right-3;
- rcBtnPlayBack.top = rcBtnSet.bottom+2;
- rcBtnPlayBack.bottom = rcBtnPlayBack.top+H;
- GetDlgItem(IDC_VIDEOFILEPLAY)->MoveWindow( rcBtnPlayBack );
- ////////////////
- CRect rcSta4;
- GetDlgItem(IDC_STATIC4)->GetWindowRect( rcSta4 );
- W = rcSta4.Width();
- H = rcSta4.Height();
- rcSta4.right = rcSta2.right;
- rcSta4.left = rcSta2.left ;
- rcSta4.top = rcSta17.bottom+10;
- rcSta4.bottom = rcSta4.top+H;
- GetDlgItem(IDC_STATIC4)->MoveWindow( rcSta4 );
- CRect rcBtnUp;
- GetDlgItem(IDC_BUTTONUP)->GetWindowRect( rcBtnUp );
- W = rcBtnUp.Width();
- H = rcBtnUp.Height();
- rcBtnUp.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
- rcBtnUp.right = rcBtnUp.left+W;
- rcBtnUp.top = rcSta4.top+15;
- rcBtnUp.bottom = rcBtnUp.top+H;
- GetDlgItem(IDC_BUTTONUP)->MoveWindow( rcBtnUp );
- CRect rcSta5;
- GetDlgItem(IDC_STATIC5)->GetWindowRect( rcSta5 );
- W = rcSta5.Width();
- H = rcSta5.Height();
- rcSta5.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
- rcSta5.right = rcBtnUp.left+W;
- rcSta5.top = rcBtnUp.bottom+5;
- rcSta5.bottom = rcSta5.top+H;
- GetDlgItem(IDC_STATIC5)->MoveWindow( rcSta5 );
- CRect rcBtnDown;
- GetDlgItem(IDC_BUTTONDOWN)->GetWindowRect( rcBtnDown );
- W = rcBtnDown.Width();
- H = rcBtnDown.Height();
- rcBtnDown.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
- rcBtnDown.right = rcBtnDown.left+W;
- rcBtnDown.top = rcSta5.bottom+5;
- rcBtnDown.bottom = rcBtnDown.top+H;
- GetDlgItem(IDC_BUTTONDOWN)->MoveWindow( rcBtnDown );
- CRect rcBtnLeft;
- GetDlgItem(IDC_BUTTONLEFT)->GetWindowRect( rcBtnLeft );
- W = rcBtnLeft.Width();
- H = rcBtnLeft.Height();
- rcBtnLeft.right = rcSta5.left-10;
- rcBtnLeft.left = rcBtnLeft.right-W;
- rcBtnLeft.top = rcSta5.top+0;
- rcBtnLeft.bottom = rcBtnLeft.top+H;
- GetDlgItem(IDC_BUTTONLEFT)->MoveWindow( rcBtnLeft );
- CRect rcBtnRight;
- GetDlgItem(IDC_BUTTONRIGHT)->GetWindowRect( rcBtnRight );
- W = rcBtnRight.Width();
- H = rcBtnRight.Height();
- rcBtnRight.left = rcSta5.right+10;
- rcBtnRight.right = rcBtnRight.left+W;
- rcBtnRight.top = rcSta5.top+0;
- rcBtnRight.bottom = rcBtnLeft.top+H;
- GetDlgItem(IDC_BUTTONRIGHT)->MoveWindow( rcBtnRight );
- CRect rcSta6;
- GetDlgItem(IDC_STATIC6)->GetWindowRect( rcSta6 );
- W = rcSta6.Width();
- H = rcSta6.Height();
- rcSta6.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
- rcSta6.right = rcSta6.left+W;
- rcSta6.top = rcBtnDown.bottom+20;
- rcSta6.bottom = rcSta6.top+H;
- GetDlgItem(IDC_STATIC6)->MoveWindow( rcSta6 );
- CRect rcBtnJLLeft;
- GetDlgItem(IDC_BUTTONTJLEFT)->GetWindowRect( rcBtnJLLeft );
- W = rcBtnJLLeft.Width();
- H = rcBtnJLLeft.Height();
- rcBtnJLLeft.right = rcSta6.left-10;
- rcBtnJLLeft.left = rcBtnJLLeft.right-W;
- rcBtnJLLeft.top = rcSta6.top;
- rcBtnJLLeft.bottom = rcBtnJLLeft.top+H;
- GetDlgItem(IDC_BUTTONTJLEFT)->MoveWindow( rcBtnJLLeft );
- CRect rcBtnJLRight;
- GetDlgItem(IDC_BUTTONTJRIGHT)->GetWindowRect( rcBtnJLRight );
- W = rcBtnJLRight.Width();
- H = rcBtnJLRight.Height();
- rcBtnJLRight.left = rcSta6.right+10;
- rcBtnJLRight.right = rcBtnJLRight.left+W;
- rcBtnJLRight.top = rcSta6.top;
- rcBtnJLRight.bottom = rcBtnJLRight.top+H;
- GetDlgItem(IDC_BUTTONTJRIGHT)->MoveWindow( rcBtnJLRight );
- CRect rcSta7;
- GetDlgItem(IDC_STATIC7)->GetWindowRect( rcSta7 );
- W = rcSta7.Width();
- H = rcSta7.Height();
- rcSta7.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
- rcSta7.right = rcSta7.left+W;
- rcSta7.top = rcSta6.bottom+10;
- rcSta7.bottom = rcSta7.top+H;
- GetDlgItem(IDC_STATIC7)->MoveWindow( rcSta7 );
- CRect rcBtnOJJLeft;
- GetDlgItem(IDC_BUTTONJJLEFT)->GetWindowRect( rcBtnOJJLeft );
- W = rcBtnOJJLeft.Width();
- H = rcBtnOJJLeft.Height();
- rcBtnOJJLeft.right = rcSta7.left-10;
- rcBtnOJJLeft.left = rcBtnOJJLeft.right-W;
- rcBtnOJJLeft.top = rcSta7.top;
- rcBtnOJJLeft.bottom = rcBtnOJJLeft.top+H;
- GetDlgItem(IDC_BUTTONJJLEFT)->MoveWindow( rcBtnOJJLeft );
- CRect rcBtnJJRight;
- GetDlgItem(IDC_BUTTONJJRIGHT)->GetWindowRect( rcBtnJJRight );
- W = rcBtnJJRight.Width();
- H = rcBtnJJRight.Height();
- rcBtnJJRight.left = rcSta7.right+10;
- rcBtnJJRight.right = rcBtnJJRight.left+W;
- rcBtnJJRight.top = rcSta7.top;
- rcBtnJJRight.bottom = rcBtnJJRight.top+H;
- GetDlgItem(IDC_BUTTONJJRIGHT)->MoveWindow( rcBtnJJRight );
- CRect rcSta8;
- GetDlgItem(IDC_STATIC8)->GetWindowRect( rcSta8 );
- W = rcSta8.Width();
- H = rcSta8.Height();
- rcSta8.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
- rcSta8.right = rcSta8.left+W;
- rcSta8.top = rcSta7.bottom+10;
- rcSta8.bottom = rcSta8.top+H;
- GetDlgItem(IDC_STATIC8)->MoveWindow( rcSta8 );
- CRect rcBtnOGQLeft;
- GetDlgItem(IDC_BUTTONGQLEFT)->GetWindowRect( rcBtnOGQLeft );
- W = rcBtnOGQLeft.Width();
- H = rcBtnOGQLeft.Height();
- rcBtnOGQLeft.right = rcSta8.left-10;
- rcBtnOGQLeft.left = rcBtnOGQLeft.right-W;
- rcBtnOGQLeft.top = rcSta8.top;
- rcBtnOGQLeft.bottom = rcBtnOGQLeft.top+H;
- GetDlgItem(IDC_BUTTONGQLEFT)->MoveWindow( rcBtnOGQLeft );
- CRect rcBtnGQRight;
- GetDlgItem(IDC_BUTTONGQRIGHT)->GetWindowRect( rcBtnGQRight );
- W = rcBtnGQRight.Width();
- H = rcBtnGQRight.Height();
- rcBtnGQRight.left = rcSta8.right+10;
- rcBtnGQRight.right = rcBtnGQRight.left+W;
- rcBtnGQRight.top = rcSta8.top;
- rcBtnGQRight.bottom = rcBtnGQRight.top+H;
- GetDlgItem(IDC_BUTTONGQRIGHT)->MoveWindow( rcBtnGQRight );
- CRect rcEditYZD;
- GetDlgItem(IDC_YZD)->GetWindowRect( rcEditYZD );
- W = rcEditYZD.Width();
- H = rcEditYZD.Height();
- rcEditYZD.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
- rcEditYZD.right = rcEditYZD.left+W;
- rcEditYZD.top = rcBtnGQRight.bottom+20;
- rcEditYZD.bottom = rcEditYZD.top+H;
- GetDlgItem(IDC_YZD)->MoveWindow( rcEditYZD );
- CRect rcBtnYZW;
- GetDlgItem(IDC_BUTTONYZW)->GetWindowRect( rcBtnYZW );
- W = rcBtnYZW.Width();
- H = rcBtnYZW.Height();
- rcBtnYZW.left = rcSta4.left+rcSta4.Width()/2-W/2 ;
- rcBtnYZW.right = rcBtnYZW.left+W;
- rcBtnYZW.top = rcEditYZD.bottom+3;
- rcBtnYZW.bottom = rcBtnYZW.top+H;
- GetDlgItem(IDC_BUTTONYZW)->MoveWindow( rcBtnYZW );
- CRect rcStaShow;
- rcStaShow.left = 10;
- rcStaShow.right = rcSta2.left-5;;
- rcStaShow.top = 0;
- rcStaShow.bottom = rMain.bottom-10;
- GetDlgItem(IDC_VEDIO_SHOW)->MoveWindow( rcStaShow );
- }
- void CNewclientDlg::SetAlarm()
- {
- int imageindex,selectindex;
- int ipnum;
- CString sTemp;
- int nIndex=0;
-
- for(int i = 0; i < MAXIPNUMBER; i++)
- {
- if(serverinfo[i].m_iServerChannelNumber >= 0)
- {
- //是否有信号
- NET_DVR_WORKSTATE WorkState;
- if(!NET_DVR_GetDVRWorkState(i, &WorkState))
- {
- //CString sTemp;
- //sTemp.Format("ERROR: NET_DVR_GetDVRWorkState = %d \n", NET_DVR_GetLastError());
- //TRACE(sTemp);
- //AfxMessageBox("获取设备状态失败!");
- //return;
- }
- for(int k=0; k<serverinfo[i].m_iServerChannelNumber; k++)
- {
- nIndex = g_FunGetRecordIndex( serverinfo[i].m_csServerIP,k );
- if( nIndex==-1 )//不存在
- {
- if(WorkState.struChanStatic[k].bySignalStatic == 0)
- {
- memcpy( g_RecordInfo[g_nRecordIndex].sDvsName,serverinfo[i].m_csServerIP,serverinfo[i].m_csServerIP.GetLength() );
- g_RecordInfo[g_nRecordIndex].nDvrChannel = k;
- g_RecordInfo[g_nRecordIndex].bHaveSignal = true;
- g_nRecordIndex++;
- }
- else if(WorkState.struChanStatic[k].bySignalStatic == 1)
- {
- memcpy( g_RecordInfo[g_nRecordIndex].sDvsName,serverinfo[i].m_csServerIP,serverinfo[i].m_csServerIP.GetLength() );
- g_RecordInfo[g_nRecordIndex].nDvrChannel = k;
- g_RecordInfo[g_nRecordIndex].bHaveSignal = false;
- g_nRecordIndex++;
- }
- }
- else//存在
- {
- if(WorkState.struChanStatic[k].bySignalStatic == 0)
- {
- g_RecordInfo[nIndex].bHaveSignal = true;
- }
- else if(WorkState.struChanStatic[k].bySignalStatic == 1)
- {
- g_RecordInfo[nIndex].bHaveSignal = false;
- }
- }
- }
- //布防
- if(ClientParam.m_iAlarmHandle[i] == -1)
- {
- ClientParam.m_iAlarmHandle[i] = NET_DVR_SetupAlarmChan(serverinfo[i].m_lServerID);
- if(ClientParam.m_iAlarmHandle[i] == -1)
- {
- sTemp.Format("%s报警设防失败 lasterror = %d!",serverinfo[i].m_csServerName, NET_DVR_GetLastError());
- MessageBox(sTemp, "温馨提示", MB_ICONINFORMATION);
- }
- }
- }
- }
- //while(node1!=NULL)
- //{
- // m_tree.GetItemImage(node1,imageindex,selectindex);
- // ipnum=m_tree.GetItemData(node1);
- //
- // if(imageindex==1)
- // {
- // if(ClientParam.m_iAlarmHandle[ipnum] == -1)
- // {
- // ClientParam.m_iAlarmHandle[ipnum] = NET_DVR_SetupAlarmChan(serverinfo[ipnum].m_lServerID);
- // if(ClientParam.m_iAlarmHandle[ipnum] == -1)
- // {
- // m_tree.SetItemImage(node1,0,0);
- // sTemp.Format("%s报警设防失败 lasterror = %d!",serverinfo[ipnum].m_csServerName, NET_DVR_GetLastError());
- // AfxMessageBox(sTemp);
- // }
- // }
- // }
- // else
- // {
- // if(ClientParam.m_iAlarmHandle[ipnum] >= 0)
- // {
- // if(NET_DVR_CloseAlarmChan(ClientParam.m_iAlarmHandle[ipnum]))
- // {
- // ClientParam.m_iAlarmHandle[ipnum] = -1;
- // }
- // else
- // {
- // m_tree.SetItemImage(node1,1,1);
- // sTemp.Format("%s报警撤防失败! lasterror = %d ",serverinfo[ipnum].m_csServerName, NET_DVR_GetLastError());
- // AfxMessageBox(sTemp);
- // }
- // }
- // }
- // node1=m_tree.GetNextSiblingItem(node1);
- //}
- //m_bOK = TRUE;
- //AfxMessageBox("布防撤防完成!");
- }
- void CNewclientDlg::OnSysCommand(UINT nID, LPARAM lParam)
- {
- //if ((nID & 0xFFF0) == IDM_ABOUTBOX)
- //{
- // CAboutDlg dlgAbout;
- // dlgAbout.DoModal();
- //}
- //else
- {
- CDialog::OnSysCommand(nID, lParam);
- }
- }
- // If you add a minimize button to your dialog, you will need the code below
- // to draw the icon. For MFC applications using the document/view model,
- // this is automatically done for you by the framework.
- void CNewclientDlg::OnPaint()
- {
- if (IsIconic())
- {
- CPaintDC dc(this); // device context for painting
- SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
- // Center icon in client rectangle
- int cxIcon = GetSystemMetrics(SM_CXICON);
- int cyIcon = GetSystemMetrics(SM_CYICON);
- CRect rect;
- GetClientRect(&rect);
- int x = (rect.Width() - cxIcon + 1) / 2;
- int y = (rect.Height() - cyIcon + 1) / 2;
- // Draw the icon
- dc.DrawIcon(x, y, m_hIcon);
- }
- else
- {
- CDialog::OnPaint();
- ShowGrid();
- }
- }
- // The system calls this to obtain the cursor to display while the user drags
- // the minimized window.
- HCURSOR CNewclientDlg::OnQueryDragIcon()
- {
- return (HCURSOR) m_hIcon;
- }
- void CNewclientDlg::OnExit()
- {
- // TODO: Add your control notification handler code here
- if(IDOK != MessageBox("确定要退出吗?","警告",IDOK))
- return;
- Resoure();
- CDialog::OnCancel();
- }
- void CNewclientDlg::Resoure()
- {
- int i = 0;
- F_StopPlay();
- if(lVoiceIndex != -1)
- {
- if(NET_DVR_StopVoiceCom(lVoiceIndex))
- {
- GetDlgItem(IDC_AUDIOEXCHANGE)->SetWindowText("语音对讲");
- lVoiceIndex = -1;
- }
- else
- {
- MessageBox("停止语音对讲失败!", "温馨提示", MB_ICONINFORMATION);
-
- }
- }
- if(cycletimer)
- {
- KillTimer(CYCLE_TIMER);
- cycletimer = 0;
- }
- if(freespacetimer)
- {
- KillTimer(FREESPACE_TIMER);
- freespacetimer = 0;
- }
- if(fileintervaltimer)
- {
- KillTimer(FILEINTERVAL_TIMER);
- fileintervaltimer = 0;
- }
- if(checkservertimer)
- {
- // TRACE("关闭校时时钟");
- KillTimer(CHECKSERVER_TIMER);
- checkservertimer = 0;
- }
- if(hVideoBeeper)
- SetEvent(hVideoBeeper);
- if(ClientParam.m_bUseCard)
- {
- NET_DVR_ReleaseDevice_Card();
- NET_DVR_ReleaseDDraw_Card();
- }
-
- NET_DVR_StopListen();
- for(i=0; i<MAXIPNUMBER; i++)
- {
- if(serverinfo[i].m_iServerChannelNumber >= 0)
- {
- if(serverinfo[i].m_lServerID != -1)
- {
- if(ClientParam.m_iAlarmHandle[i] >= 0)
- {
- if(NET_DVR_CloseAlarmChan(ClientParam.m_iAlarmHandle[i]))
- {
- ClientParam.m_iAlarmHandle[i] = -1;
- }
- }
- if(!NET_DVR_Logout(serverinfo[i].m_lServerID))
- {
- CString sTemp;
- sTemp.Format("ERROR: %s NET_DVR_Logout = %d",serverinfo[i].m_csServerIP, NET_DVR_GetLastError());
- TRACE(sTemp);
- }
- }
- }
- }
- }
- void CNewclientDlg::ArrayWindow(WORD iPos, WORD iNumber)
- {
- int i = 0;
- CRect crect;
- GetClientRect(&crect);
- WORD iWidth,iHeight;
- NET_DVR_DISPLAY_PARA displaypara;
- CRect rc;
- GetDlgItem(IDC_VEDIO_SHOW)->GetWindowRect(rc);
- WORD WIDTH = rc.Width();
- WORD HEIGHT = rc.Height();
-
- for (i = 0;i < MAXVIEWNUM;i++)
- {
- myoutput[i].ShowWindow(SW_HIDE);
- }
-
- switch(iNumber)
- {
- case 4:
- if(ClientParam.m_bMultiScreen)
- {
- MYVIEW_LEFT = 0;
- MYVIEW_TOP = 0;
- iWidth = 510;
- iHeight = 383;
- }
- else
- {
- MYVIEW_LEFT = LEFT_DISTANCE;
- MYVIEW_TOP = TOP_DISTANCE;
- iWidth = int( (float)WIDTH/2 );
- iHeight = int( (float)HEIGHT/2 );
- }
- bLargeWnd = FALSE;
- for(i = 0; i < 2; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+i*iWidth+i*1,MYVIEW_TOP,iWidth,iHeight,true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+i*iWidth+i*1;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP;
- myoutput[i].m_display_para.nWidth = iWidth;
- myoutput[i].m_display_para.nHeight = iHeight;
-
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 2; i < 4; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-2)*iWidth+(i-2)*1,MYVIEW_TOP+iHeight+2,iWidth,iHeight,true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-2)*iWidth+(i-2)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+iHeight+2;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- break;
- case 9:
- if(ClientParam.m_bMultiScreen)
- {
- MYVIEW_LEFT = 0;
- MYVIEW_TOP = 0;
- iWidth = 339;
- iHeight = 254;
- }
- else
- {
- MYVIEW_LEFT = LEFT_DISTANCE;
- MYVIEW_TOP = TOP_DISTANCE;
- iWidth = int( (float)WIDTH/3 );
- iHeight = int( (float)HEIGHT/3 );
- }
-
- bLargeWnd = FALSE;
- for (i=0;i<3;i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+i*iWidth+i*1,MYVIEW_TOP,iWidth,iHeight,true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+i*iWidth+i*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for (i=3;i<6;i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-3)*iWidth+(i-3)*1,MYVIEW_TOP+iHeight+2,iWidth,iHeight,true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-3)*iWidth+(i-3)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+iHeight+2;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for (i=6;i<9;i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-6)*iWidth+(i-6)*1,MYVIEW_TOP+2*iHeight+4,iWidth,iHeight,true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-6)*iWidth+(i-6)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*2;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- break;
- case 16:
- if(ClientParam.m_bMultiScreen)
- {
- iWidth = 254;
- iHeight = 190;
- MYVIEW_LEFT = 0;
- MYVIEW_TOP = 0;
- }
- else
- {
- MYVIEW_LEFT = LEFT_DISTANCE;
- MYVIEW_TOP = TOP_DISTANCE;
- iWidth = int( (float)WIDTH/4 );
- iHeight = int( (float)HEIGHT/4 );
- }
- bLargeWnd = FALSE;
- for(i = 0; i < 4; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+i*iWidth+i*1, MYVIEW_TOP, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+i*iWidth+i*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 4; i < 8; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-4)*iWidth+(i-4)*1, MYVIEW_TOP+iHeight+2, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-4)*iWidth+(i-4)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+iHeight+2;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 8; i < 12; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-8)*iWidth+(i-8)*1, MYVIEW_TOP+iHeight*2+4, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-8)*iWidth+(i-8)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*2;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 12; i < 16; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-12)*iWidth+(i-12)*1, MYVIEW_TOP+iHeight*3+6, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-12)*iWidth+(i-12)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*3;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- break;
- case 33:
- if(ClientParam.m_bMultiScreen)
- {
- iWidth = 254;
- iHeight = 190;
- MYVIEW_LEFT = 0;
- MYVIEW_TOP = 0;
- }
- else
- {
- MYVIEW_LEFT = LEFT_DISTANCE;
- MYVIEW_TOP = TOP_DISTANCE;
- iWidth = int( (float)WIDTH/6 );
- iHeight = int( (float)HEIGHT/6 );
- }
- bLargeWnd = FALSE;
- for(i = 0; i < 1; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+i*iWidth+i*1, MYVIEW_TOP, 2*iWidth, 2*iHeight+2, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+i*iWidth+i*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP;
- myoutput[i].m_display_para.nWidth = iWidth*2;
- myoutput[i].m_display_para.nHeight = iHeight*2+2;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 1; i < 5; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i+1)*iWidth+i*1, MYVIEW_TOP, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i+1)*iWidth+i*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 5; i < 9; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-3)*iWidth+(i-3)*1, MYVIEW_TOP+iHeight+2, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-3)*iWidth+(i-3)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+iHeight+2;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 9; i < 15; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-9)*iWidth+(i-9)*1, MYVIEW_TOP+iHeight*2+4, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-9)*iWidth+(i-9)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*2;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 15; i < 21; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-15)*iWidth+(i-15)*1, MYVIEW_TOP+iHeight*3+6, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-15)*iWidth+(i-15)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*3;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 21; i < 27; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-21)*iWidth+(i-21)*1, MYVIEW_TOP+iHeight*4+8, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-21)*iWidth+(i-21)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*4;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 27; i < 33; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-27)*iWidth+(i-27)*1, MYVIEW_TOP+iHeight*5+10, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-27)*iWidth+(i-27)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*5;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- break;
- case 64:
- if(ClientParam.m_bMultiScreen)
- {
- iWidth = 254;
- iHeight = 190;
- MYVIEW_LEFT = 0;
- MYVIEW_TOP = 0;
- }
- else
- {
- MYVIEW_LEFT = LEFT_DISTANCE;
- MYVIEW_TOP = TOP_DISTANCE;
- iWidth = int( (float)WIDTH/8 );
- iHeight = int( (float)HEIGHT/8 );
- }
- bLargeWnd = FALSE;
- for(i = 0; i < 8; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+i*iWidth+i*1, MYVIEW_TOP, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+i*iWidth+i*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 8; i < 16; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-8)*iWidth+(i-8)*1, MYVIEW_TOP+iHeight+2, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-8)*iWidth+(i-8)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+iHeight+2;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 16; i < 24; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-16)*iWidth+(i-16)*1, MYVIEW_TOP+iHeight*2+4, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-16)*iWidth+(i-16)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*2;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 24; i < 32; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-24)*iWidth+(i-24)*1, MYVIEW_TOP+iHeight*3+6, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-24)*iWidth+(i-24)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*3;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 32; i < 40; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-32)*iWidth+(i-32)*1, MYVIEW_TOP+iHeight*4+8, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-32)*iWidth+(i-32)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*4;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 40; i < 48; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-40)*iWidth+(i-40)*1, MYVIEW_TOP+iHeight*5+10, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-40)*iWidth+(i-40)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*5;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 48; i < 56; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-48)*iWidth+(i-48)*1, MYVIEW_TOP+iHeight*6+12, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-48)*iWidth+(i-48)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*6;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- for(i = 56; i < 64; i++)
- {
- myoutput[i].MoveWindow(MYVIEW_LEFT+(i-56)*iWidth+(i-56)*1, MYVIEW_TOP+iHeight*7+14, iWidth, iHeight, true);
- myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-56)*iWidth+(i-56)*1/*-2*/;
- myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*7;
- myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
- myoutput[i].m_display_para.nHeight = iHeight;
- myoutput[i].ShowWindow(SW_SHOW);
- }
- break;
- case 1:
- if(ClientParam.m_bMultiScreen)
- {
- iWidth = 1024;
- iHeight = 768;
- MYVIEW_LEFT = 0;
- MYVIEW_TOP = 0;
- }
- else
- {
- MYVIEW_LEFT = LEFT_DISTANCE;
- MYVIEW_TOP = TOP_DISTANCE;
- iWidth = WIDTH;
- iHeight = HEIGHT;
- }
-
- myoutput[iPos].MoveWindow(MYVIEW_LEFT,MYVIEW_TOP,iWidth,iHeight,true);
- myoutput[iPos].m_display_para.nLeft = MYVIEW_LEFT;
- myoutput[iPos].m_display_para.nTop = MYVIEW_TOP;
- myoutput[iPos].m_display_para.nWidth = iWidth;
- myoutput[iPos].m_display_para.nHeight = iHeight;
- myoutput[iPos].ShowWindow(SW_SHOW);
- break;
- default:
- break;
- }
- if(ClientParam.m_bUseCard)
- {
- TRACE("Use Decode Card");
- TRACE("iNumber = %d", iNumber);
- NET_DVR_ClearSurface_Card();
- for(i = 0; i < MAXVIEWNUM; i++)
- {
- displaypara.bToScreen = 0;
- displaypara.bToVideoOut = 1;
- displaypara.nLeft = myoutput[i].m_display_para.nLeft;
- displaypara.nTop = myoutput[i].m_display_para.nTop;
- displaypara.nWidth = myoutput[i].m_display_para.nWidth;
- displaypara.nHeight = myoutput[i].m_display_para.nHeight;
- NET_DVR_ResetPara_Card(myoutput[i].m_iPlayhandle,&displaypara);
- }
- if(iNumber == 1)
- {//放大
- displaypara.bToScreen = 1;
- displaypara.bToVideoOut = 1;
- displaypara.nLeft = myoutput[iPos].m_display_para.nLeft;
- displaypara.nTop = myoutput[iPos].m_display_para.nTop;
- displaypara.nWidth = myoutput[iPos].m_display_para.nWidth;
- displaypara.nHeight = myoutput[iPos].m_display_para.nHeight;
- NET_DVR_ResetPara_Card(myoutput[iPos].m_iPlayhandle,&displaypara);
- }
- else
- {//缩小
- for(i = 0; i < iNumber; i++)
- {
- displaypara.bToScreen = 1;
- displaypara.bToVideoOut = 1;
- displaypara.nLeft = myoutput[i].m_display_para.nLeft;
- displaypara.nTop = myoutput[i].m_display_para.nTop;
- displaypara.nWidth = myoutput[i].m_display_para.nWidth;
- displaypara.nHeight = myoutput[i].m_display_para.nHeight;
- NET_DVR_ResetPara_Card(myoutput[i].m_iPlayhandle,&displaypara);
- }
- }
- }
- }
- void CNewclientDlg::MoveCurWin(int iWindowNum,int iCurWinPos)
- {
- //CNewclientDlg* mainwnd =(CNewclientDlg*) AfxGetMainWnd();
- CRect rc;
- GetDlgItem(IDC_VEDIO_SHOW)->GetWindowRect(rc);
- WORD WIDTH = rc.Width();
- WORD HEIGHT = rc.Height();
- int rectWidth = 0;
- int rectHeight = 0;
- int rectTop = 0;
- int rectLeft = 0;
- switch(iWindowNum)
- {
- case 1:
- rectWidth = 706*W_RATIO;
- rectHeight = 578*H_RATIO;
- rectTop = WIDTH;
- rectLeft = HEIGHT;
- break;
- case 4:
- rectWidth = int( (float)WIDTH/2 );
- rectHeight = int( (float)HEIGHT/2 );
- switch(iCurWinPos)
- {
- case 0:
- case 1:
- rectTop = MYVIEW_TOP;
- rectLeft = MYVIEW_LEFT+iCurWinPos*rectWidth+iCurWinPos*1;
- break;
- case 2:
- case 3:
- rectTop = MYVIEW_TOP+rectHeight+2;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-2)*rectWidth+(iCurWinPos-2)*1;
- break;
- default:
- break;
- }
- break;
- case 9:
- rectWidth = int( (float)WIDTH/3 );
- rectHeight = int( (float)HEIGHT/3 );
- switch(iCurWinPos)
- {
- case 0:
- case 1:
- case 2:
- rectTop = MYVIEW_TOP;
- rectLeft = MYVIEW_LEFT+iCurWinPos*rectWidth+iCurWinPos*1;
- break;
- case 3:
- case 4:
- case 5:
- rectTop = MYVIEW_TOP+rectHeight + 2;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-3)*rectWidth+(iCurWinPos-3)*1;
- break;
- case 6:
- case 7:
- case 8:
- rectTop = MYVIEW_TOP+2*rectHeight+4;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-6)*rectWidth+(iCurWinPos-6)*1;
- break;
- default:
- break;
- }
- break;
- case 16:
- rectWidth = int( (float)WIDTH/4 );
- rectHeight = int( (float)HEIGHT/4 );
- switch(iCurWinPos)
- {
- case 0:
- case 1:
- case 2:
- case 3:
- rectTop = MYVIEW_TOP;
- rectLeft = MYVIEW_LEFT+iCurWinPos*rectWidth+iCurWinPos*1;
- break;
- case 4:
- case 5:
- case 6:
- case 7:
- rectTop = MYVIEW_TOP+rectHeight+2;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-4)*rectWidth+(iCurWinPos-4)*1;
- break;
- case 8:
- case 9:
- case 10:
- case 11:
- rectTop = MYVIEW_TOP+2*rectHeight+4;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-8)*rectWidth+(iCurWinPos-8)*1;
- break;
- case 12:
- case 13:
- case 14:
- case 15:
- rectTop = MYVIEW_TOP+3*rectHeight+6;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-12)*rectWidth+(iCurWinPos-12)*1;
- break;
- default:
- break;
- }
- break;
- case 33:
- rectWidth = int( (float)WIDTH/6 );
- rectHeight = int( (float)HEIGHT/6 );
- switch(iCurWinPos)
- {
- case 0:
- rectTop = MYVIEW_TOP;
- rectLeft = MYVIEW_LEFT+iCurWinPos*rectWidth+iCurWinPos*1;
- rectWidth = rectWidth*2;
- rectHeight = rectHeight*2+2;
- break;
- case 1:
- case 2:
- case 3:
- case 4:
- rectTop = MYVIEW_TOP;
- rectLeft = MYVIEW_LEFT+(iCurWinPos+1)*rectWidth+(iCurWinPos+1)*1;
- break;
- case 5:
- case 6:
- case 7:
- case 8:
- rectTop = MYVIEW_TOP+rectHeight+2;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-3)*rectWidth+(iCurWinPos-3)*1;
- break;
- case 9:
- case 10:
- case 11:
- case 12:
- case 13:
- case 14:
- rectTop = MYVIEW_TOP+2*rectHeight+4;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-9)*rectWidth+(iCurWinPos-9)*1;
- break;
- case 15:
- case 16:
- case 17:
- case 18:
- case 19:
- case 20:
- rectTop = MYVIEW_TOP+3*rectHeight+6;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-15)*rectWidth+(iCurWinPos-15)*1;
- break;
- case 21:
- case 22:
- case 23:
- case 24:
- case 25:
- case 26:
- rectTop = MYVIEW_TOP+4*rectHeight+8;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-21)*rectWidth+(iCurWinPos-21)*1;
- break;
- case 27:
- case 28:
- case 29:
- case 30:
- case 31:
- case 32:
- rectTop = MYVIEW_TOP+5*rectHeight+10;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-27)*rectWidth+(iCurWinPos-27)*1;
- break;
- default:
- break;
- }
- break;
- case 64:
- rectWidth = int( (float)WIDTH/8 );
- rectHeight = int( (float)HEIGHT/8 );
- switch(iCurWinPos)
- {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- rectTop = MYVIEW_TOP;
- rectLeft = MYVIEW_LEFT+iCurWinPos*rectWidth+iCurWinPos*1;
- break;
- case 8:
- case 9:
- case 10:
- case 11:
- case 12:
- case 13:
- case 14:
- case 15:
- rectTop = MYVIEW_TOP+1*rectHeight+2;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-8)*rectWidth+(iCurWinPos-8)*1;
- break;
- case 16:
- case 17:
- case 18:
- case 19:
- case 20:
- case 21:
- case 22:
- case 23:
- rectTop = MYVIEW_TOP+2*rectHeight+4;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-16)*rectWidth+(iCurWinPos-16)*1;
- break;
- case 24:
- case 25:
- case 26:
- case 27:
- case 28:
- case 29:
- case 30:
- case 31:
- rectTop = MYVIEW_TOP+3*rectHeight+6;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-24)*rectWidth+(iCurWinPos-24)*1;
- break;
- case 32:
- case 33:
- case 34:
- case 35:
- case 36:
- case 37:
- case 38:
- case 39:
- rectTop = MYVIEW_TOP+4*rectHeight+8;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-32)*rectWidth+(iCurWinPos-32)*1;
- break;
- case 40:
- case 41:
- case 42:
- case 43:
- case 44:
- case 45:
- case 46:
- case 47:
- rectTop = MYVIEW_TOP+5*rectHeight+10;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-40)*rectWidth+(iCurWinPos-40)*1;
- break;
- case 48:
- case 49:
- case 50:
- case 51:
- case 52:
- case 53:
- case 54:
- case 55:
- rectTop = MYVIEW_TOP+6*rectHeight+12;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-48)*rectWidth+(iCurWinPos-48)*1;
- break;
- case 56:
- case 57:
- case 58:
- case 59:
- case 60:
- case 61:
- case 62:
- case 63:
- rectTop = MYVIEW_TOP+7*rectHeight+14;
- rectLeft = MYVIEW_LEFT+(iCurWinPos-56)*rectWidth+(iCurWinPos-56)*1;
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- mycurwin.m_black.ShowWindow(SW_HIDE);
- mycurwin.MoveWindow(rectLeft-1,rectTop-1,rectWidth+2,rectHeight+2);
- mycurwin.m_black.ShowWindow(SW_SHOW);
- mycurwin.EnableWindow(FALSE);
- }
- void CNewclientDlg::InitLed()
- {
- int i;
- m_pCapLed[0] = &m_CapLed1;
- m_pCapLed[1] = &m_CapLed2;
- m_pCapLed[2] = &m_CapLed3;
- m_pCapLed[3] = &m_CapLed4;
- m_pCapLed[4] = &m_CapLed5;
- m_pCapLed[5] = &m_CapLed6;
- m_pCapLed[6] = &m_CapLed7;
- m_pCapLed[7] = &m_CapLed8;
- m_pCapLed[8] = &m_CapLed9;
- m_pCapLed[9] = &m_CapLed10;
- m_pCapLed[10] = &m_CapLed11;
- m_pCapLed[11] = &m_CapLed12;
- m_pCapLed[12] = &m_CapLed13;
- m_pCapLed[13] = &m_CapLed14;
- m_pCapLed[14] = &m_CapLed15;
- m_pCapLed[15] = &m_CapLed16;
- //for(i = 0; i < MAXVIEWNUM; i++)
- {
- //m_pCapLed[i]->SetLed(CLed::LED_COLOR_RED,CLed::LED_DISABLED,CLed::LED_ROUND);
- }
- m_pAlarmLed[0] = &m_AlarmLed1;
- m_pAlarmLed[1] = &m_AlarmLed2;
- m_pAlarmLed[2] = &m_AlarmLed3;
- m_pAlarmLed[3] = &m_AlarmLed4;
- m_pAlarmLed[4] = &m_AlarmLed5;
- m_pAlarmLed[5] = &m_AlarmLed6;
- m_pAlarmLed[6] = &m_AlarmLed7;
- m_pAlarmLed[7] = &m_AlarmLed8;
- m_pAlarmLed[8] = &m_AlarmLed9;
- m_pAlarmLed[9] = &m_AlarmLed10;
- m_pAlarmLed[10] = &m_AlarmLed11;
- m_pAlarmLed[11] = &m_AlarmLed12;
- m_pAlarmLed[12] = &m_AlarmLed13;
- m_pAlarmLed[13] = &m_AlarmLed14;
- m_pAlarmLed[14] = &m_AlarmLed15;
- m_pAlarmLed[15] = &m_AlarmLed16;
-
- //for(i = 0; i < MAXVIEWNUM; i++)
- {
- //m_pAlarmLed[i]->SetLed(CLed::LED_COLOR_RED,CLed::LED_DISABLED,CLed::LED_ROUND);
- }
- }
- void CNewclientDlg::F_InitDecodeCard()
- {
- int nDispNum = 0;
-
- TRACE("初始化解码卡");
- int iRet = NET_DVR_InitDDraw_Card(this->m_hWnd,0xff0000);
-
- iRet=NET_DVR_InitDevice_Card(&channelcount);
-
- TRACE("ChannelCount = %d", channelcount);
- if(channelcount <= 0)
- {
- MessageBox("请插入解码卡!", "温馨提示", MB_ICONINFORMATION);
-
- return;
- }
- else if(channelcount > 16)
- {
- channelcount = 16;
- }
-
- if(ClientParam.m_bNTSC)
- {
- nDispNum = GetDisplayChannelCount();
- if (nDispNum >= 2)
- {
- REGION_PARAM param[MAX_DISPLAY_REGION];
- int i;
- memset(param, 0, sizeof(param));
- for (i=0; i<MAX_DISPLAY_REGION; i++)
- param[i].color = RGB(i, i*8, i*16);
- for (i=0; i<nDispNum/2; i++)
- {
- SetDisplayStandard(2*i,StandardNTSC);
- param[0].left=0; param[0].top=0; param[0].width=352; param[0].height=240;
- param[1].left=352; param[1].top=0; param[1].width=352; param[1].height=240;
- param[2].left=0; param[2].top=240; param[2].width=352; param[2].height=240;
- param[3].left=352; param[3].top=240; param[3].width=352; param[3].height=240;
- if (SetDisplayRegion(2*i, 4, param, 0) != HWERR_SUCCESS)
- {
- TRACE("SetDisplayRegion failed!");
- }
- SetDecoderVideoExtOutput(4*i, 0, 1, 2*i, 0, 0);
- SetDecoderVideoExtOutput(4*i+1, 0, 1, 2*i, 1, 0);
- SetDecoderVideoExtOutput(4*i+2, 0, 1, 2*i, 2, 0);
- SetDecoderVideoExtOutput(4*i+3, 0, 1, 2*i, 3, 0);
-
- SetDisplayStandard(2*i+1,StandardNTSC);
- param[0].left=0; param[0].top=0; param[0].width=704; param[0].height=480;
- if (SetDisplayRegion(2*i+1, 1, param, 0) != HWERR_SUCCESS)
- {
- TRACE("SetDisplayRegion failed!");
- }
-
- SetDecoderVideoExtOutput(4*i, 1, 1, 2*i+1, 0, 0);
- }
- }
- }
- else
- {
- nDispNum = GetDisplayChannelCount();
- if (nDispNum >= 2)
- {
- REGION_PARAM param[MAX_DISPLAY_REGION];
- int i;
- memset(param, 0, sizeof(param));
- for (i=0; i<MAX_DISPLAY_REGION; i++)
- param[i].color = RGB(i, i*8, i*16);
- for (i=0; i<nDispNum/2; i++)
- {
- SetDisplayStandard(2*i,StandardPAL);
- param[0].left=0; param[0].top=0; param[0].width=352; param[0].height=288;
- param[1].left=352; param[1].top=0; param[1].width=352; param[1].height=288;
- param[2].left=0; param[2].top=288; param[2].width=352; param[2].height=288;
- param[3].left=352; param[3].top=288; param[3].width=352; param[3].height=288;
- if (SetDisplayRegion(2*i, 4, param, 0) != HWERR_SUCCESS)
- {
- TRACE("SetDisplayRegion failed!");
- }
- SetDecoderVideoExtOutput(4*i, 0, 1, 2*i, 0, 0);
- SetDecoderVideoExtOutput(4*i+1, 0, 1, 2*i, 1, 0);
- SetDecoderVideoExtOutput(4*i+2, 0, 1, 2*i, 2, 0);
- SetDecoderVideoExtOutput(4*i+3, 0, 1, 2*i, 3, 0);
-
- SetDisplayStandard(2*i+1,StandardPAL);
- param[0].left=0; param[0].top=0; param[0].width=704; param[0].height=576;
- if (SetDisplayRegion(2*i+1, 1, param, 0) != HWERR_SUCCESS)
- {
- TRACE("SetDisplayRegion failed!");
- }
-
- SetDecoderVideoExtOutput(4*i, 1, 1, 2*i+1, 0, 0);
- }
- }
- }
-
- if(channelcount==1)
- {
- WINDOWNUM=1;
- m_windownum.SetCurSel(0);
- }
- else if (channelcount<=4)
- {
- WINDOWNUM=4;
- m_windownum.SetCurSel(1);
- }
- else if(channelcount<=9)
- {
- WINDOWNUM = 9;
- m_windownum.SetCurSel(2);
- }
- else
- {
- m_windownum.SetCurSel(3);
- WINDOWNUM = 16;
- }
-
- }
- void CNewclientDlg::OnAudioexchange()
- {
- // TODO: Add your control notification handler code here
- if(lVoiceIndex == -1)
- {
- CVoiceExchange VoiceDlg;
- VoiceDlg.DoModal();
- if(lVoiceIndex != -1)
- {
- GetDlgItem(IDC_AUDIOEXCHANGE)->SetWindowText("停止对讲");
- }
- }
- else
- {
- if(NET_DVR_StopVoiceCom(lVoiceIndex))
- {
- GetDlgItem(IDC_AUDIOEXCHANGE)->SetWindowText("语音对讲");
- lVoiceIndex = -1;
- }
- else
- {
- MessageBox("停止语音对讲失败!", "温馨提示", MB_ICONINFORMATION);
-
- }
- }
- }
- void CNewclientDlg::OnSystemcfg()
- {
- // TODO: Add your control notification handler code here
- CSystemConfig SysCfgDlg;
- SysCfgDlg.DoModal();
- if(nUseCard == 1)
- {
- channelcount = 0;
- F_InitDecodeCard();
- ArrayWindow(0,WINDOWNUM);
- MoveCurWin(WINDOWNUM,0);
- nUseCard = 0;
- }
- if(nUseCard == 2)
- {
- NET_DVR_ReleaseDevice_Card();
- NET_DVR_ReleaseDDraw_Card();
- nUseCard = 0;
- }
- if(ClientParam.m_bCheckServerTime)
- {
- if(checkservertimer == 0)
- {
- TRACE("启动硬盘录像机校时时钟,校时时间是每天的%06d", ClientParam.m_iCheckServerTime);
- checkservertimer = SetTimer(CHECKSERVER_TIMER, 1000, NULL);
- }
- }
- else
- {
- if(checkservertimer)
- {
- // TRACE("关闭硬盘录像机校时时钟");
- KillTimer(CHECKSERVER_TIMER);
- checkservertimer = 0;
- }
- }
- F_JudgeDiskFull();
- }
- void CNewclientDlg::OnSelchangeCombowndnum()
- {
- // TODO: Add your control notification handler code here
- int i;
- WORD wndnum;
- i = m_windownum.GetCurSel();
- switch(i)
- {
- case 0:
- wndnum = 1;
- break;
- case 1:
- wndnum = 4;
- break;
- case 2:
- wndnum = 9;
- break;
- case 3:
- wndnum = 16;
- break;
- default:
- break;
- }
- if(WINDOWNUM != wndnum)
- {
- WINDOWNUM = wndnum;
- if(ClientParam.m_bCycling)
- {
- MessageBox("请停止循环播放!", "温馨提示", MB_ICONINFORMATION);
-
- return;
- }
- if(ClientParam.m_bPlaying)
- {
- TRACE("Stop Play");
- F_StopPlay();
- OnVideonetplay();
- }
- ArrayWindow(0, WINDOWNUM);
- MoveCurWin(WINDOWNUM,0);
-
- }
- }
- void CNewclientDlg::F_StopPlay()
- {
- int i;
-
- if(cycletimer)
- {
- KillTimer(CYCLE_TIMER);
- cycletimer = 0;
- }
- if(!ClientParam.m_bUseCard)
- {
- if(!g_bShareSound)
- NET_DVR_CloseSound();
- }
-
- for(i = 0; i < MAXVIEWNUM; i++)
- {
- if(myoutput[i].m_bFileSave)
- F_StopClientRecord(i);
- if(g_bShareSound)
- NET_DVR_CloseSoundShare(myoutput[i].m_iPlayhandle);
- myoutput[i].StopNet();
- }
- GetDlgItem(IDC_PLAY)->SetWindowText("预览视频");
- numberpos = 0;
- if( (ClientParam.m_bEnlarged) || (ClientParam.m_bFullScreen) )
- {
- ArrayWindow(0, WINDOWNUM);
- MoveCurWin(WINDOWNUM,0);
- }
-
- ClientParam.m_bPlaying = FALSE;
- ClientParam.m_bCycling = FALSE;
- ClientParam.m_bPaused = FALSE;
- ClientParam.m_bNextPage = FALSE;
- ClientParam.m_bFrontPage = FALSE;
- //GetDlgItem(IDC_COMBOWNDNUM)->EnableWindow(TRUE);
- }
- void CNewclientDlg::OnVideonetplay()
- {
- // TODO: Add your control notification handler code here
- int itemp,i;
-
- UpdateData(TRUE);
-
- if(iSurveillanceNumber == 0)
- return;
- if(ClientParam.m_bPlaying)
- {
- TRACE("Stop Play");
- F_StopPlay();
- // m_windownum.EnableWindow(TRUE);
- return;
- }
- //GetDlgItem(IDC_COMBOWNDNUM)->EnableWindow(FALSE);
- ClientParam.m_bPlaying = TRUE;
-
- if(iSurveillanceNumber < WINDOWNUM)
- itemp = iSurveillanceNumber;
- else
- itemp = WINDOWNUM;
-
- for(i=0;i<itemp;i++)
- {
- if(ClientParam.m_bUseCard)
- myoutput[i].StartCard(&selipinfo[i]);
- else
- {
- TRACE("start play %s m_lServerId = %d", selipinfo[i].m_csIP, selipinfo[i].m_lServerID);
- myoutput[i].StartNet(&selipinfo[i]);
- if(g_bShareSound && (myoutput[i].m_iPlayhandle >= 0))
- {
- ClientParam.m_bPlaySound[i] = TRUE;
- }
- }
- Sleep(100);
- }
- if(iSurveillanceNumber <= WINDOWNUM)
- {
- numberpos = iSurveillanceNumber;
- }
- else
- {
- numberpos = WINDOWNUM;
-
- if(ClientParam.m_bCyclePlay) //循环播放
- {
- if(cycletimer == 0)
- {
- cycletimer = SetTimer(CYCLE_TIMER,ClientParam.m_iCycleTime*1000,NULL);
- }
- ClientParam.m_bCycling = TRUE;
- m_bChangePage = TRUE;
- ClientParam.m_bPaused = FALSE;
- }
- else
- {
- ClientParam.m_bNextPage = TRUE;
- ClientParam.m_bFrontPage = FALSE;
- }
- }
- // m_windownum.EnableWindow(FALSE);
- GetDlgItem(IDC_PLAY)->SetWindowText("停止预览");
- UpdateData(FALSE);
- SetAlarm();
- }
- void CNewclientDlg::F_FullScreen()
- {
- GetWindowPlacement(&m_OldWndPlacement);
-
- CRect WindowRect, ClientRect, FullScreenRect;
- int FullWidth, FullHeight;
- GetWindowRect(&WindowRect);
- RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &ClientRect);
- ClientToScreen(&ClientRect);
- //获取屏幕的分辨率;
- FullWidth = GetSystemMetrics(SM_CXSCREEN);
- FullHeight = GetSystemMetrics(SM_CYSCREEN);
- //将除控制条外的客户区全屏显示到从(0,0)到(nFullWidth, nFullHeight)区域, 将(0,0)和(nFullWidth, nFullHeight)两个点外扩充原窗口和除控制条之外的 客户区位置间的差值, 就得到全屏显示的窗口位置;
- FullScreenRect.left = WindowRect.left-ClientRect.left;
- FullScreenRect.top = WindowRect.top-ClientRect.top;
- FullScreenRect.right = WindowRect.right-ClientRect.right+FullWidth;
- FullScreenRect.bottom = WindowRect.bottom-ClientRect.bottom+FullHeight;
- //进入全屏显示状态 ;
- WINDOWPLACEMENT wndpl;
- wndpl.length = sizeof(WINDOWPLACEMENT);
- wndpl.flags = 0;
- wndpl.showCmd = SW_SHOWNORMAL;
- wndpl.rcNormalPosition = FullScreenRect;
- SetWindowPlacement(&wndpl);
- int i;
- for(i = 0; i < WINDOWNUM; i++)
- myoutput[i].ShowWindow(SW_HIDE);
- F_ShowHide(FALSE);
- mycurwin.ShowWindow(SW_HIDE);
- i = iActiveWndNumber;
- if(ClientParam.m_bUseCard)
- {
- NET_DVR_DISPLAY_PARA displaypara;
- displaypara.bToVideoOut = 1;
- displaypara.bToScreen = 1;
- displaypara.nLeft = 0;
- displaypara.nTop = 0;
- displaypara.nWidth = 1024;
- displaypara.nHeight = 768;
- NET_DVR_ResetPara_Card(myoutput[i].m_iPlayhandle,&displaypara);
- }
- }
- void CNewclientDlg::F_EndFullScreen()
- {
- SetWindowPlacement(&m_OldWndPlacement);
- F_ShowHide(TRUE);
- mycurwin.ShowWindow(SW_SHOW);
- }
- void CNewclientDlg::F_ShowHide(BOOL bShow)
- {
- if(bShow)
- {
- //云台
- GetDlgItem(IDC_BUTTONUP)->ShowWindow(SW_SHOW);
- GetDlgItem(IDC_BUTTONLEFT)->ShowWindow(SW_SHOW);
- GetDlgItem(IDC_BUTTONRIGHT)->ShowWindow(SW_SHOW);
- GetDlgItem(IDC_BUTTONDOWN)->ShowWindow(SW_SHOW);
- GetDlgItem(IDC_BUTTONTJLEFT)->ShowWindow(SW_SHOW);
- GetDlgItem(IDC_BUTTONTJRIGHT)->ShowWindow(SW_SHOW);
- GetDlgItem(IDC_BUTTONJJLEFT)->ShowWindow(SW_SHOW);
- GetDlgItem(IDC_BUTTONJJRIGHT)->ShowWindow(SW_SHOW);
- GetDlgItem(IDC_BUTTONGQLEFT)->ShowWindow(SW_SHOW);
- GetDlgItem(IDC_BUTTONGQRIGHT)->ShowWindow(SW_SHOW);
- GetDlgItem(IDC_YZD)->ShowWindow(SW_SHOW);
- GetDlgItem(IDC_BUTTONYZW)->ShowWindow(SW_SHOW);
- //预览
- GetDlgItem(IDC_PLAY)->ShowWindow(SW_SHOW);
- //系统设置
- GetDlgItem(IDC_SYSTEMCFG)->ShowWindow(SW_SHOW);
- //抓图
- GetDlgItem(IDC_GETPICTURE)->ShowWindow(SW_SHOW);
- //录像
- GetDlgItem(IDC_RECORD)->ShowWindow(SW_SHOW);
-
- //时间日志
- GetDlgItem(IDC_EVENTLIST)->ShowWindow(SW_SHOW);
- ////布防,撤防
- //GetDlgItem(IDC_BUTTONALARMSET)->ShowWindow(SW_SHOW);
- ////语音对讲
- //GetDlgItem(IDC_AUDIOEXCHANGE)->ShowWindow(SW_SHOW);
- //回放
- GetDlgItem(IDC_VIDEOFILEPLAY)->ShowWindow(SW_SHOW);
- ////亮度
- //GetDlgItem(IDC_SLIDERLD)->ShowWindow(SW_SHOW);
- ////对比度
- //GetDlgItem(IDC_SLIDERDBD)->ShowWindow(SW_SHOW);
- ////饱和度
- //GetDlgItem(IDC_SLIDERBHD)->ShowWindow(SW_SHOW);
- ////色度
- //GetDlgItem(IDC_SLIDERSD)->ShowWindow(SW_SHOW);
- ////音量
- //GetDlgItem(IDC_SLIDERYL)->ShowWindow(SW_SHOW);
- ////恢复默认值
- //GetDlgItem(IDC_BUTTONPOLL)->ShowWindow(SW_SHOW);
- ////退出系统
- //GetDlgItem(IDC_EXIT)->ShowWindow(SW_SHOW);
- //窗口画面数
- //GetDlgItem(IDC_COMBOWNDNUM)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED1)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED2)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED3)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED4)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED5)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED6)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED7)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED8)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED9)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED10)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED11)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED12)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED13)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED14)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED15)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_LED16)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED1)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED2)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED3)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED4)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED5)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED6)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED7)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED8)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED9)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED10)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED11)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED12)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED13)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED14)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED15)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_ALARMLED16)->ShowWindow(SW_SHOW);
- //2006-01-11
- //GetDlgItem(IDC_STATIC0)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC1)->ShowWindow(SW_SHOW);
- GetDlgItem(IDC_STATIC2)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC3)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC4)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC5)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC6)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC7)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC8)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC9)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC10)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC11)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC12)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC13)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC14)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC15)->ShowWindow(SW_SHOW);
- //GetDlgItem(IDC_STATIC16)->ShowWindow(SW_SHOW);
- GetDlgItem(IDC_STATIC17)->ShowWindow(SW_SHOW);
- }
- else
- {
- //云台
- GetDlgItem(IDC_BUTTONUP)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_BUTTONLEFT)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_BUTTONRIGHT)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_BUTTONDOWN)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_BUTTONTJLEFT)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_BUTTONTJRIGHT)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_BUTTONJJLEFT)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_BUTTONJJRIGHT)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_BUTTONGQLEFT)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_BUTTONGQRIGHT)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_YZD)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_BUTTONYZW)->ShowWindow(SW_HIDE);
-
- //预览
- GetDlgItem(IDC_PLAY)->ShowWindow(SW_HIDE);
- //系统设置
- GetDlgItem(IDC_SYSTEMCFG)->ShowWindow(SW_HIDE);
- //抓图
- GetDlgItem(IDC_GETPICTURE)->ShowWindow(SW_HIDE);
- //录像
- GetDlgItem(IDC_RECORD)->ShowWindow(SW_HIDE);
- //时间日志
- GetDlgItem(IDC_EVENTLIST)->ShowWindow(SW_HIDE);
- //布防,撤防
- GetDlgItem(IDC_BUTTONALARMSET)->ShowWindow(SW_HIDE);
- //语音对讲
- GetDlgItem(IDC_AUDIOEXCHANGE)->ShowWindow(SW_HIDE);
- //回放
- GetDlgItem(IDC_VIDEOFILEPLAY)->ShowWindow(SW_HIDE);
- //亮度
- GetDlgItem(IDC_SLIDERLD)->ShowWindow(SW_HIDE);
- //对比度
- GetDlgItem(IDC_SLIDERDBD)->ShowWindow(SW_HIDE);
- //饱和度
- GetDlgItem(IDC_SLIDERBHD)->ShowWindow(SW_HIDE);
- //色度
- GetDlgItem(IDC_SLIDERSD)->ShowWindow(SW_HIDE);
- //音量
- GetDlgItem(IDC_SLIDERYL)->ShowWindow(SW_HIDE);
- //恢复默认值
- GetDlgItem(IDC_BUTTONPOLL)->ShowWindow(SW_HIDE);
- //退出系统
- GetDlgItem(IDC_EXIT)->ShowWindow(SW_HIDE);
- //窗口画面数
- GetDlgItem(IDC_COMBOWNDNUM)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED1)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED2)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED3)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED4)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED5)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED6)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED7)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED8)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED9)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED10)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED11)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED12)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED13)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED14)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED15)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_LED16)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED1)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED2)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED3)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED4)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED5)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED6)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED7)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED8)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED9)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED10)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED11)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED12)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED13)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED14)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED15)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_ALARMLED16)->ShowWindow(SW_HIDE);
- //2006-01-11
- GetDlgItem(IDC_STATIC0)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC1)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC2)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC3)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC4)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC5)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC6)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC7)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC8)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC9)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC10)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC11)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC12)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC13)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC14)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC15)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC16)->ShowWindow(SW_HIDE);
- GetDlgItem(IDC_STATIC17)->ShowWindow(SW_HIDE);
- }
- }
- void CNewclientDlg::F_ShowVideoParams()
- {
- m_ld.SetPos(ClientParam.m_VideoInfo[iActiveWndNumber].m_iBrightness);
- m_sd.SetPos(ClientParam.m_VideoInfo[iActiveWndNumber].m_iHue);
- m_bhd.SetPos(ClientParam.m_VideoInfo[iActiveWndNumber].m_iSaturation);
- m_dbd.SetPos(ClientParam.m_VideoInfo[iActiveWndNumber].m_iContrast);
- m_yl.SetPos(ClientParam.m_Volume);
- }
- void CNewclientDlg::F_NextPage()
- {
- int itemp,i;
- itemp = numberpos % WINDOWNUM;
- if ((itemp > 0) || (numberpos == iSurveillanceNumber))//只有当numberpos是WINDOWNUM的整数倍时才有可能按next
- return;
- for(i = 0; i < MAXVIEWNUM; i++)
- {
- if( (myoutput[i].m_iPlayhandle >= 0) || (myoutput[i].m_bFileSave) )
- F_StopClientRecord(i);
- }
- if( (ClientParam.m_bEnlarged) || (ClientParam.m_bFullScreen) )
- {
- ArrayWindow(0, WINDOWNUM); //窗口放大状态时,循环到下一画面,恢复原窗口数;
- MoveCurWin(WINDOWNUM,0);
- ClientParam.m_bEnlarged = FALSE;
- ClientParam.m_bFullScreen = FALSE;
- }
- itemp = iSurveillanceNumber - numberpos;
- if(itemp > WINDOWNUM)
- itemp = WINDOWNUM;
- if(!ClientParam.m_bUseCard)
- {
- if(!g_bShareSound)
- NET_DVR_CloseSound();
- }
- for(i=0;i<WINDOWNUM;i++)
- {
- if(g_bShareSound)
- NET_DVR_CloseSoundShare(myoutput[i].m_iPlayhandle);
- myoutput[i].StopNet();
- }
- for(i=0;i<itemp;i++)
- {
- if (i+numberpos < MAXNUMBER)
- {
- if(ClientParam.m_bUseCard)
- myoutput[i].StartCard(&selipinfo[i+numberpos]);
- else
- {
- myoutput[i].StartNet(&selipinfo[i+numberpos]);
- if(g_bShareSound && (myoutput[i].m_iPlayhandle >= 0))
- {
- ClientParam.m_bPlaySound[i] = TRUE;
- }
- }
- Sleep(100);
- }
- }
- itemp = iSurveillanceNumber - numberpos;
- if(itemp <= WINDOWNUM)
- {
- numberpos = iSurveillanceNumber;
- ClientParam.m_bNextPage = FALSE;
- }
- else
- {
- numberpos += WINDOWNUM;
- }
-
- ClientParam.m_bFrontPage = TRUE;
- UpdateData(FALSE);
- }
- void CNewclientDlg::F_FrontPage()
- {
- int itemp,i;
- if(numberpos <= WINDOWNUM)
- return;
- for(i = 0; i < MAXVIEWNUM; i++)
- {
- if( (myoutput[i].m_iPlayhandle >= 0) || (myoutput[i].m_bFileSave) )
- F_StopClientRecord(i);
- }
- if( (ClientParam.m_bEnlarged) || (ClientParam.m_bFullScreen) )
- {
- ArrayWindow(0, WINDOWNUM); //窗口放大状态时,循环到下一画面,恢复原窗口数;
- MoveCurWin(WINDOWNUM,0);
- ClientParam.m_bEnlarged = FALSE;
- ClientParam.m_bFullScreen = FALSE;
- }
- if(numberpos > WINDOWNUM)
- {
- if(numberpos < 2*WINDOWNUM)
- {
- itemp = 0;
- }
- else
- {
- i = numberpos % WINDOWNUM;
- if (i == 0)
- itemp = numberpos - 2*WINDOWNUM ;
- else
- itemp = numberpos - WINDOWNUM -i;
- }
- if(!ClientParam.m_bUseCard)
- {
- if(!g_bShareSound)
- NET_DVR_CloseSound();
- }
- //itemp:确定上一页要播放监控点的起始编号;
- for(i=0;i<WINDOWNUM;i++)
- {
- if(g_bShareSound)
- NET_DVR_CloseSoundShare(myoutput[i].m_iPlayhandle);
- myoutput[i].StopNet();
- }
- for(i=0;i<WINDOWNUM;i++)
- {
- if(itemp+i < MAXNUMBER)
- {
- if(ClientParam.m_bUseCard)
- myoutput[i].StartCard(&selipinfo[i+itemp]);
- else
- {
- myoutput[i].StartNet(&selipinfo[i+itemp]);
- if(g_bShareSound && (myoutput[i].m_iPlayhandle >= 0))
- {
- ClientParam.m_bPlaySound[i] = TRUE;
- }
- }
- Sleep(100);
- }
- }
- if (numberpos <= 2*WINDOWNUM)
- {
- numberpos = WINDOWNUM;
- ClientParam.m_bFrontPage = FALSE; //没有上一页
- }
- else
- {
- i = numberpos % WINDOWNUM;
- if(i == 0)
- numberpos -= WINDOWNUM;
- else
- numberpos -= i;
- }
- }
-
- ClientParam.m_bNextPage = TRUE;
- UpdateData(FALSE);
- }
- void CNewclientDlg::F_CyclePause()
- {
- if(!ClientParam.m_bPaused)
- {
- ClientParam.m_bPaused = TRUE;
- if(cycletimer)
- {
- KillTimer(CYCLE_TIMER);
- cycletimer = 0;
- }
- }
- else
- {
- m_bChangePage = TRUE;
- F_CyclePlay();
- if(cycletimer == 0)
- cycletimer = SetTimer(CYCLE_TIMER,ClientParam.m_iCycleTime*1000,NULL);
- ClientParam.m_bPaused = FALSE;
- }
- }
- void CNewclientDlg::F_CyclePlay()
- {
- int itemp,i,j;
- TRACE("F_CyclePlay");
- if (iSurveillanceNumber <= WINDOWNUM)
- return;
- m_bChangePage = FALSE;
-
- if( (ClientParam.m_bEnlarged) || (ClientParam.m_bFullScreen) )
- {
- if(ClientParam.m_bFullScreen)
- {
- F_EndFullScreen();
- }
- ArrayWindow(0, WINDOWNUM); //窗口放大状态时,循环到下一画面,恢复原窗口数;
- MoveCurWin(WINDOWNUM,0);
- ClientParam.m_bEnlarged = FALSE;
- ClientParam.m_bFullScreen = FALSE;
- }
- if (iSurveillanceNumber == numberpos) //循环已到了最后一页,又开始第一页;
- itemp = WINDOWNUM;
- else
- {
- itemp = iSurveillanceNumber - numberpos;
-
- if (itemp > WINDOWNUM)
- itemp = WINDOWNUM;
- }
-
- if (iSurveillanceNumber == numberpos)
- j = 0;
- else
- j = numberpos;
-
- if(!ClientParam.m_bUseCard)
- {
- if(!g_bShareSound)
- NET_DVR_CloseSound();
- }
- //如果一个循环结束,可能不是从9->9,或许是9->i,所以需要对对(9-i)做ClientStop
- //循环到最后一个画面,要播放的窗口数可能小于WINDOWNUM,所以在播放最后一个画面时,关闭多余的播放窗口;
- for(i=0;i<WINDOWNUM;i++)
- {
- // TRACE("cycle stopplay %d", myoutput[i].m_iPlayhandle);
- if(g_bShareSound)
- NET_DVR_CloseSoundShare(myoutput[i].m_iPlayhandle);
- myoutput[i].StopNet();
- // TRACE("StopNet");
- }
-
- for(i=0;i<itemp;i++)
- {
- if (i+j < MAXNUMBER)
- {
- // TRACE("play sel = %d", i+j);
- if(ClientParam.m_bUseCard)
- myoutput[i].StartCard(&selipinfo[i+j]);
- else
- {
- myoutput[i].StartNet(&selipinfo[i+j]);
- if(g_bShareSound && (myoutput[i].m_iPlayhandle >= 0))
- {
- ClientParam.m_bPlaySound[i] = TRUE;
- }
- }
- Sleep(100);
- // TRACE("cycle startplay %d", myoutput[i].m_iPlayhandle);
- }
- }
-
- // MyInvalidate();
- itemp = iSurveillanceNumber - numberpos;
- if(itemp ==0)
- {
- numberpos = WINDOWNUM;
- }
- else if(itemp <= WINDOWNUM)
- {
- numberpos = iSurveillanceNumber;
- }
- else
- {
- numberpos += WINDOWNUM;
- }
-
- m_bChangePage = TRUE;
-
- UpdateData(FALSE);
- }
- void CNewclientDlg::OnGetpicture()
- {
- // TODO: Add your control notification handler code here
- RECT rc,rc2;
- GetClientRect(&rc);
- if (!getpic.IsExisted())
- {
- getpic.Create(IDD_DLG_GETCAPTURE, NULL);
- //::GetClientRect(getpic.m_hWnd, &rc2);
- //::SetWindowPos(getpic.m_hWnd, wndTopMost, (rc.left+rc.right)/2, (rc.top+rc.bottom)/2, (rc.left+rc.right)/2+300, (rc.top+rc.bottom)/2+200, SWP_SHOWWINDOW);
- CRect rectFrame,rect;
- this->GetWindowRect( rectFrame );
- rect.left = rectFrame.left+rectFrame.Width()/2-340/2;
- rect.top = rectFrame.top+rectFrame.Height()/2-180/2;
- rect.right = rect.left+340;
- rect.bottom = rect.top+180;
- getpic.MoveWindow( rect );
- getpic.ShowWindow(SW_SHOW);
- }
- else
- {
- //::GetClientRect(getpic.m_hWnd, &rc2);
- //::SetWindowPos(getpic.m_hWnd, wndTopMost, (rc.left+rc.right)/2, (rc.top+rc.bottom)/2, (rc2.right-rc2.left)+8, (rc2.bottom-rc2.top)+24, SWP_SHOWWINDOW);
- CRect rectFrame,rect;
- this->GetWindowRect( rectFrame );
- rect.left = rectFrame.left+rectFrame.Width()/2-340/2;
- rect.top = rectFrame.top+rectFrame.Height()/2-180/2;
- rect.right = rect.left+340;
- rect.bottom = rect.top+180;
- //getpic.MoveWindow( rect );
- getpic.ShowWindow(SW_SHOW);
- }
- }
- void CNewclientDlg::OnRecord()
- {
- // TODO: Add your control notification handler code here
- int i = iActiveWndNumber;
-
- if(myoutput[i].m_bIsAutoSave || ClientParam.m_bCycling)
- return;
-
- if( (myoutput[i].m_iPlayhandle >= 0) && (!myoutput[i].m_bFileSave) )
- {
- if(F_MakeDir())
- {
- F_StartClientRecord(i);
- }
- }
- else if(myoutput[i].m_bFileSave)
- {
- F_StopClientRecord(i);
- }
- }
- BOOL CNewclientDlg::F_MakeDir()
- {
- CString sTemp;
- DWORD dirattr;
- CTime time;
-
- time = CTime::GetCurrentTime();
- sTemp.Format("%c:\\mpeg4record\\", m_cCurrentRecordDriver);
- dirattr = GetFileAttributes(sTemp);
- if(dirattr == FILE_ATTRIBUTE_DIRECTORY)
- {
- sTemp.Format("%c:\\mpeg4record\\%4d-%02d-%02d\\", m_cCurrentRecordDriver, time.GetYear(), time.GetMonth(), time.GetDay());
- dirattr=GetFileAttributes(sTemp);
- if(dirattr == FILE_ATTRIBUTE_DIRECTORY)
- {
- ClientParam.m_csClientRecordPath.Format("%s",sTemp);
- TRACE("已经创建了目录%s", sTemp);
- return TRUE;
- }
- else
- {
- if(!CreateDirectory(sTemp, NULL))
- {
- MessageBox("创建年月日目录失败!", "温馨提示", MB_ICONINFORMATION);
-
- return FALSE;
- }
- else
- {
- ClientParam.m_csClientRecordPath.Format("%s",sTemp);
- TRACE("在已有的目录%c:\\mpeg4record下创建子目录%4d-%02d-%02d", m_cCurrentRecordDriver, time.GetYear(), time.GetMonth(), time.GetDay());
- return TRUE;
- }
- }
- }
- if(!CreateDirectory(sTemp, NULL))
- {
- TRACE("创建mpeg4record目录失败!");
- return FALSE;
- }
- sTemp.Format("%c:\\mpeg4record\\%4d-%02d-%02d\\",m_cCurrentRecordDriver, time.GetYear(), time.GetMonth(), time.GetDay());
- if(!CreateDirectory(sTemp, NULL))
- {
- return FALSE;
- }
- ClientParam.m_csClientRecordPath.Format("%s",sTemp);
- TRACE("先创建%c:\\mpeg4record目录,再创建子目录%4d-%02d-%02d", m_cCurrentRecordDriver, time.GetYear(), time.GetMonth(), time.GetDay());
- return TRUE;
- }
- void CNewclientDlg::F_StartClientRecord(int iRecordWndIndex)
- {
- int i;
- char cFilename[256];
-
- i = iRecordWndIndex;
- TRACE("Start myoutput[%d] Client Record", i);
- CTime time = CTime::GetCurrentTime();
- sprintf(cFilename, "%s%s_%02d_%4d%02d%02d_%02d%02d%02d.mp4", ClientParam.m_csClientRecordPath, myoutput[i].m_csIP, myoutput[i].m_iChannel, \
- time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond() );
- int nNum = 0;
- bool bRet = false;
- while( !bRet )
- {
- bRet = NET_DVR_SaveRealData(myoutput[i].m_iPlayhandle, cFilename);
- Sleep( 1000 );
- if( nNum++ >= 50 )
- return;
- }
- TRACE("Client Record Filename = %s", cFilename);
- myoutput[i].m_lChangeFileNameTime = time.GetTime() + ClientParam.m_iRecordFileInterval * 60;
- myoutput[i].m_bFileSave = TRUE;
- //m_pCapLed[i]->SetLed(CLed::LED_COLOR_RED,CLed::LED_ON,CLed::LED_ROUND);
- g_RecordInfo[iRecordWndIndex].bCapture = true;
- }
- void CNewclientDlg::F_StopClientRecord(int iRecordWndIndex)
- {
- int i;
-
- i = iRecordWndIndex;
- TRACE("Stop myoutput[%d] Client Record", i);
- NET_DVR_StopSaveRealData(myoutput[i].m_iPlayhandle);
- myoutput[i].m_bFileSave = FALSE;
- //m_pCapLed[i]->SetLed(CLed::LED_COLOR_RED,CLed::LED_DISABLED,CLed::LED_ROUND);
- g_RecordInfo[iRecordWndIndex].bCapture = false;
- }
- /*
- void CNewclientDlg::OnHide()
- {
- // TODO: Add your control notification handler code here
- ShowWindow(SW_MINIMIZE);
- }
- */
- void CNewclientDlg::OnEventlist()
- {
- // TODO: Add your control notification handler code here
- int i;
- CEventLog EventLogDlg;
- EventLogDlg.DoModal();
- SetEvent(hVideoBeeper);
- for(i = 0; i < MAXVIEWNUM; i++)
- {
- if(ClientParam.m_iAlarmHandle[i] >= 0)
- {
- //m_pAlarmLed[i]->SetLed(CLed::LED_COLOR_GREEN,CLed::LED_ON,CLed::LED_ROUND);
- }
- //else
- //m_pAlarmLed[i]->SetLed(CLed::LED_COLOR_RED,CLed::LED_DISABLED,CLed::LED_ROUND);
- }
- for(i = 0; i < MAXALARMIN; i++)
- {
- alarminfo[i].m_csIP.Format(_T(""));
- alarminfo[i].m_csUsername.Format(_T(""));
- alarminfo[i].m_csPassword.Format(_T(""));
- alarminfo[i].m_iChannel = -1;
- alarminfo[i].m_iAlarmLevel = -1;
- alarminfo[i].m_iAlarmType = -1;
- alarminfo[i].m_iPortIndex = -1;
- alarminfo[i].m_wServerPort = 8000;
- }
- m_iAlarmNumber = 0;
- }
- void CNewclientDlg::OnButtonalarmset()
- {
- // TODO: Add your control notification handler code here
- int i;
-
- CSetAlarm SetAlarmDlg;
- SetAlarmDlg.DoModal();
- if(SetAlarmDlg.m_bOK)
- {
- for(i = 0; i < MAXVIEWNUM; i++)
- {
- if(ClientParam.m_iAlarmHandle[i] >= 0)
- {
- //m_pAlarmLed[i]->SetLed(CLed::LED_COLOR_GREEN,CLed::LED_ON,CLed::LED_ROUND);
- }
- else
- {
- //m_pAlarmLed[i]->SetLed(CLed::LED_COLOR_RED,CLed::LED_DISABLED,CLed::LED_ROUND);
- }
- }
- }
- }
- void CNewclientDlg::OnVideofileplay()
- {
- // TODO: Add your control notification handler code here
- CPlayBack PlayBackDlg;
- PlayBackDlg.DoModal();
- }
- BOOL CNewclientDlg::F_JudgeDiskFull()
- {
- int i;
- ULARGE_INTEGER FreeSpace,CallerSpace,TotalSpace;
- CString csRootPath;
-
- for(i = ClientParam.m_iStartRecordDriver; i < ClientParam.m_iEndRecordDriver + 1; i++)
- {
- csRootPath.Format("%c%s",m_cHardDriver[i],":\\"); //从录像起始驱动器开始
- GetDiskFreeSpaceEx(csRootPath,&CallerSpace,&TotalSpace,&FreeSpace);
- if(CallerSpace.QuadPart > MINSPACE)
- {
- m_cCurrentRecordDriver = m_cHardDriver[i];
- // TRACE("m_cCurrentRecordDriver = %c:\\", m_cCurrentRecordDriver);
- ClientParam.m_bAllDiskFull = FALSE;
- return TRUE;
- }
- }
- ClientParam.m_bAllDiskFull = TRUE;
- return FALSE;
- }
- void CNewclientDlg::OnTimer(UINT nIDEvent)
- {
- // TODO: Add your message handler code here and/or call default
- //在此调用此函数重置时区,以修正时区调整之后由于程序只在初始化时获取时区而造成不能随之调整的问题
- _tzset();
- time_t lCurrentTime;
- CString csRootPath;
- CString csTemp;
- int i,j;
- CTime time1 = CTime::GetCurrentTime();
- //-1与星期相对应
- int iWeekday = time1.GetDayOfWeek() - 1;
- WORD iNowTime = time1.GetHour() * 100 + time1.GetMinute();
- NET_DVR_TIME CurTime;
- CurTime.dwYear = time1.GetYear();
- CurTime.dwMonth = time1.GetMonth();
- CurTime.dwDay = time1.GetDay();
- CurTime.dwHour = time1.GetHour();
- CurTime.dwMinute = time1.GetMinute();
- CurTime.dwSecond = time1.GetSecond();
- HANDLE hSnap = NULL;
- switch(nIDEvent)
- {
- case CYCLE_TIMER:
- if(m_bChangePage)
- F_CyclePlay();
- break;
- case FREESPACE_TIMER:
- csRootPath.Format("%c:\\", m_cCurrentRecordDriver);
- ULARGE_INTEGER FreeSpace,CallerSpace,TotalSpace;
- GetDiskFreeSpaceEx(csRootPath,&CallerSpace,&TotalSpace,&FreeSpace);
- ClientParam.m_bAllDiskFull = FALSE;
- if(CallerSpace.QuadPart < MINSPACE)
- {
- csTemp.Format("%4d-%02d-%02d %02d:%02d:%02d 硬盘驱动器%c已满", CurTime.dwYear, CurTime.dwMonth, CurTime.dwDay, CurTime.dwHour, CurTime.dwMinute, CurTime.dwSecond, m_cCurrentRecordDriver);
- TRACE(csTemp);
-
- if(!F_JudgeDiskFull()) //所有硬盘都满,删除8个最早的录像文件
- {
- if(ClientParam.m_bCycleRecord)
- {
- F_DeleteClientRecordFile();
- }
- else
- {
- for(i = 0; i < MAXVIEWNUM; i++)
- {
- if( (myoutput[i].m_iPlayhandle >= 0) && (myoutput[i].m_bFileSave) )
- {
- F_StopClientRecord(i);
- }
- }
- MessageBox("客户端录像硬盘驱动器已满,无法继续录像!", "温馨提示", MB_ICONINFORMATION);
-
- return;
- }
- }
- else
- { //其他分区还有空间,存放到其他分区
-
- if(F_MakeDir())
- {
- TRACE("客户端录像文件存放到%c分区", m_cCurrentRecordDriver);
- for(i = 0; i < MAXVIEWNUM; i++)
- {
- if( (myoutput[i].m_iPlayhandle >= 0) && (myoutput[i].m_bFileSave) )
- F_ChangeRecordFileName(i);
- }
- }
- }
- }
- break;
- case FILEINTERVAL_TIMER:
- //////////////////////
- //////////////////////
- for(i = 0; i < MAXVIEWNUM; i++)
- {
- if( (myoutput[i].m_iPlayhandle >= 0) && (myoutput[i].m_bFileSave) )
- {
- lCurrentTime = time1.GetTime();
- if(lCurrentTime - myoutput[i].m_lChangeFileNameTime >= 0)
- {
- TRACE("更改客户端录象文件名时间到");
- if(F_MakeDir())
- F_ChangeRecordFileName(i);
- }
- }
- }
- break;
- case AUTORECORD_TIMER:
- if(ClientParam.m_bCycling)
- return; //循环播放客户端不允许录像
- if(!ClientParam.m_bAutoRecord)
- {
- for(j = 0; j < MAXVIEWNUM; j++)
- {
- if(myoutput[j].m_bIsAutoSave)
- {
- F_StopClientRecord(j);
- myoutput[j].m_bIsAutoSave = FALSE;
- }
- }
- }
- else
- {
- for(i = 0; i < 4; i++)
- {
- if( (iNowTime >= ClientParam.m_ClientRecordTime[iWeekday][i].m_iStartTime) &&
- (iNowTime < ClientParam.m_ClientRecordTime[iWeekday][i].m_iStopTime) )
- {
- for(j = 0; j < MAXVIEWNUM; j++)
- {
- if(myoutput[j].m_iPlayhandle >= 0)
- {
- //2008-02-25 既没有在自动录像又没有在手动录像才能开始自动录像
- if(!myoutput[j].m_bIsAutoSave && !myoutput[j].m_bFileSave)
- {
- if(ClientParam.m_bAllDiskFull)
- {
- return;
- }
- if(F_MakeDir())
- {
- F_StartClientRecord(j);
- myoutput[j].m_bIsAutoSave = TRUE;
- }
- }
- }
- }
- break;
- }
- }
- //2008-02-25 当前时间不在设定的范围内要将开始的自动录像停掉
- if (i == 4)
- {
- for(j = 0; j < MAXVIEWNUM; j++)
- {
- if(myoutput[j].m_bIsAutoSave)
- {
- F_StopClientRecord(j);
- myoutput[j].m_bIsAutoSave = FALSE;
- }
- }
- }
- }
- break;
- case CHECKSERVER_TIMER:
- if(ClientParam.m_iCheckServerTime == (LONG)(CurTime.dwHour*10000 + CurTime.dwMinute*100 + CurTime.dwSecond) )
- {
- for(i = 0; i < MAXIPNUMBER; i++)
- {
- if(serverinfo[i].m_csServerName != "")
- {
- if(NET_DVR_SetDVRConfig(serverinfo[i].m_lServerID, NET_DVR_SET_TIMECFG,0,&CurTime, sizeof(NET_DVR_TIME)))
- {
- TRACE("%4d年%02d月%02d日%02d时%02d分%02d秒进行硬盘录像机校时成功.", CurTime.dwYear, CurTime.dwMonth, CurTime.dwDay, CurTime.dwHour, CurTime.dwMinute, CurTime.dwSecond);
- }
- else
- {
- TRACE("%4d年%02d月%02d日%02d时%02d分%02d秒进行硬盘录像机校时失败.", CurTime.dwYear, CurTime.dwMonth, CurTime.dwDay, CurTime.dwHour, CurTime.dwMinute, CurTime.dwSecond);
- }
- }
- }
- }
- break;
- case 55:
- {
- DWORD dwTicks = GetTickCount();
- for( int i=0;i<g_nRecordIndex;i++ )
- {
- int nTime=0;
- //判断没移动多久了,
- nTime = ( dwTicks-g_RecordInfo[i].dwNoMotionStartTime)/1000;
- if( g_RecordInfo[i].bCapture && nTime > g_NoMotionTime( g_nNoMotionTime ) )
- {
- F_StopClientRecord(i);
- }
- //判断视频时间
- nTime = ( dwTicks-g_RecordInfo[i].dwVideoStartTime)/1000;
- if( g_RecordInfo[i].bCapture && nTime > g_VideoMaxTime( g_nVideoMaxTime ) )
- {
- F_StopClientRecord(i);
- }
- }
- }
- default:
- break;
- }
- CDialog::OnTimer(nIDEvent);
- }
- void CNewclientDlg::F_DeleteClientRecordFile()
- {
- CFileFind fdfile,fdfilemp4;
- BOOL bFinded,bfilefind;
- CString sDeleteDir,sTempDelete;
- CString sDir;
- CString sDate;
- CString sFileName;
- CTime time,temptime;
-
- int i,deletenum = 0;
- sDeleteDir.Format("0000-00-00");
- sTempDelete.Format("3000-00-00");
- time=CTime::GetCurrentTime();
-
- for(i = ClientParam.m_iStartRecordDriver; i < (ClientParam.m_iEndRecordDriver + 1); i++)
- {
- sDir.Format("%c:\\mpeg4record\\*.*",m_cHardDriver[i]);
- bFinded=fdfile.FindFile(sDir);
- while (bFinded)
- {
- bFinded=fdfile.FindNextFile();
- if (fdfile.IsDots())
- {
- continue;
- }
- if (fdfile.IsDirectory())
- {
- if(fdfile.GetFileName()==_T("download"))
- {
- continue;
- }
- if(fdfile.GetFileName()==_T("alarm"))
- {
- continue;
- }
- sFileName.Format("%c:\\mpeg4record\\%s\\*.mp4",m_cHardDriver[i],fdfile.GetFileName());
- bfilefind=fdfilemp4.FindFile(sFileName);
- if (!bfilefind)
- {
- RemoveDirectory(fdfile.GetFilePath());
- TRACE("删除目录:%s",fdfile.GetFilePath());
- }
- while(bfilefind)
- {
- bfilefind=fdfilemp4.FindNextFile();
- if (fdfile.IsDots())
- {
- continue;
- }
- fdfilemp4.GetCreationTime(temptime);
- if(temptime<time)
- {
- time=temptime;
- sTempDelete.Format("%s",fdfilemp4.GetFilePath());
- }
- }
- }
- }
- }
- sFileName.Format("%s",sTempDelete);
- if (!DeleteFile(sFileName))
- {
- sTempDelete.Format("删除文件%s失败",sFileName);
- F_AddEvent(sTempDelete);
- for(i = 0; i < MAXVIEWNUM; i++)
- {
- if( (myoutput[i].m_iPlayhandle >= 0) || (myoutput[i].m_bFileSave) )
- F_StopClientRecord(i);
- }
- MessageBox("硬盘容量不足,自动删除文件失败,请清理硬盘后重新开始录像!", "温馨提示", MB_ICONINFORMATION);
-
- }
- else
- {
- sTempDelete.Format("删除文件%s成功",sFileName);
- TRACE("删除文件%s",sFileName);
- deletenum++;
- }
- }
- void CNewclientDlg::F_ChangeRecordFileName(int iRecordWndIndex)
- {
- int i;
- char cFilename[256];
- CTime time = CTime::GetCurrentTime();
-
- i = iRecordWndIndex;
-
- if(myoutput[i].m_bFileSave)
- {
- TRACE("停止myoutput[%d]客户端录像,更换文件名", i);
- NET_DVR_StopSaveRealData(myoutput[i].m_iPlayhandle);
- }
- if(myoutput[i].m_iPlayhandle >= 0)
- {
- sprintf(cFilename, "%s%s_%02d_%4d%02d%02d_%02d%02d%02d.mp4", ClientParam.m_csClientRecordPath, myoutput[i].m_csIP, myoutput[i].m_iChannel, \
- time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond() );
- int nNum = 0;
- bool bRet = false;
- while( !bRet )
- {
- bRet = NET_DVR_SaveRealData(myoutput[i].m_iPlayhandle, cFilename);
- Sleep( 1000 );
- if( nNum++ >= 50 )
- return;
- }
- myoutput[i].m_lChangeFileNameTime = time.GetTime() + ClientParam.m_iRecordFileInterval * 60;
- TRACE("Client Record Filename = %s", cFilename);
- myoutput[i].m_bFileSave = TRUE;
- //m_pCapLed[i]->SetLed(CLed::LED_COLOR_RED,CLed::LED_ON,CLed::LED_ROUND);
- }
- }
- void CNewclientDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
- {
- // TODO: Add your message handler code here and/or call default
- int i;
- WORD wTemp;
- WORD wVolumevalue;
- BOOL bRet;
-
- i = iActiveWndNumber;
- wTemp = (0xFFFF) / 100;
- bRet = FALSE;
- if(myoutput[i].m_iPlayhandle >= 0)
- {
- if(GetDlgItem(IDC_SLIDERLD) == pScrollBar)
- {
- ClientParam.m_VideoInfo[i].m_iBrightness = /*10 - */m_ld.GetPos();
- bRet = TRUE;
- }
- else if(GetDlgItem(IDC_SLIDERDBD) == pScrollBar)
- {
- ClientParam.m_VideoInfo[i].m_iContrast = /*10 - */m_dbd.GetPos();
- bRet = TRUE;
- }
- else if(GetDlgItem(IDC_SLIDERBHD) == pScrollBar)
- {
- ClientParam.m_VideoInfo[i].m_iSaturation = /*10 - */m_bhd.GetPos();
- bRet = TRUE;
- }
- else if(GetDlgItem(IDC_SLIDERSD) == pScrollBar)
- {
- ClientParam.m_VideoInfo[i].m_iHue= /*10 - */m_sd.GetPos();
- bRet = TRUE;
- }
-
- if(bRet)
- {
- bRet = NET_DVR_ClientSetVideoEffect(myoutput[i].m_iPlayhandle, ClientParam.m_VideoInfo[i].m_iBrightness, ClientParam.m_VideoInfo[i].m_iContrast,
- ClientParam.m_VideoInfo[i].m_iSaturation, ClientParam.m_VideoInfo[i].m_iHue);
- if(!bRet)
- {
- MessageBox("设置视频参数失败!", "温馨提示", MB_ICONINFORMATION);
- }
- }
- }
- if(GetDlgItem(IDC_SLIDERYL) == pScrollBar)
- {
- if(lVoiceIndex >= 0)
- {
- TRACE("调整语音对讲声音.");
- ClientParam.m_Volume = m_yl.GetPos();
- wVolumevalue = (WORD)(m_yl.GetPos()) * wTemp;
- NET_DVR_SetVoiceComClientVolume(lVoiceIndex, wVolumevalue);
- }
- else if(ClientParam.m_bPlaySound[i] && (myoutput[i].m_iPlayhandle >= 0))
- {
- TRACE("调整音频浏览声音.");
- ClientParam.m_Volume = m_yl.GetPos();
- wVolumevalue = (WORD)(m_yl.GetPos()) * wTemp;
- if(g_bShareSound)
- {
- NET_DVR_OpenSoundShare(myoutput[iActiveWndNumber].m_iPlayhandle);
- }
- else
- {
- NET_DVR_OpenSound(myoutput[i].m_iPlayhandle);
- }
- NET_DVR_Volume(myoutput[i].m_iPlayhandle, wVolumevalue);
- }
- }
- CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
- }
- void CNewclientDlg::OnButtonpoll()
- {
- // TODO: Add your control notification handler code here
- int i = iActiveWndNumber;
- WORD wTemp = (0xFFFF) / 100;
- WORD wVolumevalue;
- ClientParam.m_VideoInfo[i].m_iBrightness = DEFAULTBRIGHTNESS;
- ClientParam.m_VideoInfo[i].m_iContrast = DEFAULTCONTRAST;
- ClientParam.m_VideoInfo[i].m_iSaturation = DEFAULTSATURATION;
- ClientParam.m_VideoInfo[i].m_iHue = DEFAULTHUE;
- NET_DVR_ClientSetVideoEffect(myoutput[i].m_iPlayhandle, ClientParam.m_VideoInfo[i].m_iBrightness, ClientParam.m_VideoInfo[i].m_iContrast,
- ClientParam.m_VideoInfo[i].m_iSaturation, ClientParam.m_VideoInfo[i].m_iHue);
-
- ClientParam.m_Volume = DEFAULTVOLUME;
- if(lVoiceIndex >= 0)
- {
- TRACE("调整语音对讲声音.");
- wVolumevalue = (WORD)(ClientParam.m_Volume) * 10 *wTemp;
- NET_DVR_SetVoiceComClientVolume(lVoiceIndex, wVolumevalue);
- }
- else if(ClientParam.m_bPlaySound)
- {
- TRACE("调整音频浏览声音.");
- wVolumevalue = (WORD)(ClientParam.m_Volume) * 10 * wTemp;
- if(g_bShareSound)
- {
- NET_DVR_OpenSoundShare(myoutput[iActiveWndNumber].m_iPlayhandle);
- }
- else
- {
- NET_DVR_OpenSound(myoutput[i].m_iPlayhandle);
- }
- NET_DVR_Volume(myoutput[i].m_iPlayhandle, wVolumevalue);
- }
- m_ld.SetPos(ClientParam.m_VideoInfo[iActiveWndNumber].m_iBrightness);
- m_sd.SetPos(ClientParam.m_VideoInfo[iActiveWndNumber].m_iHue);
- m_bhd.SetPos(ClientParam.m_VideoInfo[iActiveWndNumber].m_iSaturation);
- m_dbd.SetPos(ClientParam.m_VideoInfo[iActiveWndNumber].m_iContrast);
- m_yl.SetPos(ClientParam.m_Volume);
- }
- void CNewclientDlg::OnButtonyzw()
- {
- // TODO: Add your control notification handler code here
- UpdateData(TRUE);
- int i = iActiveWndNumber;
- if(myoutput[i].m_iPlayhandle >= 0)
- {
- NET_DVR_PTZPreset(myoutput[i].m_iPlayhandle, GOTO_PRESET, m_yzd);
- }
- }
- void CNewclientDlg::OnCancel()
- {
- // TODO: Add extra cleanup here
-
- // CDialog::OnCancel();
- }
- /*
- void CNewclientDlg::OnButauto()
- {
- // TODO: Add your control notification handler code here
- char buf[20];
- buf[0] = 0xa0;
- buf[1] = 0x00;
- buf[2] = 0x00;
- buf[3] = 0x07;
- buf[4] = 0x00;
- buf[5] = 0x63;
- buf[6] = 0xaf;
- buf[7] = 0x6b;
- NET_DVR_TransPTZ_Other(myoutput[0].m_lServerID, 1, buf, 8);
- }
- */
- /*void CNewclientDlg::OnButsharesound()
- {
- // TODO: Add your control notification handler code here
- if(g_bShareSound)
- {
- NET_DVR_SetAudioMode(1);
- g_bShareSound = FALSE;
- // GetDlgItem(IDC_BUTSHARESOUND)->SetWindowText("sound");
- }
- else
- {
- NET_DVR_SetAudioMode(2);
- g_bShareSound = TRUE;
- // GetDlgItem(IDC_BUTSHARESOUND)->SetWindowText("sharesound");
- }
- }
- */
- void CNewclientDlg::OnSelchangeCombonetdelay()
- {
- // TODO: Add your control notification handler code here
- UpdateData(TRUE);
- g_nNetDelay = m_NetDelayCtrl.GetCurSel();
- }
- void CNewclientDlg::OnButton1()
- {
- // TODO: Add your control notification handler code here
- UpdateData(TRUE);
- int i = iActiveWndNumber;
- if(!NET_DVR_MakeKeyFrame(myoutput[i].m_lServerID, myoutput[i].m_iChannel))
- {
- }
- }
- void CNewclientDlg::OnMove(int x, int y)
- {
- CDialog::OnMove(x, y);
-
- // TODO: Add your message handler code here
- Invalidate(TRUE);
- if (ClientParam.m_bUseCard)
- NET_DVR_RefreshSurface_Card();
- UpdateWindow();
- }
- void CNewclientDlg::OnButton2()
- {
- // TODO: Add your control notification handler code here
- UpdateData(TRUE);
- int i = iActiveWndNumber;
- if(!NET_DVR_MakeKeyFrameSub(myoutput[i].m_lServerID, myoutput[i].m_iChannel))
- {
- }
- }
- void CNewclientDlg::OnCruise()
- {
- // TODO: Add your control notification handler code here
- if (myoutput[iActiveWndNumber].m_iPlayhandle < 0)
- {
- return;
- }
- CCruiseRoute CruiseRoute;
- CruiseRoute.m_lServerID = myoutput[iActiveWndNumber].m_lServerID;
- CruiseRoute.DoModal();
- }
- void CNewclientDlg::OnBnClickedButtonup()
- {
- // TODO: 在此添加控件通知处理程序代码
- }
- void CNewclientDlg::OnBnClickedButtondown()
- {
- // TODO: 在此添加控件通知处理程序代码
- }
- HBRUSH CNewclientDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
- {
- HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
- // TODO: 在此更改 DC 的任何属性
- HBRUSH B = CreateSolidBrush(RGB( 255,255,255 ));
- if( nCtlColor == CTLCOLOR_STATIC )
- {
- pDC->SetBkColor(RGB( 255,255,255 ));
- pDC->SetTextColor(RGB(0,0,0));
- return B;
- }
- DeleteObject( B );
- // TODO: 如果默认的不是所需画笔,则返回另一个画笔
- return hbr;
- }
- BOOL CNewclientDlg::OnEraseBkgnd(CDC* pDC)
- {
- #if 0
- CRect rc;
- this->GetClientRect(&rc); //ScreenToClient(&rc);
- pDC->StretchBlt(rc.left, rc.top, rc.Width(),rc.Height(),&m_dcMemBak,
- 0,0,m_bmInfoBak.bmWidth-1,m_bmInfoBak.bmHeight-1,SRCCOPY);
- #else
- CBrush brush;
- CRect rect, rect2;
- COLORREF rgbBackGnd = RGB( 255,255,255 ); //RGB( 59,61,63 );
- GetWindowRect(&rect);
- ScreenToClient(&rect);
- brush.CreateSolidBrush(rgbBackGnd);
- pDC->FillRect(rect,&brush);
-
- //rect2.left = rect.left+775;
- //rect2.top = 0;
- //rect2.right = rect.right-5;
- //rect2.bottom = rect.top+735;
- //CPen pen;
- //pen.CreatePen(PS_SOLID,5,RGB(255,204,0));
- //pDC->SelectObject(pen);
- //CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH)) ;
- //CBrush *pOldBrush=pDC->SelectObject(pBrush);//选入设备描述表
- //pDC->Rectangle(rect2);//绘制矩形
- //pDC->SelectObject(pOldBrush);
- //DeleteObject( pBrush );
- DeleteObject( brush );
- //DeleteObject( pen );
-
-
- #endif
-
- return TRUE;
- //return CDialog::OnEraseBkgnd(pDC);
- }
- void CNewclientDlg::ShowGrid()
- {
- CClientDC dc(this);
- HICON hIcon;
- CRect rc1,rc2,rc3,rc4,rc5,rc6,rc7;
- GetDlgItem(IDC_STA_GRID1)->GetWindowRect( rc1 );ScreenToClient( &rc1 );
- GetDlgItem(IDC_STA_GRID2)->GetWindowRect( rc2 );ScreenToClient( &rc2 );
- GetDlgItem(IDC_STA_GRID3)->GetWindowRect( rc3 );ScreenToClient( &rc3 );
- GetDlgItem(IDC_STA_GRID4)->GetWindowRect( rc4 );ScreenToClient( &rc4 );
- GetDlgItem(IDC_STA_GRID5)->GetWindowRect( rc5 );ScreenToClient( &rc5 );
- GetDlgItem(IDC_STA_GRID6)->GetWindowRect( rc6 );ScreenToClient( &rc6 );
- GetDlgItem(IDC_STA_GRID7)->GetWindowRect( rc7 );ScreenToClient( &rc7 );
- if( WINDOWNUM==1 )
- {
- hIcon = AfxGetApp()->LoadIcon(IDI_GRID1_ON);
- dc.DrawIcon(rc1.left,rc1.top,hIcon);
- }
- else
- {
- hIcon = AfxGetApp()->LoadIcon(IDI_GRID1_OFF);
- dc.DrawIcon(rc1.left,rc1.top,hIcon);
- }
- if( WINDOWNUM==4 )
- {
- hIcon = AfxGetApp()->LoadIcon(IDI_GRID4_ON);
- dc.DrawIcon(rc2.left,rc2.top,hIcon);
- }
- else
- {
- hIcon = AfxGetApp()->LoadIcon(IDI_GRID4_OFF);
- dc.DrawIcon(rc2.left,rc2.top,hIcon);
- }
- if( WINDOWNUM==9 )
- {
- hIcon = AfxGetApp()->LoadIcon(IDI_GRID9_ON);
- dc.DrawIcon(rc3.left,rc3.top,hIcon);
- }
- else
- {
- hIcon = AfxGetApp()->LoadIcon(IDI_GRID9_OFF);
- dc.DrawIcon(rc3.left,rc3.top,hIcon);
- }
- if( WINDOWNUM==16 )
- {
- hIcon = AfxGetApp()->LoadIcon(IDI_GRID16_ON);
- dc.DrawIcon(rc4.left,rc4.top,hIcon);
- }
- else
- {
- hIcon = AfxGetApp()->LoadIcon(IDI_GRID16_OFF);
- dc.DrawIcon(rc4.left,rc4.top,hIcon);
- }
- if( WINDOWNUM==33 )
- {
- hIcon = AfxGetApp()->LoadIcon(IDI_GRID32_ON);
- dc.DrawIcon(rc5.left,rc5.top,hIcon);
- }
- else
- {
- hIcon = AfxGetApp()->LoadIcon(IDI_GRID32_OFF);
- dc.DrawIcon(rc5.left,rc5.top,hIcon);
- }
- if( WINDOWNUM==64 )
- {
- hIcon = AfxGetApp()->LoadIcon(IDI_GRID64_ON);
- dc.DrawIcon(rc6.left,rc6.top,hIcon);
- }
- else
- {
- hIcon = AfxGetApp()->LoadIcon(IDI_GRID64_OFF);
- dc.DrawIcon(rc6.left,rc6.top,hIcon);
- }
- //if( WINDOWNUM==128 )
- //{
- // hIcon = AfxGetApp()->LoadIcon(IDI_GRID128_ON);
- // dc.DrawIcon(rc7.left,rc7.top,hIcon);
- //}
- //else
- //{
- // hIcon = AfxGetApp()->LoadIcon(IDI_GRID128_OFF);
- // dc.DrawIcon(rc7.left,rc7.top,hIcon);
- //}
- }
- void CNewclientDlg::OnLButtonUp(UINT nFlags, CPoint point)
- {
- // TODO: 在此添加消息处理程序代码和/或调用默认值
- WORD wndnum=0;
- CRect rc1,rc2,rc3,rc4,rc5,rc6,rc7;
- GetDlgItem(IDC_STA_GRID1)->GetWindowRect( rc1 );ScreenToClient( &rc1 );
- GetDlgItem(IDC_STA_GRID2)->GetWindowRect( rc2 );ScreenToClient( &rc2 );
- GetDlgItem(IDC_STA_GRID3)->GetWindowRect( rc3 );ScreenToClient( &rc3 );
- GetDlgItem(IDC_STA_GRID4)->GetWindowRect( rc4 );ScreenToClient( &rc4 );
- GetDlgItem(IDC_STA_GRID5)->GetWindowRect( rc5 );ScreenToClient( &rc5 );
- GetDlgItem(IDC_STA_GRID6)->GetWindowRect( rc6 );ScreenToClient( &rc6 );
- GetDlgItem(IDC_STA_GRID7)->GetWindowRect( rc7 );ScreenToClient( &rc7 );
- bool bIn = false;
- if( rc1.PtInRect( point ) )
- {
- wndnum = 1; bIn = true;
- }
- if( rc2.PtInRect( point ) )
- {
- wndnum = 4; bIn = true;
- }
- if( rc3.PtInRect( point ) )
- {
- wndnum = 9; bIn = true;
- }
- if( rc4.PtInRect( point ) )
- {
- wndnum = 16; bIn = true;
- }
- if( rc5.PtInRect( point ) )
- {
- wndnum = 33; bIn = true;
- }
- if( rc6.PtInRect( point ) )
- {
- wndnum = 64; bIn = true;
- }
- //if( rc7.PtInRect( point ) )
- //{
- // wndnum = 128; bIn = true;
- //}
- if( bIn && WINDOWNUM != wndnum)
- {
- WINDOWNUM = wndnum;
- if(ClientParam.m_bCycling)
- {
- MessageBox("请停止循环播放!", "温馨提示", MB_ICONINFORMATION);
-
- return;
- }
- if(ClientParam.m_bPlaying)
- {
- TRACE("Stop Play");
- F_StopPlay();
- OnVideonetplay();
- }
- ArrayWindow(0, WINDOWNUM);
- MoveCurWin(WINDOWNUM,0);
- ShowGrid();
- }
- CDialog::OnLButtonUp(nFlags, point);
- }
|