📄 winpicinfobarevent.c
字号:
/*******************************************************************
*
* Copyright C 2005 by Amlogic, Inc. All Rights Reserved.
*
* Description:
*
* Author: Amlogic Software
* Created: Fri Nov 11 01:17:34 2005
*
*******************************************************************/
#include "../menu.h"
#include "user.h"
#include "datasrc.h"
#include <os/extend/avtimer.h>
#include "pic_define.h"
#include "WinPicInfoBarEvent.h"
#include "../aw_PIC_app.h"
#include "../aw_sys_app.h"
#include "../aw_gui_app.h"
#include "../aw_audioplayer_app.h"
#include "../aw_TXT_app.h"
#include <Drivers/usb/gadget/dsc.h>
static INT32U pic_infobar_time=0;
INT8U onshowbar=0;
extern INT8U Music_Pic_mix_flag;
#ifdef ENABLE_CLOCK
#include "WinClockEvent.h"
extern AVTimer_t Clock_Timer;
extern AVTimer_t AlarmClockTimer;
#endif
static const unsigned short used_palette_common[1][478]=
{
0xec20, 0xf7, 0xa062, 0xf7, 0xe5e1, 0xf7, 0xe7e1, 0xf7, 0x5764, 0xf7, 0x97e4, 0xf7, 0x9aa3, 0xf7, 0x9de3, 0xf7, 0x9fa3, 0xf7, 0xa122, 0xf7, 0xa1a2, 0xf7, 0xe422, 0xf7, 0xe6e1, 0xf7, 0x58e4, 0xf7, 0xa122, 0xf7, 0xe3a2, 0xf7, 0xe5a1, 0xf7, 0xeae0, 0xf7, 0xeca0, 0xf7, 0xe8a1, 0xf7, 0xe961, 0xf7, 0xee20, 0xf7, 0x9668, 0xf6, 0x9be8, 0xf6, 0xf8a0, 0xf7, 0x576d, 0xf5, 0xd8ab, 0xf5, 0x9b2b, 0xf5, 0xd96f, 0xf4, 0xda32, 0xf3, 0xda32, 0xf3, 0x1af2, 0xf4, 0xa12b, 0xf5, 0x65e7, 0xf6, 0xa326, 0xf6, 0xf9e0, 0xf7, 0x19f1, 0xf4, 0x1971, 0xf4, 0x5caf, 0xf4, 0x1f28, 0xf6, 0x596f, 0xf4, 0x9eee, 0xf4, 0xe168, 0xf5, 0x7022, 0xf7, 0xb521, 0xf7, 0xf720, 0xf7, 0x582e, 0xf4, 0x57ed, 0xf4, 0x60ed, 0xf4, 0xe9a4, 0xf6, 0x2ca3, 0xf7, 0x6ee2, 0xf7, 0x71e2, 0xf7, 0xb621, 0xf7, 0x576d, 0xf4, 0xd6eb, 0xf4, 0x17aa, 0xf5, 0x17ea, 0xf5, 0x18aa, 0xf5, 0x196a, 0xf5, 0x192a, 0xf5, 0x5aea, 0xf5, 0x9c69, 0xf5, 0x65a5, 0xf6, 0xa824, 0xf6, 0xb3e1, 0xf7, 0xf7e0, 0xf7, 0xf960, 0xf7, 0x96ec, 0xf4, 0x972c, 0xf4, 0x97ac, 0xf4, 0x97ac, 0xf4, 0x986c, 0xf4, 0x986b, 0xf4, 0x982b, 0xf4, 0x996b, 0xf4, 0x9a6b, 0xf4, 0x9b6b, 0xf4, 0xda2b, 0xf4, 0xdb6a, 0xf4, 0x5ea9, 0xf5, 0xa268, 0xf5, 0xe2e7, 0xf5, 0xe3a7, 0xf5, 0x2666, 0xf6, 0x6aa5, 0xf6, 0xab65, 0xf6, 0x9b6b, 0xf4, 0x9cab, 0xf4, 0xdcaa, 0xf4, 0xddaa, 0xf4, 0xdf2a, 0xf4, 0xe06a, 0xf4, 0x6468, 0xf5, 0xa4a7, 0xf5, 0xa5e7, 0xf5, 0xe4a7, 0xf5, 0xe4e6, 0xf5, 0xe566, 0xf5, 0x27e6, 0xf6, 0xe1aa, 0xf4, 0xe3a9, 0xf4, 0xe5e9, 0xf4, 0xe7a9, 0xf4, 0x66a8, 0xf5, 0xa667, 0xf5, 0x67a7, 0xf5, 0xa7a7, 0xf5, 0xa767, 0xf5, 0xa8a7, 0xf5, 0xe8e6, 0xf5, 0x28e8, 0xf5, 0xa8a7, 0xf5, 0xa967, 0xf5, 0xaa67, 0xf5, 0xa967, 0xf5, 0xaba7, 0xf5, 0xaa67, 0xf5, 0xab66, 0xf5, 0xeaa6, 0xf5, 0xeb66, 0xf5, 0x29e8, 0xf5, 0x2aa8, 0xf5, 0x2b27, 0xf5, 0x2aa7, 0xf5, 0x6ba7, 0xf5, 0x6ce6, 0xf5, 0xac66, 0xf5, 0xade6, 0xf5, 0xed26, 0xf5, 0xae66, 0xf5, 0xeda6, 0xf5, 0xeda6, 0xf5, 0xed66, 0xf5, 0xee26, 0xf5, 0xede6, 0xf5, 0xee66, 0xf5, 0xeea6, 0xf5, 0x275f, 0xf8, 0x325f, 0xf8, 0x3a5f, 0xf8, 0x331f, 0xf8, 0x31df, 0xf8, 0x30df, 0xf8, 0x309f, 0xf8, 0x305f, 0xf8, 0x301f, 0xf8, 0x2f9f, 0xf8, 0x2edf, 0xf8, 0x2e9f, 0xf8, 0x2e5f, 0xf8, 0x2e1f, 0xf8, 0x2ddf, 0xf8, 0x2d9f, 0xf8, 0x2d9f, 0xf8, 0x2d5f, 0xf8, 0x2d1f, 0xf8, 0x2cdf, 0xf8, 0x2c9f, 0xf8, 0x2c5f, 0xf8, 0x2c1f, 0xf8, 0x2bdf, 0xf8, 0x2b9f, 0xf8, 0x2b5f, 0xf8, 0x2b1f, 0xf8, 0x2adf, 0xf8, 0x2a9f, 0xf8, 0x2a9f, 0xf8, 0x2a5f, 0xf8, 0x2a1f, 0xf8, 0x299f, 0xf8, 0x295f, 0xf8, 0x291f, 0xf8, 0x291f, 0xf8, 0x195f, 0xf8, 0xe5a0, 0xf7, 0x285f, 0xf8, 0x281f, 0xf8, 0x27df, 0xf8, 0x279f, 0xf8, 0x275f, 0xf8, 0x271f, 0xf8, 0x26df, 0xf8, 0x269f, 0xf8, 0x265f, 0xf8, 0x261f, 0xf8, 0x25df, 0xf8, 0x25df, 0xf8, 0x259f, 0xf8, 0x255f, 0xf8, 0x251f, 0xf8, 0x24df, 0xf8, 0x249f, 0xf8, 0x245f, 0xf8, 0x245f, 0xf8, 0x241f, 0xf8, 0x23df, 0xf8, 0x239f, 0xf8, 0x231f, 0xf8, 0x22df, 0xf8, 0x22df, 0xf8, 0x229f, 0xf8, 0x225f, 0xf8, 0x21df, 0xf8, 0x219f, 0xf8, 0x215f, 0xf8, 0x211f, 0xf8, 0x3adf, 0xf8, 0x3a9f, 0xf8, 0x3a60, 0xf8, 0x3960, 0xf8, 0x38e0, 0xf8, 0x3820, 0xf8, 0x35e0, 0xf8, 0xf560, 0xf7, 0xf4df, 0xf7, 0x33a0, 0xf8, 0x32e0, 0xf8, 0xf220, 0xf7, 0xf1a0, 0xf7, 0x3160, 0xf8, 0x3060, 0xf8, 0xefdf, 0xf7, 0xef60, 0xf7, 0x2c20, 0xf8, 0x29e0, 0xf8, 0x23a0, 0xf8, 0x2220, 0xf8, 0x2160, 0xf8, 0x29df, 0xf8, 0x2020, 0xf8, 0x1fa0, 0xf8, 0x1f20, 0xf8, 0xdda0, 0xf7, 0xdbe0, 0xf7, 0xdaa0, 0xf7, 0x1960, 0xf8, 0x18a0, 0xf8, 0x17a0, 0xf8,
};
int Video_Bright_Table[17] = {- 450, -400, -350, -300, -250, -200, -160, - 120, -80, -40, 0, 50, 100, 150, 200, 250, 300};
int Video_Contrast_Table[17] = {-400, -350, -300, -250, -200, -150, -100, -50, 0, 50, 100, 150, 200, 250, 300, 350, 400};
int Video_Saturation_Table[17] = {-999,-900, -800,-700,-600,-500,-400,-300,- 250, -200, -100, 0, 100, 200, 300,400, 500};
video_adjustment_t video_adjust = {0, 0, 0, -30};
INT8U SetAV_Value[3];
void osdsettpval(INT8U osd_id)//from 0 -- 15
{
SetOSD240Color(used_palette_common[osd_id],0xff);
return;
}
INT32S PicInfoBarOnShow(PHWND hwnd, INT32S lpParam)
{
osdsettpval(0);
if(GetShowInfo()){
switch(GetShowInfo()){
case 1:
#ifdef LCD_480X234
hwnd->draw_info[0].draw_pos_x= 160;
#else
hwnd->draw_info[0].draw_pos_x= 70;
#endif
hwnd->draw_info[0].draw_data = (INT32U)Nocardinsert;
hwnd->draw_info[0].draw_type = DT_STRING_DATA;
break;
case 2:
#ifdef LCD_480X234
hwnd->draw_info[0].draw_pos_x= 160;
#else
hwnd->draw_info[0].draw_pos_x= 70;
#endif
hwnd->draw_info[0].draw_data = (INT32U)Nofilefound;
hwnd->draw_info[0].draw_type = DT_STRING_DATA;
break;
case 3:
case 4:
#ifdef LCD_480X234
hwnd->draw_info[0].draw_pos_x= 110;
#else
hwnd->draw_info[0].draw_pos_x= 40;
#endif
hwnd->draw_info[0].draw_data = (INT32U)UpgradeInfo;
hwnd->draw_info[0].draw_type = DT_STRING_DATA;
break;
#ifdef ENABLE_VIDEO
case 5:
hwnd->draw_info[0].draw_data = (INT32U)ICON_VIDEO;
#ifdef LCD_480X234
hwnd->draw_info[0].draw_pos_x= 80;
#else
hwnd->draw_info[0].draw_pos_x= 10;
#endif
hwnd->draw_info[0].draw_type = DT_RLE_BMP_DATA;
break;
#endif
default:
break;
}
}else{
if(onshowbar==1)
hwnd->draw_info[0].draw_data = (INT32U)ICON_MUSIC;
else
hwnd->draw_info[0].draw_data = (INT32U)ICON_PHOTO;
#ifdef LCD_480X234
hwnd->draw_info[0].draw_pos_x= 80;
#else
hwnd->draw_info[0].draw_pos_x= 10;
#endif
hwnd->draw_info[0].draw_type = DT_RLE_BMP_DATA;
}
return 0 ;
}
INT32S PicInfoBarOnKeyPress(PHWND hwnd, INT32S lpParam)
{
INT32U *key_value = (INT32U *)lpParam ;
char *file_name = "/mnt/C/app_COPIA.img";
if(*key_value != UOP_NOP) {
pic_infobar_time = 0 ;
}
if((AWGetTopWindow(gpFocusWin) == AWFindWinCtrlByName("WinPicInfoBar"))&&
(*key_value == UOP_OSD)){
GUIHideWindow("WinPicInfoBar");
*key_value = UOP_NOP;
return 0;
}
if((GetShowInfo()==4)||(GetShowInfo()==5))
return 0;
switch(GetShowInfo()){
case 1:
case 2:
*key_value = UOP_NOP;
break;
case 3:
if(*key_value==UOP_UP){
PlayTxtFile(file_name, TXT_PLAY_IMG , UPGRADE_OPEN_INTERRUPT, 0) ;
}
*key_value = UOP_NOP;
#ifdef ENABLE_CLOCK
if(AVTimerIsEnabled(Clock_Timer))
AVTimerDelete(Clock_Timer);
if(AVTimerIsEnabled(AlarmClockTimer))
AVTimerDelete(AlarmClockTimer);
#endif
break;
default:
break;
}
if(*key_value == UOP_UP){
if(((Music_Pic_mix_flag & 2) == 0)||((Music_Pic_mix_flag & 1) == 0)){
#ifdef ENABLE_CLOCK
GUIShowWindow("WinClock");
onshowbar=3;
Setcurwindow(3);
#else
GUIHideWindow("WinPicInfoBar");
#endif
*key_value = UOP_NOP;
return 0;
}
if(onshowbar==1){
#ifdef ENABLE_CLOCK
GUIHideWindow("WinPicInfoBar");
GUIShowWindow("WinClock");
onshowbar=3;
Setcurwindow(3);
#else
GUIHideWindow("WinPicInfoBar");
onshowbar=0;
#endif
*key_value = UOP_NOP;
return 0;
}
onshowbar = onshowbar ^ 1;
if ((onshowbar == 1) && ((Music_Pic_mix_flag & 2) == 0)) {
onshowbar = 0;
}
else if ((onshowbar == 0) && ((Music_Pic_mix_flag & 1) == 0)) {
onshowbar = 1;
}
if(onshowbar==1){
hwnd->draw_info[0].draw_data =(INT32U)ICON_MUSIC;
} else {
hwnd->draw_info[0].draw_data =(INT32U)ICON_PHOTO;
}
}
AWPostMessage(hwnd, WM_PAINT_DRAW_INFO, 0) ;
AWPostMessage(hwnd, WM_PAINT_FINISH, 0) ;
#ifndef PIC_ONLY
if(onshowbar == 1)
AWAudioplayerKeyDo(*key_value);
else
AWPICKeyDo(*key_value);
#else
AWPICKeyDo(*key_value);
#endif
*key_value = UOP_NOP;
return 0 ;
}
INT32S PicInfoBarOnOtherEvent(PHWND hwnd, INT32U msg_type, INT32S lpParam)
{
switch(msg_type){
case WM_SECOND_TIMEOUT:
pic_infobar_time++ ;
#ifdef ENABLE_VIDEO
if(GetShowInfo()&&(GetShowInfo()!=5))
#else
if(GetShowInfo())
#endif
pic_infobar_time = 0 ;
if(pic_infobar_time > 20) {
pic_infobar_time = 0 ;
if((Music_Pic_mix_flag & 1) == 1)
onshowbar=0;
GUIHideWindow("WinPicInfoBar");
break ;
}
break;
}
return 0 ;
}
INT32S WinPicInfoBarOnShow(PHWND hwnd, INT32S lpParam)
{
return 0 ;
}
INT32S UpdateUpgradeControl()
{
PHWND hwnd = AWFindWinCtrlByName("PicInfoBar") ;
if((hwnd == NULL)||(!AWIsVisibleWinControl(hwnd)))
return 0 ;
AWPostMessage(hwnd, WM_PAINT_DRAW_INFO_CENTER, 0) ;
}
void Set_AV_Para(void)
{
INT32U video_adjustment;
video_adjust.Brightness = Video_Bright_Table[SetAV_Value[0]];
video_adjust.Contrast = Video_Contrast_Table[SetAV_Value[1]];
video_adjust.Saturation = Video_Saturation_Table[SetAV_Value[2]];
video_adjustment = open("/dev/displayctl",O_RDWR);
ioctl(video_adjustment, DISPCTLIO_ADJUST_VIDEO, &video_adjust);
close(video_adjustment);
}
void Init_AVSet_Para()
{
SetAV_Value[0]=6 ;
SetAV_Value[1]=8 ;
SetAV_Value[2]=8 ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -