Adding API header files to project.
1 // DisplayTestDlg.cpp : implementation file
5 #include "DisplayTest.h"
6 #include "DisplayTestDlg.h"
12 static WCHAR staticCh=1;
14 // CAboutDlg dialog used for App About
16 class CAboutDlg : public CDialog
22 enum { IDD = IDD_ABOUTBOX };
25 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
32 CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
36 void CAboutDlg::DoDataExchange(CDataExchange* pDX)
38 CDialog::DoDataExchange(pDX);
41 BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
45 // CDisplayTestDlg dialog
47 CDisplayTestDlg::CDisplayTestDlg(CWnd* pParent /*=NULL*/)
48 : CDialog(CDisplayTestDlg::IDD, pParent)
50 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
58 m_bVfdConnected = FALSE;
59 m_bLcdConnected = FALSE;
62 void CDisplayTestDlg::DoDataExchange(CDataExchange* pDX)
64 CDialog::DoDataExchange(pDX);
66 DDX_Text(pDX, IDC_EDIT1, m_strLine1);
67 DDX_Text(pDX, IDC_EDIT2, m_strLine2);
68 DDX_Text(pDX, IDC_EDIT3, m_strLine3);
71 BEGIN_MESSAGE_MAP(CDisplayTestDlg, CDialog)
78 ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButtonInit)
79 ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButtonVfdSendText)
80 ON_BN_CLICKED(IDC_BUTTON3, OnBnClickedButtonVfdRandomEq)
81 ON_BN_CLICKED(IDC_BUTTON4, OnBnClickedButtonLcdSendText)
82 ON_BN_CLICKED(IDC_BUTTON5, OnBnClickedButtonLcdRandomEq)
84 ON_BN_CLICKED(IDC_ORANGE1, OnLcdOrangeIcon)
85 ON_BN_CLICKED(IDC_ORANGE2, OnLcdOrangeIcon)
86 ON_BN_CLICKED(IDC_ORANGE3, OnLcdOrangeIcon)
87 ON_BN_CLICKED(IDC_ORANGE4, OnLcdOrangeIcon)
88 ON_BN_CLICKED(IDC_ORANGE5, OnLcdOrangeIcon)
89 ON_BN_CLICKED(IDC_ORANGE6, OnLcdOrangeIcon)
90 ON_BN_CLICKED(IDC_ORANGE7, OnLcdOrangeIcon)
91 ON_BN_CLICKED(IDC_ORANGE8, OnLcdOrangeIcon)
92 ON_BN_CLICKED(IDC_ORANGE0, OnLcdOrangeIcon)
93 ON_BN_CLICKED(IDC_MUSIC, OnLcdMediaTypeIcon)
94 ON_BN_CLICKED(IDC_MOVIE, OnLcdMediaTypeIcon)
95 ON_BN_CLICKED(IDC_PHOTO, OnLcdMediaTypeIcon)
96 ON_BN_CLICKED(IDC_CD, OnLcdMediaTypeIcon)
97 ON_BN_CLICKED(IDC_TV, OnLcdMediaTypeIcon)
98 ON_BN_CLICKED(IDC_WEBCASTING, OnLcdMediaTypeIcon)
99 ON_BN_CLICKED(IDC_NEWS, OnLcdMediaTypeIcon)
100 ON_BN_CLICKED(IDC_SPK_L, OnLcdSpeakerIcon)
101 ON_BN_CLICKED(IDC_SPK_C, OnLcdSpeakerIcon)
102 ON_BN_CLICKED(IDC_SPK_R, OnLcdSpeakerIcon)
103 ON_BN_CLICKED(IDC_SPK_SL, OnLcdSpeakerIcon)
104 ON_BN_CLICKED(IDC_SPK_LFE, OnLcdSpeakerIcon)
105 ON_BN_CLICKED(IDC_SPK_SR, OnLcdSpeakerIcon)
106 ON_BN_CLICKED(IDC_SPK_RL, OnLcdSpeakerIcon)
107 ON_BN_CLICKED(IDC_SPK_SPDIF, OnLcdSpeakerIcon)
108 ON_BN_CLICKED(IDC_SPK_RR, OnLcdSpeakerIcon)
109 ON_BN_CLICKED(IDC_AV_MPG, OnLcdVideoCodecIcon)
110 ON_BN_CLICKED(IDC_AV_DIVX, OnLcdVideoCodecIcon)
111 ON_BN_CLICKED(IDC_AV_XVID, OnLcdVideoCodecIcon)
112 ON_BN_CLICKED(IDC_AV_WMV, OnLcdVideoCodecIcon)
113 ON_BN_CLICKED(IDC_AV_MPA, OnLcdVideoCodecIcon)
114 ON_BN_CLICKED(IDC_AV_AC3, OnLcdVideoCodecIcon)
115 ON_BN_CLICKED(IDC_AV_DTS, OnLcdVideoCodecIcon)
116 ON_BN_CLICKED(IDC_AV_WMA, OnLcdVideoCodecIcon)
117 ON_BN_CLICKED(IDC_A_MP3, OnLcdAudioCodecIcon)
118 ON_BN_CLICKED(IDC_A_OGG, OnLcdAudioCodecIcon)
119 ON_BN_CLICKED(IDC_A_WMA, OnLcdAudioCodecIcon)
120 ON_BN_CLICKED(IDC_A_WAV, OnLcdAudioCodecIcon)
121 ON_BN_CLICKED(IDC_AR_SRC, OnLcdAspectRatioIcon)
122 ON_BN_CLICKED(IDC_AR_FIT, OnLcdAspectRatioIcon)
123 ON_BN_CLICKED(IDC_AR_TV, OnLcdAspectRatioIcon)
124 ON_BN_CLICKED(IDC_AR_HDTV, OnLcdAspectRatioIcon)
125 ON_BN_CLICKED(IDC_AR_SCR1, OnLcdAspectRatioIcon)
126 ON_BN_CLICKED(IDC_AR_SCR2, OnLcdAspectRatioIcon)
127 ON_BN_CLICKED(IDC_REPEAT, OnLcdEtcIcon)
128 ON_BN_CLICKED(IDC_SHUFFLE, OnLcdEtcIcon)
129 ON_BN_CLICKED(IDC_ALARM, OnLcdEtcIcon)
130 ON_BN_CLICKED(IDC_REC, OnLcdEtcIcon)
131 ON_BN_CLICKED(IDC_VOL, OnLcdEtcIcon)
132 ON_BN_CLICKED(IDC_TIME, OnLcdEtcIcon)
135 ON_MESSAGE(WM_DSP_PLUGIN_NOTIFY, OnDisplayPluginNotify)
136 ON_BN_CLICKED(IDC_BUTTON6, &CDisplayTestDlg::OnBnClickedScrollChar)
137 ON_BN_CLICKED(IDC_BUTTON7, &CDisplayTestDlg::OnBnClickedNextChar)
138 ON_BN_CLICKED(IDC_BUTTON8, &CDisplayTestDlg::OnBnClickedPreviousChar)
144 // CDisplayTestDlg message handlers
146 BOOL CDisplayTestDlg::OnInitDialog()
148 CDialog::OnInitDialog();
150 // Add "About..." menu item to system menu.
152 // IDM_ABOUTBOX must be in the system command range.
153 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
154 ASSERT(IDM_ABOUTBOX < 0xF000);
156 CMenu* pSysMenu = GetSystemMenu(FALSE);
157 if (pSysMenu != NULL)
159 CString strAboutMenu;
160 strAboutMenu.LoadString(IDS_ABOUTBOX);
161 if (!strAboutMenu.IsEmpty())
163 pSysMenu->AppendMenu(MF_SEPARATOR);
164 pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
168 // Set the icon for this dialog. The framework does this automatically
169 // when the application's main window is not a dialog
170 SetIcon(m_hIcon, TRUE); // Set big icon
171 SetIcon(m_hIcon, FALSE); // Set small icon
173 // TODO: Add extra initialization here
174 m_strLine1 = _T("SoundGraph, Inc.");
175 m_strLine2 = _T("iMON Display API");
176 m_strLine3 = _T("SoundGraph, Inc. iMON Display API");
180 CSliderCtrl* pSliderCtrl = (CSliderCtrl*)GetDlgItem(IDC_SLIDER1);
183 pSliderCtrl->SetRange(0, 100);
184 pSliderCtrl->SetPos(0);
189 return TRUE; // return TRUE unless you set the focus to a control
192 void CDisplayTestDlg::OnSysCommand(UINT nID, LPARAM lParam)
194 if ((nID & 0xFFF0) == IDM_ABOUTBOX)
201 CDialog::OnSysCommand(nID, lParam);
205 // If you add a minimize button to your dialog, you will need the code below
206 // to draw the icon. For MFC applications using the document/view model,
207 // this is automatically done for you by the framework.
209 void CDisplayTestDlg::OnPaint()
213 CPaintDC dc(this); // device context for painting
215 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
217 // Center icon in client rectangle
218 int cxIcon = GetSystemMetrics(SM_CXICON);
219 int cyIcon = GetSystemMetrics(SM_CYICON);
221 GetClientRect(&rect);
222 int x = (rect.Width() - cxIcon + 1) / 2;
223 int y = (rect.Height() - cyIcon + 1) / 2;
226 dc.DrawIcon(x, y, m_hIcon);
234 // The system calls this function to obtain the cursor to display while the user drags
235 // the minimized window.
236 HCURSOR CDisplayTestDlg::OnQueryDragIcon()
238 return static_cast<HCURSOR>(m_hIcon);
241 void CDisplayTestDlg::OnDestroy()
243 CDialog::OnDestroy();
245 IMON_Display_Uninit();
248 void CDisplayTestDlg::OnTimer(UINT nIDEvent)
254 for(int i=0; i<16;i++)
256 eqData.BandData[i] = rand()%100;
258 IMON_Display_SetVfdEqData(&eqData);
260 else if(nIDEvent == 102)
264 for(int i=0; i<16;i++)
266 eqDataL.BandData[i] = rand()%100;
267 eqDataR.BandData[i] = rand()%100;
269 IMON_Display_SetLcdEqData(&eqDataL, &eqDataR);
271 else if (nIDEvent == 103)
278 for (int i=0;i<16;i++)
290 counter.Format(TEXT("%d - %d"),myStr[0],myStr[15]);
292 IMON_Display_SetVfdText(myStr, (LPCTSTR)counter);
296 CDialog::OnTimer(nIDEvent);
300 void CDisplayTestDlg::OnBnClickedButtonInit()
302 if(IMON_Display_IsInited() != DSP_S_INITED) Init();
306 void CDisplayTestDlg::OnBnClickedButtonVfdSendText()
309 IMON_Display_SetVfdText((LPCTSTR)m_strLine1, (LPCTSTR)m_strLine2);
312 void CDisplayTestDlg::OnBnClickedButtonVfdRandomEq()
316 KillTimer(101); m_uEqTimer = 0;
317 GetDlgItem(IDC_BUTTON3)->SetWindowText(_T("Start Random EQ"));
321 m_uEqTimer = SetTimer(101, 100, NULL);
322 GetDlgItem(IDC_BUTTON3)->SetWindowText(_T("Stop Random EQ"));
326 void CDisplayTestDlg::OnBnClickedScrollChar()
330 KillTimer(103); m_uEqTimer = 0;
331 GetDlgItem(IDC_BUTTON6)->SetWindowText(_T("Start Scroll Char"));
335 m_uEqTimer = SetTimer(103, 500, NULL);
336 GetDlgItem(IDC_BUTTON6)->SetWindowText(_T("Stop Scroll Char"));
340 void CDisplayTestDlg::OnBnClickedNextChar()
346 void CDisplayTestDlg::OnBnClickedPreviousChar()
354 void CDisplayTestDlg::OnBnClickedButtonLcdSendText()
357 IMON_Display_SetLcdText((LPCTSTR)m_strLine3);
360 void CDisplayTestDlg::OnBnClickedButtonLcdRandomEq()
364 KillTimer(102); m_uEqTimer2 = 0;
365 GetDlgItem(IDC_BUTTON5)->SetWindowText(_T("Start Random EQ"));
369 m_uEqTimer2 = SetTimer(102, 40, NULL);
370 GetDlgItem(IDC_BUTTON5)->SetWindowText(_T("Stop Random EQ"));
374 void CDisplayTestDlg::OnLcdOrangeIcon()
377 memset(data, 0, sizeof(BYTE)*2);
379 if(((CButton*)GetDlgItem(IDC_ORANGE1))->GetCheck()) data[0] |= 0x80;
380 if(((CButton*)GetDlgItem(IDC_ORANGE2))->GetCheck()) data[0] |= 0x40;
381 if(((CButton*)GetDlgItem(IDC_ORANGE3))->GetCheck()) data[0] |= 0x20;
382 if(((CButton*)GetDlgItem(IDC_ORANGE4))->GetCheck()) data[0] |= 0x10;
383 if(((CButton*)GetDlgItem(IDC_ORANGE5))->GetCheck()) data[0] |= 0x08;
384 if(((CButton*)GetDlgItem(IDC_ORANGE6))->GetCheck()) data[0] |= 0x04;
385 if(((CButton*)GetDlgItem(IDC_ORANGE7))->GetCheck()) data[0] |= 0x02;
386 if(((CButton*)GetDlgItem(IDC_ORANGE8))->GetCheck()) data[0] |= 0x01;
387 if(((CButton*)GetDlgItem(IDC_ORANGE0))->GetCheck()) data[1] |= 0x80;
389 IMON_Display_SetLcdOrangeIcon(data[0], data[1]);
392 void CDisplayTestDlg::OnLcdMediaTypeIcon()
396 if(((CButton*)GetDlgItem(IDC_MUSIC))->GetCheck()) data |= 0x80;
397 if(((CButton*)GetDlgItem(IDC_MOVIE))->GetCheck()) data |= 0x40;
398 if(((CButton*)GetDlgItem(IDC_PHOTO))->GetCheck()) data |= 0x20;
399 if(((CButton*)GetDlgItem(IDC_CD))->GetCheck()) data |= 0x10;
400 if(((CButton*)GetDlgItem(IDC_TV))->GetCheck()) data |= 0x08;
401 if(((CButton*)GetDlgItem(IDC_WEBCASTING))->GetCheck()) data |= 0x04;
402 if(((CButton*)GetDlgItem(IDC_NEWS))->GetCheck()) data |= 0x02;
404 IMON_Display_SetLcdMediaTypeIcon(data);
407 void CDisplayTestDlg::OnLcdSpeakerIcon()
410 memset(data, 0, sizeof(BYTE)*2);
412 if(((CButton*)GetDlgItem(IDC_SPK_L))->GetCheck()) data[0] |= 0x80;
413 if(((CButton*)GetDlgItem(IDC_SPK_C))->GetCheck()) data[0] |= 0x40;
414 if(((CButton*)GetDlgItem(IDC_SPK_R))->GetCheck()) data[0] |= 0x20;
415 if(((CButton*)GetDlgItem(IDC_SPK_SL))->GetCheck()) data[0] |= 0x10;
416 if(((CButton*)GetDlgItem(IDC_SPK_LFE))->GetCheck()) data[0] |= 0x08;
417 if(((CButton*)GetDlgItem(IDC_SPK_SR))->GetCheck()) data[0] |= 0x04;
418 if(((CButton*)GetDlgItem(IDC_SPK_RL))->GetCheck()) data[0] |= 0x02;
419 if(((CButton*)GetDlgItem(IDC_SPK_SPDIF))->GetCheck()) data[0] |= 0x01;
420 if(((CButton*)GetDlgItem(IDC_SPK_RR))->GetCheck()) data[1] |= 0x80;
422 IMON_Display_SetLcdSpeakerIcon(data[0], data[1]);
425 void CDisplayTestDlg::OnLcdVideoCodecIcon()
429 if(((CButton*)GetDlgItem(IDC_AV_MPG))->GetCheck()) data |= 0x80;
430 if(((CButton*)GetDlgItem(IDC_AV_DIVX))->GetCheck()) data |= 0x40;
431 if(((CButton*)GetDlgItem(IDC_AV_XVID))->GetCheck()) data |= 0x20;
432 if(((CButton*)GetDlgItem(IDC_AV_WMV))->GetCheck()) data |= 0x10;
433 if(((CButton*)GetDlgItem(IDC_AV_MPA))->GetCheck()) data |= 0x08;
434 if(((CButton*)GetDlgItem(IDC_AV_AC3))->GetCheck()) data |= 0x04;
435 if(((CButton*)GetDlgItem(IDC_AV_DTS))->GetCheck()) data |= 0x02;
436 if(((CButton*)GetDlgItem(IDC_AV_WMA))->GetCheck()) data |= 0x01;
438 IMON_Display_SetLcdVideoCodecIcon(data);
441 void CDisplayTestDlg::OnLcdAudioCodecIcon()
445 if(((CButton*)GetDlgItem(IDC_A_MP3))->GetCheck()) data |= 0x80;
446 if(((CButton*)GetDlgItem(IDC_A_OGG))->GetCheck()) data |= 0x40;
447 if(((CButton*)GetDlgItem(IDC_A_WMA))->GetCheck()) data |= 0x20;
448 if(((CButton*)GetDlgItem(IDC_A_WAV))->GetCheck()) data |= 0x10;
450 IMON_Display_SetLcdAudioCodecIcon(data);
453 void CDisplayTestDlg::OnLcdAspectRatioIcon()
457 if(((CButton*)GetDlgItem(IDC_AR_SRC))->GetCheck()) data |= 0x80;
458 if(((CButton*)GetDlgItem(IDC_AR_FIT))->GetCheck()) data |= 0x40;
459 if(((CButton*)GetDlgItem(IDC_AR_TV))->GetCheck()) data |= 0x20;
460 if(((CButton*)GetDlgItem(IDC_AR_HDTV))->GetCheck()) data |= 0x10;
461 if(((CButton*)GetDlgItem(IDC_AR_SCR1))->GetCheck()) data |= 0x08;
462 if(((CButton*)GetDlgItem(IDC_AR_SCR2))->GetCheck()) data |= 0x04;
464 IMON_Display_SetLcdAspectRatioIcon(data);
467 void CDisplayTestDlg::OnLcdEtcIcon()
471 if(((CButton*)GetDlgItem(IDC_REPEAT))->GetCheck()) data |= 0x80;
472 if(((CButton*)GetDlgItem(IDC_SHUFFLE))->GetCheck()) data |= 0x40;
473 if(((CButton*)GetDlgItem(IDC_ALARM))->GetCheck()) data |= 0x20;
474 if(((CButton*)GetDlgItem(IDC_REC))->GetCheck()) data |= 0x10;
475 if(((CButton*)GetDlgItem(IDC_VOL))->GetCheck()) data |= 0x08;
476 if(((CButton*)GetDlgItem(IDC_TIME))->GetCheck()) data |= 0x04;
478 IMON_Display_SetLcdEtcIcon(data);
481 void CDisplayTestDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
483 CSliderCtrl* pSliderCtrl = (CSliderCtrl*)GetDlgItem(IDC_SLIDER1);
484 if( pSliderCtrl && pSliderCtrl->GetSafeHwnd() &&
485 pScrollBar && pScrollBar->GetSafeHwnd() == pSliderCtrl->GetSafeHwnd() )
487 IMON_Display_SetLcdProgress(pSliderCtrl->GetPos(), 100);
489 CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
492 LRESULT CDisplayTestDlg::OnDisplayPluginNotify(WPARAM wParam, LPARAM lParam)
494 if(!GetSafeHwnd() || !IsWindow(GetSafeHwnd())) return 0;
498 case DSPNM_PLUGIN_SUCCEED:
499 case DSPNM_IMON_RESTARTED:
500 case DSPNM_HW_CONNECTED:
502 GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
503 m_bVfdConnected = FALSE;
504 m_bLcdConnected = FALSE;
505 if((lParam & DSPN_DSP_VFD) == DSPN_DSP_VFD) m_bVfdConnected = TRUE;
506 if((lParam & DSPN_DSP_LCD) == DSPN_DSP_LCD) m_bLcdConnected = TRUE;
509 DisplayPluginMessage(wParam, FALSE);
513 case DSPNM_PLUGIN_FAILED:
514 case DSPNM_HW_DISCONNECTED:
515 case DSPNM_IMON_CLOSED:
517 GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
518 m_bVfdConnected = FALSE;
519 m_bLcdConnected = FALSE;
522 DisplayPluginMessage(lParam, TRUE);
526 case DSPNM_LCD_TEXT_SCROLL_DONE:
528 TRACE(_T("LCD Text Scroll Finished.\n"));
535 void CDisplayTestDlg::Init()
539 IMON_Display_Init(this->GetSafeHwnd(), WM_DSP_PLUGIN_NOTIFY);
540 GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
543 void CDisplayTestDlg::Uninit()
545 IMON_Display_Uninit();
547 m_bVfdConnected = FALSE;
548 m_bLcdConnected = FALSE;
550 for(int i=IDC_ORANGE1;i<=IDC_AR_SCR2;i++)
553 ((CButton*)GetDlgItem(i))->SetCheck(FALSE);
555 CSliderCtrl* pSliderCtrl = (CSliderCtrl*)GetDlgItem(IDC_SLIDER1);
556 if(pSliderCtrl) pSliderCtrl->SetPos(0);
561 void CDisplayTestDlg::DisplayPluginMessage(UINT uErrCode, BOOL bError)
563 CString strErrMsg = _T("");
569 case DSPN_ERR_IN_USED: strErrMsg = _T("Display Plug-in is Already Used by Other Application."); break;
570 case DSPN_ERR_HW_DISCONNECTED: strErrMsg = _T("iMON HW is Not Connected."); break;
571 case DSPN_ERR_NOT_SUPPORTED_HW: strErrMsg = _T("The Connected iMON HW doesn't Support Display Plug-in."); break;
572 case DSPN_ERR_PLUGIN_DISABLED: strErrMsg = _T("Display Plug-in Mode Option is Disabled."); break;
573 case DSPN_ERR_IMON_NO_REPLY: strErrMsg = _T("The Latest iMON is Not Installed or iMON Not Running."); break;
574 case DSPN_ERR_UNKNOWN: strErrMsg = _T("Unknown Failure."); break;
581 case DSPNM_PLUGIN_SUCCEED: strErrMsg = _T("Plug-in Mode Inited Successfully."); break;
582 case DSPNM_IMON_RESTARTED: strErrMsg = _T("iMON Started and Plug-in Mode Inited."); break;
583 case DSPNM_HW_CONNECTED: strErrMsg = _T("iMON HW Connected and Plug-in Mode Inited."); break;
586 GetDlgItem(IDC_STATIC_INFO)->SetWindowText((LPCTSTR)strErrMsg);
589 void CDisplayTestDlg::UpdateControlUI()
591 GetDlgItem(IDC_STATIC_INFO)->SetWindowText(_T(""));
593 if(IMON_Display_IsInited() != DSP_S_INITED) GetDlgItem(IDC_BUTTON1)->SetWindowText(_T("Init Plug-in"));
594 else GetDlgItem(IDC_BUTTON1)->SetWindowText(_T("Uninit Plug-in"));
596 for(int i=IDC_EDIT1;i<=IDC_BUTTON3;i++)
599 GetDlgItem(i)->EnableWindow(m_bVfdConnected);
601 for(int i=IDC_BUTTON6;i<=IDC_BUTTON8;i++)
604 GetDlgItem(i)->EnableWindow(m_bVfdConnected);
606 for(int i=IDC_EDIT3;i<=IDC_SLIDER1;i++)
609 GetDlgItem(i)->EnableWindow(m_bLcdConnected);