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

📄 winpicinfobarevent.c

📁 AMLOGIC DPF source code
💻 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 + -