⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo.c

📁 The combined demo is dedicated for S1C33L05, so DMT33L05 should be used to load and run the demo. F
💻 C
📖 第 1 页 / 共 2 页
字号:
//--------------------------------------------------------------------------------- 
//
//      Copyright (C) SEIKO EPSON CORP. 2004 
//
//      GROUP			: SEE LSI
//      FILE                    : demo.c
//      MODULE                  : 
//      Function description    : 
//      Revision history        :                                                                                               
//                                Date            userName         Description
//                                2004/06/02      David.ji	       start
//
//      Notes                   : 
//
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
// Include files (#include)
//---------------------------------------------------------------------------------
#include "ros33.h"
#include "sysGUI.h"
#include "main.h"
#include "comFS.h"
#include "usbfw_if.h"
#include "appres.h"

//---------------------------------------------------------------------------------
// macro define
//---------------------------------------------------------------------------------
#define IDC_BTN_VWIN 100			// virtual display
#define IDC_BTN_SNDP 110			// g723.1 snd player
#define IDC_BTN_DSKM 120			// disk manager
#define IDC_BTN_DICT 130			// dictionary demo
#define IDC_BTN_SLID 140			// picture slide show

typedef enum {
	APP_MAIN,
	APP_VWIN,
	APP_SNDP,
	APP_DSKM,
	APP_DICT,
	APP_SLID,
} enAppType;

//---------------------------------------------------------------------------------
// Global var
//---------------------------------------------------------------------------------
T_EXTERN T_VOID USBD_Init(T_VOID);

T_GUI_MainWinCreate CreateInfo;

T_MODULE T_VOID InitCreateInfo(T_GUI_HWND hWnd, T_GUI_pMainWinCreate  pCreateInfo, enAppType AppType);
T_WORD userDskProc(T_GUI_HWND hWnd, T_WORD message, T_GUI_WPARAM wParam, T_GUI_LPARAM lParam);

//---------------------------------------------------------------------------------
// App control process
//---------------------------------------------------------------------------------
T_EXTERN T_WORD DskManagerWinProc(T_GUI_HWND hWnd, T_WORD message, T_GUI_WPARAM wParam, T_GUI_LPARAM lParam);
T_EXTERN T_WORD SndplayerWinProc(T_GUI_HWND hWnd, T_WORD message, T_GUI_WPARAM wParam, T_GUI_LPARAM lParam);
T_EXTERN T_WORD DictWinProc(T_GUI_HWND hWnd, T_WORD message, T_GUI_WPARAM wParam, T_GUI_LPARAM lParam);
T_EXTERN T_WORD VirWinProc(T_GUI_HWND hWnd, T_WORD message, T_GUI_WPARAM wParam, T_GUI_LPARAM lParam);
T_EXTERN T_WORD PicSlidProc(T_GUI_HWND hWnd, T_WORD message, T_GUI_WPARAM wParam, T_GUI_LPARAM lParam);

T_EXTERN T_WORD FS_ObtainSemaphore(T_VOID);
T_EXTERN T_WORD FS_ReleaseSemaphore(T_VOID);

T_MODULE T_WORD Demo_InitRes();
T_MODULE T_WORD Demo_FreeRes();

/******************************************************************
 * FUNCTION: ControlWinProc(
 *
 * PURPOSE:
 *		Control win proc
 *
 * PARAMETERS
 *    Input:
 *    Output:
 *    InOut:
 *
 * Return value:
 *
 * Reentrant : No
*****************************************************************/
T_BYTE* pIconBuf[5];
T_BYTE	bDictWnd_exist;

