1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/iMONDisplayApiSample/DisplayTest/DisplayTestDlg.cpp Sun Apr 14 22:40:46 2013 +0200
1.3 @@ -0,0 +1,614 @@
1.4 +// DisplayTestDlg.cpp : implementation file
1.5 +//
1.6 +
1.7 +#include "stdafx.h"
1.8 +#include "DisplayTest.h"
1.9 +#include "DisplayTestDlg.h"
1.10 +
1.11 +#ifdef _DEBUG
1.12 +#define new DEBUG_NEW
1.13 +#endif
1.14 +
1.15 +static WCHAR staticCh=1;
1.16 +
1.17 +// CAboutDlg dialog used for App About
1.18 +
1.19 +class CAboutDlg : public CDialog
1.20 +{
1.21 +public:
1.22 + CAboutDlg();
1.23 +
1.24 +// Dialog Data
1.25 + enum { IDD = IDD_ABOUTBOX };
1.26 +
1.27 + protected:
1.28 + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
1.29 +
1.30 +// Implementation
1.31 +protected:
1.32 + DECLARE_MESSAGE_MAP()
1.33 +};
1.34 +
1.35 +CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
1.36 +{
1.37 +}
1.38 +
1.39 +void CAboutDlg::DoDataExchange(CDataExchange* pDX)
1.40 +{
1.41 + CDialog::DoDataExchange(pDX);
1.42 +}
1.43 +
1.44 +BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
1.45 +END_MESSAGE_MAP()
1.46 +
1.47 +
1.48 +// CDisplayTestDlg dialog
1.49 +
1.50 +CDisplayTestDlg::CDisplayTestDlg(CWnd* pParent /*=NULL*/)
1.51 + : CDialog(CDisplayTestDlg::IDD, pParent)
1.52 +{
1.53 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
1.54 +
1.55 + m_strLine1 = _T("");
1.56 + m_strLine2 = _T("");
1.57 + m_strLine3 = _T("");
1.58 +
1.59 + m_uEqTimer = 0;
1.60 + m_uEqTimer2 = 0;
1.61 + m_bVfdConnected = FALSE;
1.62 + m_bLcdConnected = FALSE;
1.63 +}
1.64 +
1.65 +void CDisplayTestDlg::DoDataExchange(CDataExchange* pDX)
1.66 +{
1.67 + CDialog::DoDataExchange(pDX);
1.68 +
1.69 + DDX_Text(pDX, IDC_EDIT1, m_strLine1);
1.70 + DDX_Text(pDX, IDC_EDIT2, m_strLine2);
1.71 + DDX_Text(pDX, IDC_EDIT3, m_strLine3);
1.72 +}
1.73 +
1.74 +BEGIN_MESSAGE_MAP(CDisplayTestDlg, CDialog)
1.75 + ON_WM_SYSCOMMAND()
1.76 + ON_WM_PAINT()
1.77 + ON_WM_QUERYDRAGICON()
1.78 + ON_WM_DESTROY()
1.79 + ON_WM_TIMER()
1.80 + //}}AFX_MSG_MAP
1.81 + ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButtonInit)
1.82 + ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButtonVfdSendText)
1.83 + ON_BN_CLICKED(IDC_BUTTON3, OnBnClickedButtonVfdRandomEq)
1.84 + ON_BN_CLICKED(IDC_BUTTON4, OnBnClickedButtonLcdSendText)
1.85 + ON_BN_CLICKED(IDC_BUTTON5, OnBnClickedButtonLcdRandomEq)
1.86 +
1.87 + ON_BN_CLICKED(IDC_ORANGE1, OnLcdOrangeIcon)
1.88 + ON_BN_CLICKED(IDC_ORANGE2, OnLcdOrangeIcon)
1.89 + ON_BN_CLICKED(IDC_ORANGE3, OnLcdOrangeIcon)
1.90 + ON_BN_CLICKED(IDC_ORANGE4, OnLcdOrangeIcon)
1.91 + ON_BN_CLICKED(IDC_ORANGE5, OnLcdOrangeIcon)
1.92 + ON_BN_CLICKED(IDC_ORANGE6, OnLcdOrangeIcon)
1.93 + ON_BN_CLICKED(IDC_ORANGE7, OnLcdOrangeIcon)
1.94 + ON_BN_CLICKED(IDC_ORANGE8, OnLcdOrangeIcon)
1.95 + ON_BN_CLICKED(IDC_ORANGE0, OnLcdOrangeIcon)
1.96 + ON_BN_CLICKED(IDC_MUSIC, OnLcdMediaTypeIcon)
1.97 + ON_BN_CLICKED(IDC_MOVIE, OnLcdMediaTypeIcon)
1.98 + ON_BN_CLICKED(IDC_PHOTO, OnLcdMediaTypeIcon)
1.99 + ON_BN_CLICKED(IDC_CD, OnLcdMediaTypeIcon)
1.100 + ON_BN_CLICKED(IDC_TV, OnLcdMediaTypeIcon)
1.101 + ON_BN_CLICKED(IDC_WEBCASTING, OnLcdMediaTypeIcon)
1.102 + ON_BN_CLICKED(IDC_NEWS, OnLcdMediaTypeIcon)
1.103 + ON_BN_CLICKED(IDC_SPK_L, OnLcdSpeakerIcon)
1.104 + ON_BN_CLICKED(IDC_SPK_C, OnLcdSpeakerIcon)
1.105 + ON_BN_CLICKED(IDC_SPK_R, OnLcdSpeakerIcon)
1.106 + ON_BN_CLICKED(IDC_SPK_SL, OnLcdSpeakerIcon)
1.107 + ON_BN_CLICKED(IDC_SPK_LFE, OnLcdSpeakerIcon)
1.108 + ON_BN_CLICKED(IDC_SPK_SR, OnLcdSpeakerIcon)
1.109 + ON_BN_CLICKED(IDC_SPK_RL, OnLcdSpeakerIcon)
1.110 + ON_BN_CLICKED(IDC_SPK_SPDIF, OnLcdSpeakerIcon)
1.111 + ON_BN_CLICKED(IDC_SPK_RR, OnLcdSpeakerIcon)
1.112 + ON_BN_CLICKED(IDC_AV_MPG, OnLcdVideoCodecIcon)
1.113 + ON_BN_CLICKED(IDC_AV_DIVX, OnLcdVideoCodecIcon)
1.114 + ON_BN_CLICKED(IDC_AV_XVID, OnLcdVideoCodecIcon)
1.115 + ON_BN_CLICKED(IDC_AV_WMV, OnLcdVideoCodecIcon)
1.116 + ON_BN_CLICKED(IDC_AV_MPA, OnLcdVideoCodecIcon)
1.117 + ON_BN_CLICKED(IDC_AV_AC3, OnLcdVideoCodecIcon)
1.118 + ON_BN_CLICKED(IDC_AV_DTS, OnLcdVideoCodecIcon)
1.119 + ON_BN_CLICKED(IDC_AV_WMA, OnLcdVideoCodecIcon)
1.120 + ON_BN_CLICKED(IDC_A_MP3, OnLcdAudioCodecIcon)
1.121 + ON_BN_CLICKED(IDC_A_OGG, OnLcdAudioCodecIcon)
1.122 + ON_BN_CLICKED(IDC_A_WMA, OnLcdAudioCodecIcon)
1.123 + ON_BN_CLICKED(IDC_A_WAV, OnLcdAudioCodecIcon)
1.124 + ON_BN_CLICKED(IDC_AR_SRC, OnLcdAspectRatioIcon)
1.125 + ON_BN_CLICKED(IDC_AR_FIT, OnLcdAspectRatioIcon)
1.126 + ON_BN_CLICKED(IDC_AR_TV, OnLcdAspectRatioIcon)
1.127 + ON_BN_CLICKED(IDC_AR_HDTV, OnLcdAspectRatioIcon)
1.128 + ON_BN_CLICKED(IDC_AR_SCR1, OnLcdAspectRatioIcon)
1.129 + ON_BN_CLICKED(IDC_AR_SCR2, OnLcdAspectRatioIcon)
1.130 + ON_BN_CLICKED(IDC_REPEAT, OnLcdEtcIcon)
1.131 + ON_BN_CLICKED(IDC_SHUFFLE, OnLcdEtcIcon)
1.132 + ON_BN_CLICKED(IDC_ALARM, OnLcdEtcIcon)
1.133 + ON_BN_CLICKED(IDC_REC, OnLcdEtcIcon)
1.134 + ON_BN_CLICKED(IDC_VOL, OnLcdEtcIcon)
1.135 + ON_BN_CLICKED(IDC_TIME, OnLcdEtcIcon)
1.136 + ON_WM_HSCROLL()
1.137 +
1.138 + ON_MESSAGE(WM_DSP_PLUGIN_NOTIFY, OnDisplayPluginNotify)
1.139 + ON_BN_CLICKED(IDC_BUTTON6, &CDisplayTestDlg::OnBnClickedScrollChar)
1.140 + ON_BN_CLICKED(IDC_BUTTON7, &CDisplayTestDlg::OnBnClickedNextChar)
1.141 + ON_BN_CLICKED(IDC_BUTTON8, &CDisplayTestDlg::OnBnClickedPreviousChar)
1.142 +END_MESSAGE_MAP()
1.143 +
1.144 +
1.145 +
1.146 +
1.147 +// CDisplayTestDlg message handlers
1.148 +
1.149 +BOOL CDisplayTestDlg::OnInitDialog()
1.150 +{
1.151 + CDialog::OnInitDialog();
1.152 +
1.153 + // Add "About..." menu item to system menu.
1.154 +
1.155 + // IDM_ABOUTBOX must be in the system command range.
1.156 + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
1.157 + ASSERT(IDM_ABOUTBOX < 0xF000);
1.158 +
1.159 + CMenu* pSysMenu = GetSystemMenu(FALSE);
1.160 + if (pSysMenu != NULL)
1.161 + {
1.162 + CString strAboutMenu;
1.163 + strAboutMenu.LoadString(IDS_ABOUTBOX);
1.164 + if (!strAboutMenu.IsEmpty())
1.165 + {
1.166 + pSysMenu->AppendMenu(MF_SEPARATOR);
1.167 + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
1.168 + }
1.169 + }
1.170 +
1.171 + // Set the icon for this dialog. The framework does this automatically
1.172 + // when the application's main window is not a dialog
1.173 + SetIcon(m_hIcon, TRUE); // Set big icon
1.174 + SetIcon(m_hIcon, FALSE); // Set small icon
1.175 +
1.176 + // TODO: Add extra initialization here
1.177 + m_strLine1 = _T("SoundGraph, Inc.");
1.178 + m_strLine2 = _T("iMON Display API");
1.179 + m_strLine3 = _T("SoundGraph, Inc. iMON Display API");
1.180 +
1.181 + UpdateControlUI();
1.182 +
1.183 + CSliderCtrl* pSliderCtrl = (CSliderCtrl*)GetDlgItem(IDC_SLIDER1);
1.184 + if(pSliderCtrl)
1.185 + {
1.186 + pSliderCtrl->SetRange(0, 100);
1.187 + pSliderCtrl->SetPos(0);
1.188 + }
1.189 +
1.190 + UpdateData(FALSE);
1.191 +
1.192 + return TRUE; // return TRUE unless you set the focus to a control
1.193 +}
1.194 +
1.195 +void CDisplayTestDlg::OnSysCommand(UINT nID, LPARAM lParam)
1.196 +{
1.197 + if ((nID & 0xFFF0) == IDM_ABOUTBOX)
1.198 + {
1.199 + CAboutDlg dlgAbout;
1.200 + dlgAbout.DoModal();
1.201 + }
1.202 + else
1.203 + {
1.204 + CDialog::OnSysCommand(nID, lParam);
1.205 + }
1.206 +}
1.207 +
1.208 +// If you add a minimize button to your dialog, you will need the code below
1.209 +// to draw the icon. For MFC applications using the document/view model,
1.210 +// this is automatically done for you by the framework.
1.211 +
1.212 +void CDisplayTestDlg::OnPaint()
1.213 +{
1.214 + if (IsIconic())
1.215 + {
1.216 + CPaintDC dc(this); // device context for painting
1.217 +
1.218 + SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
1.219 +
1.220 + // Center icon in client rectangle
1.221 + int cxIcon = GetSystemMetrics(SM_CXICON);
1.222 + int cyIcon = GetSystemMetrics(SM_CYICON);
1.223 + CRect rect;
1.224 + GetClientRect(&rect);
1.225 + int x = (rect.Width() - cxIcon + 1) / 2;
1.226 + int y = (rect.Height() - cyIcon + 1) / 2;
1.227 +
1.228 + // Draw the icon
1.229 + dc.DrawIcon(x, y, m_hIcon);
1.230 + }
1.231 + else
1.232 + {
1.233 + CDialog::OnPaint();
1.234 + }
1.235 +}
1.236 +
1.237 +// The system calls this function to obtain the cursor to display while the user drags
1.238 +// the minimized window.
1.239 +HCURSOR CDisplayTestDlg::OnQueryDragIcon()
1.240 +{
1.241 + return static_cast<HCURSOR>(m_hIcon);
1.242 +}
1.243 +
1.244 +void CDisplayTestDlg::OnDestroy()
1.245 +{
1.246 + CDialog::OnDestroy();
1.247 +
1.248 + IMON_Display_Uninit();
1.249 +}
1.250 +
1.251 +void CDisplayTestDlg::OnTimer(UINT nIDEvent)
1.252 +{
1.253 + if(nIDEvent == 101)
1.254 + {
1.255 +
1.256 + DSPEQDATA eqData;
1.257 + for(int i=0; i<16;i++)
1.258 + {
1.259 + eqData.BandData[i] = rand()%100;
1.260 + }
1.261 + IMON_Display_SetVfdEqData(&eqData);
1.262 + }
1.263 + else if(nIDEvent == 102)
1.264 + {
1.265 + DSPEQDATA eqDataL;
1.266 + DSPEQDATA eqDataR;
1.267 + for(int i=0; i<16;i++)
1.268 + {
1.269 + eqDataL.BandData[i] = rand()%100;
1.270 + eqDataR.BandData[i] = rand()%100;
1.271 + }
1.272 + IMON_Display_SetLcdEqData(&eqDataL, &eqDataR);
1.273 + }
1.274 + else if (nIDEvent == 103)
1.275 + {
1.276 + //Char scroll
1.277 + WCHAR myStr[17];
1.278 +
1.279 + WCHAR myCh=staticCh;
1.280 +
1.281 + for (int i=0;i<16;i++)
1.282 + {
1.283 + myStr[i]=myCh;
1.284 + myCh++;
1.285 + }
1.286 +
1.287 + staticCh++;
1.288 + myStr[16]=0;
1.289 + //
1.290 + //myCh--;
1.291 +
1.292 + CString counter;
1.293 + counter.Format(TEXT("%d - %d"),myStr[0],myStr[15]);
1.294 +
1.295 + IMON_Display_SetVfdText(myStr, (LPCTSTR)counter);
1.296 +
1.297 + }
1.298 +
1.299 + CDialog::OnTimer(nIDEvent);
1.300 +}
1.301 +
1.302 +
1.303 +void CDisplayTestDlg::OnBnClickedButtonInit()
1.304 +{
1.305 + if(IMON_Display_IsInited() != DSP_S_INITED) Init();
1.306 + else Uninit();
1.307 +}
1.308 +
1.309 +void CDisplayTestDlg::OnBnClickedButtonVfdSendText()
1.310 +{
1.311 + UpdateData(TRUE);
1.312 + IMON_Display_SetVfdText((LPCTSTR)m_strLine1, (LPCTSTR)m_strLine2);
1.313 +}
1.314 +
1.315 +void CDisplayTestDlg::OnBnClickedButtonVfdRandomEq()
1.316 +{
1.317 + if(m_uEqTimer)
1.318 + {
1.319 + KillTimer(101); m_uEqTimer = 0;
1.320 + GetDlgItem(IDC_BUTTON3)->SetWindowText(_T("Start Random EQ"));
1.321 + }
1.322 + else
1.323 + {
1.324 + m_uEqTimer = SetTimer(101, 100, NULL);
1.325 + GetDlgItem(IDC_BUTTON3)->SetWindowText(_T("Stop Random EQ"));
1.326 + }
1.327 +}
1.328 +
1.329 +void CDisplayTestDlg::OnBnClickedScrollChar()
1.330 +{
1.331 + if(m_uEqTimer)
1.332 + {
1.333 + KillTimer(103); m_uEqTimer = 0;
1.334 + GetDlgItem(IDC_BUTTON6)->SetWindowText(_T("Start Scroll Char"));
1.335 + }
1.336 + else
1.337 + {
1.338 + m_uEqTimer = SetTimer(103, 500, NULL);
1.339 + GetDlgItem(IDC_BUTTON6)->SetWindowText(_T("Stop Scroll Char"));
1.340 + }
1.341 +}
1.342 +
1.343 +void CDisplayTestDlg::OnBnClickedNextChar()
1.344 +{
1.345 + //staticCh++;
1.346 + OnTimer(103);
1.347 +}
1.348 +
1.349 +void CDisplayTestDlg::OnBnClickedPreviousChar()
1.350 +{
1.351 + staticCh-=2;
1.352 + OnTimer(103);
1.353 +}
1.354 +
1.355 +
1.356 +
1.357 +void CDisplayTestDlg::OnBnClickedButtonLcdSendText()
1.358 +{
1.359 + UpdateData(TRUE);
1.360 + IMON_Display_SetLcdText((LPCTSTR)m_strLine3);
1.361 +}
1.362 +
1.363 +void CDisplayTestDlg::OnBnClickedButtonLcdRandomEq()
1.364 +{
1.365 + if(m_uEqTimer2)
1.366 + {
1.367 + KillTimer(102); m_uEqTimer2 = 0;
1.368 + GetDlgItem(IDC_BUTTON5)->SetWindowText(_T("Start Random EQ"));
1.369 + }
1.370 + else
1.371 + {
1.372 + m_uEqTimer2 = SetTimer(102, 40, NULL);
1.373 + GetDlgItem(IDC_BUTTON5)->SetWindowText(_T("Stop Random EQ"));
1.374 + }
1.375 +}
1.376 +
1.377 +void CDisplayTestDlg::OnLcdOrangeIcon()
1.378 +{
1.379 + BYTE data[2];
1.380 + memset(data, 0, sizeof(BYTE)*2);
1.381 +
1.382 + if(((CButton*)GetDlgItem(IDC_ORANGE1))->GetCheck()) data[0] |= 0x80;
1.383 + if(((CButton*)GetDlgItem(IDC_ORANGE2))->GetCheck()) data[0] |= 0x40;
1.384 + if(((CButton*)GetDlgItem(IDC_ORANGE3))->GetCheck()) data[0] |= 0x20;
1.385 + if(((CButton*)GetDlgItem(IDC_ORANGE4))->GetCheck()) data[0] |= 0x10;
1.386 + if(((CButton*)GetDlgItem(IDC_ORANGE5))->GetCheck()) data[0] |= 0x08;
1.387 + if(((CButton*)GetDlgItem(IDC_ORANGE6))->GetCheck()) data[0] |= 0x04;
1.388 + if(((CButton*)GetDlgItem(IDC_ORANGE7))->GetCheck()) data[0] |= 0x02;
1.389 + if(((CButton*)GetDlgItem(IDC_ORANGE8))->GetCheck()) data[0] |= 0x01;
1.390 + if(((CButton*)GetDlgItem(IDC_ORANGE0))->GetCheck()) data[1] |= 0x80;
1.391 +
1.392 + IMON_Display_SetLcdOrangeIcon(data[0], data[1]);
1.393 +}
1.394 +
1.395 +void CDisplayTestDlg::OnLcdMediaTypeIcon()
1.396 +{
1.397 + BYTE data = 0;
1.398 +
1.399 + if(((CButton*)GetDlgItem(IDC_MUSIC))->GetCheck()) data |= 0x80;
1.400 + if(((CButton*)GetDlgItem(IDC_MOVIE))->GetCheck()) data |= 0x40;
1.401 + if(((CButton*)GetDlgItem(IDC_PHOTO))->GetCheck()) data |= 0x20;
1.402 + if(((CButton*)GetDlgItem(IDC_CD))->GetCheck()) data |= 0x10;
1.403 + if(((CButton*)GetDlgItem(IDC_TV))->GetCheck()) data |= 0x08;
1.404 + if(((CButton*)GetDlgItem(IDC_WEBCASTING))->GetCheck()) data |= 0x04;
1.405 + if(((CButton*)GetDlgItem(IDC_NEWS))->GetCheck()) data |= 0x02;
1.406 +
1.407 + IMON_Display_SetLcdMediaTypeIcon(data);
1.408 +}
1.409 +
1.410 +void CDisplayTestDlg::OnLcdSpeakerIcon()
1.411 +{
1.412 + BYTE data[2];
1.413 + memset(data, 0, sizeof(BYTE)*2);
1.414 +
1.415 + if(((CButton*)GetDlgItem(IDC_SPK_L))->GetCheck()) data[0] |= 0x80;
1.416 + if(((CButton*)GetDlgItem(IDC_SPK_C))->GetCheck()) data[0] |= 0x40;
1.417 + if(((CButton*)GetDlgItem(IDC_SPK_R))->GetCheck()) data[0] |= 0x20;
1.418 + if(((CButton*)GetDlgItem(IDC_SPK_SL))->GetCheck()) data[0] |= 0x10;
1.419 + if(((CButton*)GetDlgItem(IDC_SPK_LFE))->GetCheck()) data[0] |= 0x08;
1.420 + if(((CButton*)GetDlgItem(IDC_SPK_SR))->GetCheck()) data[0] |= 0x04;
1.421 + if(((CButton*)GetDlgItem(IDC_SPK_RL))->GetCheck()) data[0] |= 0x02;
1.422 + if(((CButton*)GetDlgItem(IDC_SPK_SPDIF))->GetCheck()) data[0] |= 0x01;
1.423 + if(((CButton*)GetDlgItem(IDC_SPK_RR))->GetCheck()) data[1] |= 0x80;
1.424 +
1.425 + IMON_Display_SetLcdSpeakerIcon(data[0], data[1]);
1.426 +}
1.427 +
1.428 +void CDisplayTestDlg::OnLcdVideoCodecIcon()
1.429 +{
1.430 + BYTE data = 0;
1.431 +
1.432 + if(((CButton*)GetDlgItem(IDC_AV_MPG))->GetCheck()) data |= 0x80;
1.433 + if(((CButton*)GetDlgItem(IDC_AV_DIVX))->GetCheck()) data |= 0x40;
1.434 + if(((CButton*)GetDlgItem(IDC_AV_XVID))->GetCheck()) data |= 0x20;
1.435 + if(((CButton*)GetDlgItem(IDC_AV_WMV))->GetCheck()) data |= 0x10;
1.436 + if(((CButton*)GetDlgItem(IDC_AV_MPA))->GetCheck()) data |= 0x08;
1.437 + if(((CButton*)GetDlgItem(IDC_AV_AC3))->GetCheck()) data |= 0x04;
1.438 + if(((CButton*)GetDlgItem(IDC_AV_DTS))->GetCheck()) data |= 0x02;
1.439 + if(((CButton*)GetDlgItem(IDC_AV_WMA))->GetCheck()) data |= 0x01;
1.440 +
1.441 + IMON_Display_SetLcdVideoCodecIcon(data);
1.442 +}
1.443 +
1.444 +void CDisplayTestDlg::OnLcdAudioCodecIcon()
1.445 +{
1.446 + BYTE data = 0;
1.447 +
1.448 + if(((CButton*)GetDlgItem(IDC_A_MP3))->GetCheck()) data |= 0x80;
1.449 + if(((CButton*)GetDlgItem(IDC_A_OGG))->GetCheck()) data |= 0x40;
1.450 + if(((CButton*)GetDlgItem(IDC_A_WMA))->GetCheck()) data |= 0x20;
1.451 + if(((CButton*)GetDlgItem(IDC_A_WAV))->GetCheck()) data |= 0x10;
1.452 +
1.453 + IMON_Display_SetLcdAudioCodecIcon(data);
1.454 +}
1.455 +
1.456 +void CDisplayTestDlg::OnLcdAspectRatioIcon()
1.457 +{
1.458 + BYTE data = 0;
1.459 +
1.460 + if(((CButton*)GetDlgItem(IDC_AR_SRC))->GetCheck()) data |= 0x80;
1.461 + if(((CButton*)GetDlgItem(IDC_AR_FIT))->GetCheck()) data |= 0x40;
1.462 + if(((CButton*)GetDlgItem(IDC_AR_TV))->GetCheck()) data |= 0x20;
1.463 + if(((CButton*)GetDlgItem(IDC_AR_HDTV))->GetCheck()) data |= 0x10;
1.464 + if(((CButton*)GetDlgItem(IDC_AR_SCR1))->GetCheck()) data |= 0x08;
1.465 + if(((CButton*)GetDlgItem(IDC_AR_SCR2))->GetCheck()) data |= 0x04;
1.466 +
1.467 + IMON_Display_SetLcdAspectRatioIcon(data);
1.468 +}
1.469 +
1.470 +void CDisplayTestDlg::OnLcdEtcIcon()
1.471 +{
1.472 + BYTE data = 0;
1.473 +
1.474 + if(((CButton*)GetDlgItem(IDC_REPEAT))->GetCheck()) data |= 0x80;
1.475 + if(((CButton*)GetDlgItem(IDC_SHUFFLE))->GetCheck()) data |= 0x40;
1.476 + if(((CButton*)GetDlgItem(IDC_ALARM))->GetCheck()) data |= 0x20;
1.477 + if(((CButton*)GetDlgItem(IDC_REC))->GetCheck()) data |= 0x10;
1.478 + if(((CButton*)GetDlgItem(IDC_VOL))->GetCheck()) data |= 0x08;
1.479 + if(((CButton*)GetDlgItem(IDC_TIME))->GetCheck()) data |= 0x04;
1.480 +
1.481 + IMON_Display_SetLcdEtcIcon(data);
1.482 +}
1.483 +
1.484 +void CDisplayTestDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
1.485 +{
1.486 + CSliderCtrl* pSliderCtrl = (CSliderCtrl*)GetDlgItem(IDC_SLIDER1);
1.487 + if( pSliderCtrl && pSliderCtrl->GetSafeHwnd() &&
1.488 + pScrollBar && pScrollBar->GetSafeHwnd() == pSliderCtrl->GetSafeHwnd() )
1.489 + {
1.490 + IMON_Display_SetLcdProgress(pSliderCtrl->GetPos(), 100);
1.491 + }
1.492 + CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
1.493 +}
1.494 +
1.495 +LRESULT CDisplayTestDlg::OnDisplayPluginNotify(WPARAM wParam, LPARAM lParam)
1.496 +{
1.497 + if(!GetSafeHwnd() || !IsWindow(GetSafeHwnd())) return 0;
1.498 +
1.499 + switch(wParam)
1.500 + {
1.501 + case DSPNM_PLUGIN_SUCCEED:
1.502 + case DSPNM_IMON_RESTARTED:
1.503 + case DSPNM_HW_CONNECTED:
1.504 + {
1.505 + GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
1.506 + m_bVfdConnected = FALSE;
1.507 + m_bLcdConnected = FALSE;
1.508 + if((lParam & DSPN_DSP_VFD) == DSPN_DSP_VFD) m_bVfdConnected = TRUE;
1.509 + if((lParam & DSPN_DSP_LCD) == DSPN_DSP_LCD) m_bLcdConnected = TRUE;
1.510 + UpdateControlUI();
1.511 +
1.512 + DisplayPluginMessage(wParam, FALSE);
1.513 + }
1.514 + break;
1.515 +
1.516 + case DSPNM_PLUGIN_FAILED:
1.517 + case DSPNM_HW_DISCONNECTED:
1.518 + case DSPNM_IMON_CLOSED:
1.519 + {
1.520 + GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
1.521 + m_bVfdConnected = FALSE;
1.522 + m_bLcdConnected = FALSE;
1.523 + UpdateControlUI();
1.524 +
1.525 + DisplayPluginMessage(lParam, TRUE);
1.526 + }
1.527 + break;
1.528 +
1.529 + case DSPNM_LCD_TEXT_SCROLL_DONE:
1.530 + {
1.531 + TRACE(_T("LCD Text Scroll Finished.\n"));
1.532 + }
1.533 + break;
1.534 + }
1.535 + return 0;
1.536 +}
1.537 +
1.538 +void CDisplayTestDlg::Init()
1.539 +{
1.540 + Uninit();
1.541 +
1.542 + IMON_Display_Init(this->GetSafeHwnd(), WM_DSP_PLUGIN_NOTIFY);
1.543 + GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
1.544 +}
1.545 +
1.546 +void CDisplayTestDlg::Uninit()
1.547 +{
1.548 + IMON_Display_Uninit();
1.549 +
1.550 + m_bVfdConnected = FALSE;
1.551 + m_bLcdConnected = FALSE;
1.552 +
1.553 + for(int i=IDC_ORANGE1;i<=IDC_AR_SCR2;i++)
1.554 + {
1.555 + if(GetDlgItem(i))
1.556 + ((CButton*)GetDlgItem(i))->SetCheck(FALSE);
1.557 + }
1.558 + CSliderCtrl* pSliderCtrl = (CSliderCtrl*)GetDlgItem(IDC_SLIDER1);
1.559 + if(pSliderCtrl) pSliderCtrl->SetPos(0);
1.560 +
1.561 + UpdateControlUI();
1.562 +}
1.563 +
1.564 +void CDisplayTestDlg::DisplayPluginMessage(UINT uErrCode, BOOL bError)
1.565 +{
1.566 + CString strErrMsg = _T("");
1.567 +
1.568 + if(bError)
1.569 + {
1.570 + switch(uErrCode)
1.571 + {
1.572 + case DSPN_ERR_IN_USED: strErrMsg = _T("Display Plug-in is Already Used by Other Application."); break;
1.573 + case DSPN_ERR_HW_DISCONNECTED: strErrMsg = _T("iMON HW is Not Connected."); break;
1.574 + case DSPN_ERR_NOT_SUPPORTED_HW: strErrMsg = _T("The Connected iMON HW doesn't Support Display Plug-in."); break;
1.575 + case DSPN_ERR_PLUGIN_DISABLED: strErrMsg = _T("Display Plug-in Mode Option is Disabled."); break;
1.576 + case DSPN_ERR_IMON_NO_REPLY: strErrMsg = _T("The Latest iMON is Not Installed or iMON Not Running."); break;
1.577 + case DSPN_ERR_UNKNOWN: strErrMsg = _T("Unknown Failure."); break;
1.578 + }
1.579 + }
1.580 + else
1.581 + {
1.582 + switch(uErrCode)
1.583 + {
1.584 + case DSPNM_PLUGIN_SUCCEED: strErrMsg = _T("Plug-in Mode Inited Successfully."); break;
1.585 + case DSPNM_IMON_RESTARTED: strErrMsg = _T("iMON Started and Plug-in Mode Inited."); break;
1.586 + case DSPNM_HW_CONNECTED: strErrMsg = _T("iMON HW Connected and Plug-in Mode Inited."); break;
1.587 + }
1.588 + }
1.589 + GetDlgItem(IDC_STATIC_INFO)->SetWindowText((LPCTSTR)strErrMsg);
1.590 +}
1.591 +
1.592 +void CDisplayTestDlg::UpdateControlUI()
1.593 +{
1.594 + GetDlgItem(IDC_STATIC_INFO)->SetWindowText(_T(""));
1.595 +
1.596 + if(IMON_Display_IsInited() != DSP_S_INITED) GetDlgItem(IDC_BUTTON1)->SetWindowText(_T("Init Plug-in"));
1.597 + else GetDlgItem(IDC_BUTTON1)->SetWindowText(_T("Uninit Plug-in"));
1.598 +
1.599 + for(int i=IDC_EDIT1;i<=IDC_BUTTON3;i++)
1.600 + {
1.601 + if(GetDlgItem(i))
1.602 + GetDlgItem(i)->EnableWindow(m_bVfdConnected);
1.603 + }
1.604 + for(int i=IDC_BUTTON6;i<=IDC_BUTTON8;i++)
1.605 + {
1.606 + if(GetDlgItem(i))
1.607 + GetDlgItem(i)->EnableWindow(m_bVfdConnected);
1.608 + }
1.609 + for(int i=IDC_EDIT3;i<=IDC_SLIDER1;i++)
1.610 + {
1.611 + if(GetDlgItem(i))
1.612 + GetDlgItem(i)->EnableWindow(m_bLcdConnected);
1.613 + }
1.614 +}
1.615 +
1.616 +
1.617 +