|

楼主 |
发表于 2019-7-24 16:36:42
|
显示全部楼层
/*********************************************************************
* *
* SEGGER Microcontroller GmbH & Co. KG *
* Solutions for real time microcontroller applications *
* *
**********************************************************************
* *
* C-file generated by: *
* *
* GUI_Builder for emWin version 5.30 *
* Compiled Jul 1 2015, 10:50:32 *
* (c) 2015 Segger Microcontroller GmbH & Co. KG *
* *
**********************************************************************
* *
* Internet: www.segger.com Support: support@segger.com *
* *
**********************************************************************
*/
// USER START (Optionally insert additional includes)
// USER END
#include "DIALOG.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "app_nvr.h"
#include "app_dab.h"
#include "com_assert.h"
#include "N9H30.h"
#include "app_event.h"
#include "lib_event_api.h"
#include "app_gui.h"
/*********************************************************************
*
* Defines
*
**********************************************************************
*/
#define ID_WINDOW_fm (GUI_ID_USER + 0x100)
#define ID_TEXT_fm0 (GUI_ID_USER + 0x101)
#define ID_TEXT_fm1 (GUI_ID_USER + 0x102)
#define ID_TEXT_fm2 (GUI_ID_USER + 0x103)
#define ID_BUTTON_fm0 (GUI_ID_USER + 0x104)
#define ID_BUTTON_fm1 (GUI_ID_USER + 0x105)
#define ID_BUTTON_fm2 (GUI_ID_USER + 0x106)
#define ID_BUTTON_fm3 (GUI_ID_USER + 0x107)
#define ID_SLIDER_fm0 (GUI_ID_USER + 0x108)
#define ID_SLIDER_fm1 (GUI_ID_USER + 0x109)
extern GUI_CONST_STORAGE GUI_BITMAP bmMusicPre;
extern GUI_CONST_STORAGE GUI_BITMAP bmMusicNext;
extern GUI_CONST_STORAGE GUI_BITMAP bmSpeaker;
extern GUI_CONST_STORAGE GUI_BITMAP bmSpeakerMute;
extern GUI_CONST_STORAGE GUI_BITMAP bmReturn;
/*********************************************************************
*
* Static data
*
**********************************************************************
*/
//static uint8_t s_ucPlayStatus = 0;
static uint8_t s_ucSpeakerStatus = 1;
/*********************************************************************
*
* _aDialogCreate
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate_fm[] = {
{ WINDOW_CreateIndirect, "Window", ID_WINDOW_fm, 0, 82, 600, 942, 0, 0x0, 0 },
{ BUTTON_CreateIndirect, "Return", ID_BUTTON_fm0, 500, 0, 100, 100, 0, 0, 0 },
{ BUTTON_CreateIndirect, "MusicPre", ID_BUTTON_fm1, 40, 405, 48, 48, 0, 0, 0 },
{ BUTTON_CreateIndirect, "MusicNext", ID_BUTTON_fm2, 130, 405, 48, 48, 0, 0, 0 },
{ BUTTON_CreateIndirect, "MusicSpk", ID_BUTTON_fm3, 230, 399, 72, 72, 0, 0, 0 },
{ SLIDER_CreateIndirect, "Process", ID_SLIDER_fm0, 40, 365, 500, 16, 0, 0x0, 0 },
{ SLIDER_CreateIndirect, "Speaker", ID_SLIDER_fm1, 310, 425, 200, 20, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "87.5MHz", ID_TEXT_fm0, 40, 345, 270, 20, 0, 0x64, 0 },
{ TEXT_CreateIndirect, "108.0MHz", ID_TEXT_fm1, 460, 345, 100, 20, 0, 0x64, 0 },
{ TEXT_CreateIndirect, "87.5", ID_TEXT_fm2, 150, 120, 300, 100, 0, 0x64, 0 },
};
/*********************************************************************
*
* Static code
*
**********************************************************************
*/
static void _cbButtonBack_fm(WM_MESSAGE * pMsg)
{
WM_HWIN hWin;
hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT:
if (BUTTON_IsPressed(hWin))
{
GUI_SetColor(GUI_DARKGRAY);
GUI_AA_FillCircle(100, 0, 72);
GUI_SetBkColor(GUI_DARKGRAY);
GUI_SetColor(GUI_BLACK);
GUI_DrawBitmap(&bmReturn, 40, 5);
}
else
{
GUI_SetColor(GUI_LIGHTBLUE);
GUI_AA_FillCircle(100, 0, 72);
GUI_SetBkColor(GUI_LIGHTBLUE);
GUI_SetColor(GUI_BLACK);
GUI_DrawBitmap(&bmReturn, 40, 5);
}
break;
default:
BUTTON_Callback(pMsg);
}
}
static void _cbButtonPre_fm(WM_MESSAGE * pMsg)
{
// WM_HWIN hWin;
// hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT:
GUI_DrawBitmap(&bmMusicPre, 0, 0);
break;
default:
BUTTON_Callback(pMsg);
}
}
static void _cbButtonNext_fm(WM_MESSAGE * pMsg)
{
// WM_HWIN hWin;
// hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT:
GUI_DrawBitmap(&bmMusicNext, 0, 0);
break;
default:
BUTTON_Callback(pMsg);
}
}
static void _cbButtonSpeaker_fm(WM_MESSAGE * pMsg)
{
switch (pMsg->MsgId)
{
case WM_PAINT:
if(s_ucSpeakerStatus == 0)
{
GUI_DrawBitmap(&bmSpeakerMute, 8, 8);
}
else
{
GUI_DrawBitmap(&bmSpeaker, 8, 8);
}
break;
default:
BUTTON_Callback(pMsg);
}
}
void vol_sync_fm(unsigned char vol)
{
WM_HWIN hItem;
hItem = WM_GetDialogItem(hPage[3], ID_SLIDER_fm1);
SLIDER_SetValue(hItem, vol);
}
/*********************************************************************
*
* _cbDialog
*/
static void _cbDialog_fm(WM_MESSAGE * pMsg)
{
WM_HWIN hItem;
int NCode;
int Id;
char buf[50];
uint32_t ulFMfreq;
unsigned char vol_data;
switch (pMsg->MsgId)
{
case WM_INIT_DIALOG:
hItem = pMsg->hWin;
WINDOW_SetBkColor(hItem, GUI_BLACK);
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_fm0);
WM_SetHasTrans(hItem);
WM_SetCallback(hItem, _cbButtonBack_fm);
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_fm1);
#if 0
BUTTON_SetText(hItem, "");
BUTTON_SetSkinClassic(hItem);
BUTTON_SetBkColor(hItem, BUTTON_CI_UNPRESSED, GUI_BLACK);
BUTTON_SetBkColor(hItem, BUTTON_CI_PRESSED, GUI_BLACK);
BUTTON_SetBitmap(hItem, BUTTON_BI_UNPRESSED, &bmMusicPre);
#else
WM_SetHasTrans(hItem);
WM_SetCallback(hItem, _cbButtonPre_fm);
#endif
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_fm2);
#if 0
BUTTON_SetText(hItem, "");
BUTTON_SetSkinClassic(hItem);
BUTTON_SetBkColor(hItem, BUTTON_CI_UNPRESSED, GUI_BLACK);
BUTTON_SetBkColor(hItem, BUTTON_CI_PRESSED, GUI_BLACK);
BUTTON_SetBitmap(hItem, BUTTON_BI_UNPRESSED, &bmMusicNext);
#else
WM_SetHasTrans(hItem);
WM_SetCallback(hItem, _cbButtonNext_fm);
#endif
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_fm3);
WM_SetHasTrans(hItem);
WM_SetCallback(hItem, _cbButtonSpeaker_fm);
hItem = WM_GetDialogItem(pMsg->hWin, ID_SLIDER_fm0);
SLIDER_SetBkColor(hItem, GUI_WHITE);
SLIDER_SetFocusColor (hItem, GUI_LIGHTBLUE);
//SLIDER_SetValue(hItem, 0);
SLIDER_SetWidth(hItem, 8);
SLIDER_SetSkinClassic(hItem);
SLIDER_SetRange(hItem, 87500, 108000);
ulFMfreq = AppNvr_GetFmFreq();
sprintf(buf, "%.2fMHZ", (float)ulFMfreq/1000);
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_fm2);
TEXT_SetText(hItem, (const char *)buf);
hItem = WM_GetDialogItem(pMsg->hWin, ID_SLIDER_fm0);
SLIDER_SetValue(hItem, ulFMfreq);
hItem = WM_GetDialogItem(pMsg->hWin, ID_SLIDER_fm1);
SLIDER_SetBkColor(hItem, GUI_WHITE);
SLIDER_SetFocusColor (hItem, GUI_LIGHTBLUE);
SLIDER_SetRange(hItem, 0, 32);
SLIDER_SetValue(hItem, AppNvr_MasterVolumeValueGet());
SLIDER_SetWidth(hItem, 8);
SLIDER_SetSkinClassic(hItem);
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_fm0);
TEXT_SetFont(hItem, GUI_FONT_20B_1);
TEXT_SetTextColor(hItem, GUI_LIGHTBLUE);
TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_fm1);
TEXT_SetFont(hItem, GUI_FONT_20B_1);
TEXT_SetTextColor(hItem, GUI_LIGHTBLUE);
TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_fm2);
TEXT_SetFont(hItem, GUI_FONT_20_1);
TEXT_SetTextColor(hItem, GUI_LIGHTBLUE);
TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
break;
case WM_PAINT:
//GUI_SetBkColor(GUI_BLACK);
//GUI_Clear();
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id)
{
case ID_BUTTON_fm0:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
WM_HideWindow(hPage[1]);
WM_HideWindow(hPage[2]);
WM_HideWindow(hPage[3]);
WM_HideWindow(hPage[4]);
WM_HideWindow(hPage[5]);
WM_ShowWindow(hPage[0]);
break;
}
break;
case ID_BUTTON_fm1:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
// if(s_ucPlayStatus == 1)
{
ulFMfreq = AppNvr_GetFmFreq();
if (ulFMfreq < FMFRE_MIN)
{
ulFMfreq = FMFRE_MAX;
}
else
{
ulFMfreq = ulFMfreq - 50;
}
if (AppNvr_InputSourceGet() == SRC_FM)
{
PutEvent(UI_EVT_IO(IO_EVT_SCROLL_DOWN, IO_KEY_UP), 0, NULL);
}
sprintf(buf, "%.2fMHz", (float)ulFMfreq/1000);
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_fm2);
TEXT_SetText(hItem, (const char *)buf);
hItem = WM_GetDialogItem(pMsg->hWin, ID_SLIDER_fm0);
SLIDER_SetValue(hItem, ulFMfreq);
}
break;
}
break;
case ID_BUTTON_fm2:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
// if(s_ucPlayStatus == 1)
{
ulFMfreq = AppNvr_GetFmFreq();
if (ulFMfreq > FMFRE_MAX)
{
ulFMfreq = FMFRE_MIN;
}
else
{
ulFMfreq = ulFMfreq + 50;
}
if (AppNvr_InputSourceGet() == SRC_FM)
{
PutEvent(UI_EVT_IO(IO_EVT_SCROLL_UP, IO_KEY_UP), 0, NULL);
}
sprintf(buf, "%.2fMHz", (float)ulFMfreq/1000);
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_fm2);
TEXT_SetText(hItem, (const char *)buf);
hItem = WM_GetDialogItem(pMsg->hWin, ID_SLIDER_fm0);
SLIDER_SetValue(hItem, ulFMfreq);
}
break;
}
break;
case ID_SLIDER_fm0:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
hItem = WM_GetDialogItem(pMsg->hWin, ID_SLIDER_fm0);
ulFMfreq = SLIDER_GetValue(hItem);
sprintf(buf, "%.2fMHz", (float)ulFMfreq/1000);
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_fm2);
TEXT_SetText(hItem, (const char *)buf);
FMAPI_SetFreq(ulFMfreq);
AppNvr_SetFmFreq(ulFMfreq);
break;
}
break;
case ID_SLIDER_fm1:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
hItem = WM_GetDialogItem(pMsg->hWin, ID_SLIDER_fm1);
vol_data = SLIDER_GetValue(hItem);
AppNvr_MasterVolumeValueSet(vol_data);
break;
}
break;
case ID_BUTTON_fm3:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
if(s_ucSpeakerStatus == 1)
{
s_ucSpeakerStatus = 0;
LibEventDoImmediately(LibEvent_ID__NosignalMute);
}
else
{
s_ucSpeakerStatus = 1;
LibEventDoImmediately(LibEvent_ID__NosignalMuteRelease);
}
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
/*********************************************************************
*
* Public code
*
**********************************************************************
*/
/*********************************************************************
*
* CreateWindow
*/
WM_HWIN CreateWindow_fm(WM_HWIN hParent);
WM_HWIN CreateWindow_fm(WM_HWIN hParent) {
WM_HWIN hWin;
hWin = GUI_CreateDialogBox(_aDialogCreate_fm, GUI_COUNTOF(_aDialogCreate_fm), _cbDialog_fm, hParent, 0, 0);
return hWin;
}
/*************************** End of file ****************************/
|
|