T_WORD ControlWinProc(T_GUI_HWND hWnd, T_WORD message, T_GUI_WPARAM wParam, T_GUI_LPARAM lParam)
{
	T_GUI_HWND hWnd_VWIN, hWnd_SNDP, hWnd_DSKM, hWnd_DICT, hWnd_SLID;
	T_GUI_HWND hChildWnd1, hChildWnd2, hChildWnd3, hChildWnd4, hChildWnd5;

	T_MODULE T_BYTE *pIconBuf1,*pIconBuf2,*pIconBuf3,*pIconBuf4,*pIconBuf5;
	T_MODULE T_GUI_HICON pDemoIcon[5];
	
	T_MODULE T_BYTE InitRes = 0;

    switch (message) {
        case MSG_CREATE:
        {
        T_WORD i;
        T_GUI_HDC hdc;
        	
        hdc = fnGUI_BeginPaint(hWnd);
        
		if(Demo_InitRes() != 1)
		{
			for(i=0; i< 5; i++)
				pDemoIcon[i]= fnGUI_LoadIconFromMemory(hdc,(T_CONST T_BYTE *)pSysIcon, 0);
		}
		else
		{
			for(i=0; i< 5; i++)
				pDemoIcon[i]= fnGUI_LoadIconFromMemory(hdc,(T_CONST T_BYTE *)pIconBuf[i], 0);
				InitRes = 1;
		}
                
        hChildWnd1 = fnGUI_CreateWindow (CTRL_BUTTON,
              						" 字典 " ,  //"   帿 彂   ",
              						WS_CHILD| WS_VISIBLE
									|STY_BTN_OWNERDRAW|STY_BTN_ICONWITHSTRING,
									IDC_BTN_DICT,
									10, 15, 60, 60, hWnd,
									pDemoIcon[0]);
        
		hChildWnd2 = fnGUI_CreateWindow (CTRL_BUTTON,
              						"G723.1语音", //""俧723.1僾儗乕儎乕",
              						WS_CHILD| WS_VISIBLE
									|STY_BTN_OWNERDRAW|STY_BTN_ICONWITHSTRING,
									IDC_BTN_SNDP,
									85, 15, 60, 60, hWnd,
									pDemoIcon[1]);
									
		hChildWnd3 = fnGUI_CreateWindow (CTRL_BUTTON,
              						"内存管理",  //"僨傿僗僋儅僱乕僕儍",
              						WS_CHILD| WS_VISIBLE
									|STY_BTN_OWNERDRAW|STY_BTN_ICONWITHSTRING,
									IDC_BTN_DSKM,
									160, 15, 60, 60, hWnd,
									pDemoIcon[2]);
		
		hChildWnd4 = fnGUI_CreateWindow (CTRL_BUTTON,
              						"虚拟桌面", //"壖憐僗僋儕乕儞",
              						WS_CHILD| WS_VISIBLE
									|STY_BTN_OWNERDRAW|STY_BTN_ICONWITHSTRING,
									IDC_BTN_VWIN,
									235, 15, 60, 60, hWnd,
									pDemoIcon[3]);

		hChildWnd5 = fnGUI_CreateWindow (CTRL_BUTTON,
              						"图片幻灯" , //"醏憸僗儔僀僪",
              						WS_CHILD| WS_VISIBLE
									|STY_BTN_OWNERDRAW|STY_BTN_ICONWITHSTRING,
									IDC_BTN_SLID,
									10, 80, 60, 60, hWnd,
									pDemoIcon[4]);
									
        fnGUI_EndPaint(hWnd,hdc);
        
        bDictWnd_exist = 0;
    	}
        break;

        case MSG_COMMAND:
        {
        T_WORD id   = LOUHWORD(wParam);
        T_WORD code = HIUHWORD(wParam);
        switch (id)
            {
                case IDC_BTN_VWIN:
              		InitCreateInfo(hWnd, &CreateInfo, APP_VWIN);
               		hWnd_VWIN = fnGUI_CreateMainWindow(&CreateInfo);
               	break;
                
                case IDC_BTN_SLID:
	                InitCreateInfo(hWnd, &CreateInfo, APP_SLID);
               		hWnd_SLID = fnGUI_CreateMainWindow(&CreateInfo);
                break;
                
                case IDC_BTN_SNDP:
                	InitCreateInfo(hWnd, &CreateInfo, APP_SNDP);
                	hWnd_SNDP = fnGUI_CreateMainWindow(&CreateInfo);
                break;
                
	            case IDC_BTN_DSKM:
	            	InitCreateInfo(hWnd, &CreateInfo, APP_DSKM);
	            	hWnd_DSKM = fnGUI_CreateMainWindow(&CreateInfo);
                break;
                
                case IDC_BTN_DICT:
                	if(bDictWnd_exist == 1)
                		break;
	                InitCreateInfo(hWnd, &CreateInfo, APP_DICT);
	            	hWnd_DICT = fnGUI_CreateMainWindow(&CreateInfo);
	            	bDictWnd_exist =1;
	            break;
                
                default:
                break;
            }
        }
        break;
        
        case MSG_CLOSE:
        {
        	T_WORD i;
        	if(InitRes = 1)
        	{
        		Demo_FreeRes();
        		InitRes = 0;	
        	}
        	for(i=0; i<5; i++)
        		fnGUI_DestroyIcon(pDemoIcon[i]);

        	fnGUI_DestroyWindow (hChildWnd1);
        	fnGUI_DestroyWindow (hChildWnd2);
        	fnGUI_DestroyWindow (hChildWnd3);
        	fnGUI_DestroyWindow (hChildWnd4);
        	fnGUI_DestroyWindow (hChildWnd5);
        	fnGUI_DestroyMainWindow (hWnd);
        	fnGUI_PostQuitMessage (hWnd);
        	return 0;
    	}
	}
    return fnGUI_DefaultMainWinProc(hWnd, message, wParam, lParam);
}

/******************************************************************
 * FUNCTION: InitCreateInfo
 *
 * PURPOSE:
 *		Inital create info
 *
 * PARAMETERS
 *    Input:
 *    Output:
 *    InOut:
 *
 * Return value:
 *
 * Reentrant : No
*****************************************************************/
T_MODULE T_VOID InitCreateInfo(T_GUI_HWND hWnd ,T_GUI_pMainWinCreate  pCreateInfo, enAppType AppType)
{
    switch (AppType){
    case APP_MAIN:
	    pCreateInfo->dwStyle = WS_VISIBLE;
    	pCreateInfo->dwExStyle = 0;
    	pCreateInfo->spCaption = "" ;
    	pCreateInfo->hMenu = 0;
    	pCreateInfo->hIcon = 0;
    	pCreateInfo->MainWindowProc = ControlWinProc;
    	pCreateInfo->lx = 0;
    	pCreateInfo->ty = 0;
	    pCreateInfo->rx = 320;
    	pCreateInfo->by = 240;
    	pCreateInfo->iBkColor = COLOR_CYAN;
    	pCreateInfo->dwAddData = 0;
    	pCreateInfo->hHosting = HWND_DESKTOP;
    	break;

	case APP_DSKM: // disk manager
	    pCreateInfo->dwStyle = WS_CAPTION |WS_BORDER |WS_VISIBLE;
    	pCreateInfo->dwExStyle = WS_EX_TOPMOST;
    	pCreateInfo->spCaption = "内存管理"; //"僨傿僗僋儅僱乕僕儍" ;
    	pCreateInfo->hMenu = 0;
    	pCreateInfo->hIcon = 0;
    	pCreateInfo->MainWindowProc = DskManagerWinProc;
    	pCreateInfo->lx = 0;
    	pCreateInfo->ty = 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -