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

📄 appmediaplayer.c

📁 中芯微camera 图像处理芯片演示
💻 C
字号:
/****************************************************************************
// MainForm.c
// MMI主界面
// Create by jsguo 2005.9.8
****************************************************************************/

#include "../inc/nucleus.h"

#include "../inc/winconfig.h"
#include "MMI.h"
#include "../inc/windows.h"

#include "../inc/nucleus.h"
#include "../inc/nu_sd.h"
#include "icon.h"
#include "demoTest.h"
extern NU_SERIAL_PORT  port;   
int g_exitInitSign;
static int gnButtonSelectedItem=1;
char g_szInfoLeft_Media[30];
char g_szInfoRight_Media[30];
char g_szButtonLeft_Media[30];
char g_szButtonRight_Media[30];
LRESULT CALLBACK mediaplayerproc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam);

static CALCULAGRAPH gCalculagraphIn={COLOR_NORMAL,0x0000,0,{23,MAINFRAME_WIDTH_DEFAULT+30+7+3,60,MAINFRAME_WIDTH_DEFAULT+30+7+10}};
static SLIDER_Obj gSliderIn={0x40c1ff,0xffff00,1,10,MAINFRAME_WIDTH_DEFAULT-30,MAINFRAME_HEIGHT_DEFAULT-9,10};
static SLIDER_Obj gSliderVolumeIn={0x40c1ff,0xffff00,2,MAINFRAME_WIDTH_DEFAULT+30+10,MAINFRAME_HEIGHT_DEFAULT-10,MAINFRAME_WIDTH_DEFAULT-13,MAINFRAME_HEIGHT_DEFAULT-10};

typedef struct VM_MMI_MEDIA__STRUCT
{
	char *			AppName;			// 程序名
	unsigned char *     pBitmap;			// 位图
	KeyEvent	MediaPlayerEntry;	// 主入口函数
}vmMediaPlayerApp;

static int gnButtonMatrix[6][4] = 
{
	{0,2,0,5},
	{1,3,0,5},
	{2,4,0,5},
	{3,6,0,5},
	{0,0,4,0},
	{4,0,0,5},
	
};

// 在MMI上显示程序的信息
static vmMediaPlayerApp MediaPlayerList[] = 
{
	{"播放",		playA,		NULL},
	{"暂停",		pauseA,		NULL},
	{"停止",		stopA,		NULL},
	{"录音",     	recordA,        NULL},
	{"播放",		playB,	 	User_MediaPlayer_Play},//,mediaplayer
	{"暂停",		pauseB,		User_MediaPlayer_Pause},
	{"停止",		stopB,		User_MediaPlayer_Stop},
	{"录音",     	recordB,        User_MediaPlayer_Record},

};


InitMWindow initMyMediaPlayer;
CloseMWindow closeMyMediaPlayer;
ExitInitMWindow exitInitMyMediaPlayer;
int SetMediaPlayer(InitMWindow init,ExitInitMWindow exitInit,CloseMWindow close)
{
	memcpy(g_szInfoLeft_Media,"↑  PAN   ↓ ",sizeof("↑  PAN   ↓"));
	memcpy(g_szInfoRight_Media,"←  PAN   →",sizeof("←  PAN   →"));
	memcpy(g_szButtonLeft_Media,"DISPLAY",sizeof("DISPLAY"));
	memcpy(g_szButtonRight_Media,"CANCEL",sizeof("CANCEL"));
	initMyMediaPlayer=init;
	initMyMediaPlayer();
	exitInitMyMediaPlayer=exitInit;
	closeMyMediaPlayer=close;

	return 1;
}
int gMaxSliderValue;
int gMaxVolumeValue;

int MMI_SetSliderMaxValue(int MaxSliderValue)
{
	//if(MaxSliderValue==0) return;
	gMaxSliderValue=MaxSliderValue;
	if(!gMaxSliderValue)
		gMaxSliderValue=1;
	PostMessage(GetActiveWindow(),WM_PAINT,0,0);
	return 1;
}
int MMI_SetVolumeMaxValue(int MaxVolumeValue)
{

	gMaxVolumeValue=MaxVolumeValue;
	if(!gMaxVolumeValue)
		gMaxVolumeValue=1;
	PostMessage(GetActiveWindow(),WM_PAINT,0,0);
	return 1;
}

int MMI_SetSliderValue(int CurrentSliderValue)
{

	gSliderIn.slnCurrentX=gSliderIn.slnStartX+CurrentSliderValue*(gSliderIn.slnEndX-gSliderIn.slnStartX)/gMaxSliderValue;
	PostMessage(GetActiveWindow(),WM_PAINT,0,0);
	return 1;
}
int MMI_SetVolumeValue(int CurrentVolumeValue)
{
	gSliderVolumeIn.slnCurrentX=gSliderVolumeIn.slnEndX-CurrentVolumeValue*(gSliderVolumeIn.slnEndX-gSliderVolumeIn.slnStartX)/gMaxVolumeValue;
	PostMessage(GetActiveWindow(),WM_PAINT,0,0);
	return 1;
}
int MMI_SetCalculagraphValue(int CurrentCalculagraphValue)
{
	gCalculagraphIn.cgSecond=CurrentCalculagraphValue;
	PostMessage(GetActiveWindow(),WM_PAINT,0,0);
	return 1;
}

int MMI_SetMediaPlayerInfo(char* szInfoLeft,char* szInfoRight,char* szButtonLeft,char* szButtonRight)
{
	if(szInfoLeft!=NULL)
	{
		memset(g_szInfoLeft_Media,0,sizeof(g_szInfoLeft_Media));
		strcpy(g_szInfoLeft_Media,szInfoLeft);
	}
	if(szInfoRight!=NULL)
	{
		memset(g_szInfoRight_Media,0,sizeof(g_szInfoRight_Media));
		strcpy(g_szInfoRight_Media,szInfoRight);
	}
	if(szButtonLeft!=NULL)
	{
		memset(g_szButtonLeft_Media,0,sizeof(g_szButtonLeft_Media));
		strcpy(g_szButtonLeft_Media,szButtonLeft);
	}
	if(szButtonRight!=NULL)
	{
		memset(g_szButtonRight_Media,0,sizeof(g_szButtonRight_Media));
		strcpy(g_szButtonRight_Media,szButtonRight);//sizeof(szButtonRight));
	}
	return 1;
}

int WINAPI MMediaPlayerForm(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   PSTR szCmdLine, int iCmdShow)
{
        static CHAR szAppName[]="MMediaPlayerForm";
        HWND hwnd;
        MSG msg;
        WNDCLASS wndclass;


        wndclass.style          = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
        wndclass.lpfnWndProc    = (WNDPROC)mediaplayerproc;
        wndclass.cbClsExtra     =0;
        wndclass.cbWndExtra     =0;
        wndclass.hInstance      =0;
        wndclass.hIcon          =0;
        wndclass.hCursor        =0;
        wndclass.hbrBackground  =(HBRUSH)GetStockObject(WHITE_BRUSH);

        wndclass.lpszMenuName   =NULL;
        wndclass.lpszClassName  = szAppName;


        RegisterClass(&wndclass);
        hwnd=CreateWindowEx(0L,
                          szAppName,
                          "mediaplayer",
                          WS_POPUP | WS_VISIBLE,//WS_OVERLAPPEDWINDOW
                          CW_USEDEFAULT,
                          CW_USEDEFAULT,
                          MAINFRAME_WIDTH_DEFAULT,
                          MAINFRAME_HEIGHT_DEFAULT,
                          NULL,
                          NULL,
                          NULL,
                          NULL);
               
     	g_exitInitSign=1;          
        ShowWindow(hwnd,iCmdShow);
        UpdateWindow(hwnd);


        while (GetMessage(&msg,NULL,0,0)) {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }      
        return msg.wParam;
}
extern int g_WaitSign;
extern UINT8 g_UAudioStop;
extern SETTING_ITEM MMI_VideoSetting[];
extern UINT16 Picturewidth;		//display pan source picture size
extern UINT16 PictureHeight;
// 消息循环函数
LRESULT CALLBACK mediaplayerproc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{      

	HDC hdc;
      	PAINTSTRUCT ps;
	RECT rectDisplay,rectControl,rectButton,rectInfo;
	HBRUSH hBrush,hSelectBrush,hControlBrush,hControlBrush1;
	int item,keyvalue;
	char strtmpResolution[30];

       switch (iMsg) 
	{
        case WM_PAINT:
		hBrush = CreateSolidBrush(0xd4deee);
		hSelectBrush = CreateSolidBrush(0);
		hControlBrush = CreateSolidBrush(COLOR_SELECT);
		hControlBrush1=CreateSolidBrush(0xffffff);	//angela
		hdc=BeginPaint(hwnd,&ps);

		rectDisplay.top = 4;
		rectDisplay.left = 4;
		rectDisplay.right = MAINFRAME_WIDTH_DEFAULT-3;
		rectDisplay.bottom = MAINFRAME_WIDTH_DEFAULT+30;
		FillRect(hdc,&rectDisplay,hSelectBrush);
		rectControl.top = MAINFRAME_WIDTH_DEFAULT+30;
		rectControl.left = 0;
		rectControl.right = MAINFRAME_WIDTH_DEFAULT;
		rectControl.bottom = MAINFRAME_HEIGHT_DEFAULT;
		FillRect(hdc,&rectControl,hBrush);
		//Draw information bar
		rectInfo.left = 4;
		rectInfo.right = MAINFRAME_WIDTH_DEFAULT-4;
		rectInfo.top = MAINFRAME_WIDTH_DEFAULT+30+4;
		rectInfo.bottom =MAINFRAME_HEIGHT_DEFAULT-30;
		
		rectInfo.right = MAINFRAME_WIDTH_DEFAULT/2-1;
		FillRect(hdc,&rectInfo,hControlBrush);
		DrawText(hdc,g_szInfoLeft_Media,-1,&rectInfo,
                DT_SINGLELINE|DT_CENTER|DT_VCENTER);
		rectInfo.left = MAINFRAME_WIDTH_DEFAULT/2+1;
		rectInfo.right = MAINFRAME_WIDTH_DEFAULT-4;
		FillRect(hdc,&rectInfo,hControlBrush);
		DrawText(hdc,g_szInfoRight_Media,-1,&rectInfo,
                     DT_SINGLELINE|DT_CENTER|DT_VCENTER);

	if(g_exitInitSign)
		{
			exitInitMyMediaPlayer();
			g_exitInitSign=0;
		}


		
		//Draw top information	angela added output information
		rectInfo.left = 4;
		rectInfo.right = MAINFRAME_WIDTH_DEFAULT-4;
		rectInfo.top = 4;
		rectInfo.bottom =16+4;
		memset(strtmpResolution,0,30);
		//strcat(strtmpResolution,MMI_VideoSetting[2].ItemName);
		//strcat(strtmpResolution,"640x480");
		sprintf(strtmpResolution,"照片尺寸%dx%d",Picturewidth,PictureHeight);
		FillRect(hdc,&rectInfo,hControlBrush1);
		DrawText(hdc,strtmpResolution,-1,&rectInfo,
                DT_SINGLELINE|DT_CENTER|DT_VCENTER);

	Uart_Printf("\n paint Picture source width : %d  ",Picturewidth);
		// Draw Button and Text
		rectButton.left = 0;
		rectButton.right = MAINFRAME_WIDTH_DEFAULT-0;
		rectButton.top = MAINFRAME_HEIGHT_DEFAULT-30+2;
		rectButton.bottom = MAINFRAME_HEIGHT_DEFAULT;

		rectButton.right = MAINFRAME_WIDTH_DEFAULT/2-1;
		FillRect(hdc,&rectButton,hControlBrush);
		DrawText(hdc,g_szButtonLeft_Media,-1,&rectButton,
                DT_SINGLELINE|DT_CENTER|DT_VCENTER);
		rectButton.left = MAINFRAME_WIDTH_DEFAULT/2+1;
		rectButton.right = MAINFRAME_WIDTH_DEFAULT-0;
		FillRect(hdc,&rectButton,hControlBrush);
		DrawText(hdc,g_szButtonRight_Media,-1,&rectButton,
                     DT_SINGLELINE|DT_CENTER|DT_VCENTER);
		DeleteObject(hSelectBrush);
		DeleteObject(hBrush);
	      	EndPaint(hwnd,&ps);
	
             break;
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
	case WM_KEYUP:
		keyvalue = wParam - 49;
		if(keyvalue == KEY_CANCEL)
		{
			PostMessage(hwnd,WM_CLOSE,0,1);
			if(closeMyMediaPlayer!=NULL)
				closeMyMediaPlayer();
			gCalculagraphIn.cgSecond=0;
			gSliderIn.slnCurrentX=10;
			gSliderVolumeIn.slnCurrentX=MAINFRAME_HEIGHT_DEFAULT-9;
			return 1;
		}
		switch(keyvalue) //by leon
		{
			case KEY_UP:				
				User_MediaPlayerKeyUp(); 
				break;
			case KEY_DOWN:
				User_MediaPlayerKeyDown(); 
				break;
			case KEY_LEFT:
				User_MediaPlayerKeyLeft(); 
				break;
			case KEY_RIGHT:
				User_MediaPlayerKeyRight(); 
				break;
			case KEY_MIDDLE:
				User_MediaPlayerKeyMiddle(); 
				break;
			default:
				User_KeyValueEvent(keyvalue);
				break;
		}
		if(keyvalue == KEY_OK) 
		{
			
			// 根据当前选择的项目,调用相应的主函数
			KeyEvent main = MediaPlayerList[gnButtonSelectedItem+4-1].MediaPlayerEntry;
			if(main != NULL)
				main(0, 0, 0);
			PostMessage(hwnd,WM_PAINT,0,0);	
		}	
		break;
        default:
                return DefWindowProc(hwnd,iMsg,wParam,lParam);
        }      
        return (0);
}

⌨️ 快捷键说明

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