INT32 System_UserKeyFilter(NVTEVT evt, UINT32 paramNum, UINT32 *paramArray)
{
    UINT32 key = evt;

if(IN_RANGE_EVENT(key, NVTEVT_KEY_STATUS_START, NVTEVT_KEY_STATUS_END)) //Status class
    {

__FUNC_TRACK__;
    
        System_ResetDetCloseLenCount();
        System_ResetPowerSaveCount();
        
#if (STATUSKEY_FUNCTION == ENABLE)
        DBG_IND("^Bgroup key event=0x%x\r\n", key);

if(g_bConsumeStatus)
        {
            g_bConsumeStatus = 0;
        }
        else
        {
            UINT32 uiDscMode = Input_Key2Mode(key);
            DBG_IND("^YDscMode=0x%x\r\n", uiDscMode);
            //FlowMode_OnKeyMode(uiDscMode);
            UI_Switch_DscMode(uiDscMode,DSCMODE_SWITCH_FORCE,DSCMODE_SWITCHDIR_DONT_CARE);
        }
#endif
        return NVTEVT_CONSUME;
    }
    else if(IN_RANGE_EVENT(key, NVTEVT_KEY_BUTTON_START, NVTEVT_KEY_BUTTON_END)) //Button class
    {

//__FUNC_TRACK__;
        if(IN_RANGE_EVENT(key, NVTEVT_KEY_PRESS_START, NVTEVT_KEY_PRESS_END)) //Press key
        {

__FUNC_TRACK__;    //ÁÁÆÁ
            if(key == NVTEVT_KEY_POWER)
            {
                return NVTEVT_CONSUME;
            }

System_ResetDetCloseLenCount();
            
            if(GxPower_GetControl(GXPWR_CTRL_SLEEP_LEVEL) > 1)  // drop key if sleep level > 1
            {
                __FUNC_TRACK__;
            
                //NOTE! do not set GXPWR_CTRL_SLEEP_RESET before get GXPWR_CTRL_SLEEP_LEVEL,
                //  because GXPWR_CTRL_SLEEP_LEVEL status maybe alter by sleep wakeup flow~
                System_ResetPowerSaveCount();
                return NVTEVT_CONSUME;
            }
            else
            {
                System_ResetPowerSaveCount();
                if (m_uiAnyKeyUnlockEn)
                {
                    Ux_PostEvent(NVTEVT_KEY_PRESS_START, 1, key);
                    return NVTEVT_CONSUME;
                }
                
                return NVTEVT_PASS;
            }

}
        else if(IN_RANGE_EVENT(key, NVTEVT_KEY_CONTINUE_START, NVTEVT_KEY_CONTINUE_END)) //Contine key
        {

switch(key) {

//case NVTEVT_KEY_CUSTOM1_CONT:
                case NVTEVT_KEY_POWER_CONT:

CheckSetLongKeyFlag();//++
                    {
                        __FUNC_TRACK__;
                        if( Input_GetLongKeyFlag() )
                        {
                            __FUNC_TRACK__;
                            //if(FALSE == MovRec_IsRecording())
                            {

//²»ÐèÒª¼ì²â°´¼ü¹Ø±ÕÖ®ºó£¬USB½ÓÈëÖØÆô
                                PowerOffCheckUSB = TRUE;
                                __POWEROFF_TRACK__;

System_PowerOff(SYS_POWEROFF_NORMAL);    
                                return NVTEVT_CONSUME;
                            }
                        }
                    }                    
                    break;
                    
#if(EAE_LOGO==ENABLE)
                case NVTEVT_KEY_DOWN_CONT:
                    
                    CheckSetLongKeyFlag();//++
                    {
                        __FUNC_TRACK__;
                        if( Input_GetLongKeyFlag() )
                        {
                            __FUNC_TRACK__;
                            
                            if((UI_GetData(FL_MOVIE_AUTO_PARKING_MODE) != 0)&&(SysGetFlag(FL_MOVIE_TIMELAPSE_REC)==MOVIE_TIMELAPSEREC_OFF))
                            //if(UI_GetData(FL_MOVIE_AUTO_PARKING_MODE) != 0)
                            {
                                if(get_parking_mode_flag())
                                    app_exit_eae_parking_mode();
                                else
                                    app_enter_eae_parking_mode();
                            }
                        }
                    }
                    break;
#endif
#if 0
                //case NVTEVT_KEY_SHUTTER1_CONT:
                case NVTEVT_KEY_MENU_CONT:

__FUNC_TRACK__;
                    
                    CheckSetLongKeyFlag();//++
                    if(1)//FALSE == get_ignore_mode_press())
                    {
                        __FUNC_TRACK__;
                        if(Input_GetLongKeyFlag() && (FALSE == GetLongSetupWifi()))
                        {
                            __FUNC_TRACK__;

debug_msg("========= FL_ModeIndex:  %d \r\n", UI_GetData(FL_ModeIndex));
                            if(UI_GetData(FL_ModeIndex) == DSC_MODE_MOVIE) {

//if(!MovRec_IsRecording())
                                {
                                    debug_msg("========= gMovData.State :  %d \r\n", gMovData.State );
                                    if(gMovData.State == MOV_ST_VIEW)
                                    {
                                        g_bRecordLock = FALSE;

SetLongSetupWifi( TRUE );
                                        UIFlowWndMovie_SetupWifi();
                                    }
                                }
                            }
                            else if(UI_GetData(FL_ModeIndex) < DSC_MODE_MOVIE)
                            {
                                debug_msg("========= gPhotoData.State :  %d \r\n", gPhotoData.State );
                                if(gPhotoData.State == PHOTO_ST_VIEW)
                                {
                                    g_bRecordLock = FALSE;

SetLongSetupWifi( TRUE );
                                    UIFlowWndMovie_SetupWifi();
                                }
                            }
                            else
                            {
                            
                            }
                            
                            return NVTEVT_PASS;//NVTEVT_CONSUME;
                        }
                    }
                    else
                    {
                        __FUNC_TRACK__;
                        return NVTEVT_PASS;//NVTEVT_CONSUME;
                    }
                    break;
#endif
#if 0
                case NVTEVT_KEY_POWER_CONT:
                    return NVTEVT_CONSUME;

case NVTEVT_KEY_MODE_CONT:
                    
                    CheckSetLongKeyShutter1Flag();//++
                    {
                        __FUNC_TRACK__;
                        if(Input_GetLongKeyShutter1Flag())
                        {
                            __FUNC_TRACK__;
                            SetLongShutter1KeyFlag(TRUE);
                        }
                    }        
                    return NVTEVT_CONSUME;
                    break;
#endif                    
            }

System_ResetDetCloseLenCount();
            System_ResetPowerSaveCount();
            return NVTEVT_PASS;
        }
        else if(IN_RANGE_EVENT(key, NVTEVT_KEY_RELEASE_START, NVTEVT_KEY_RELEASE_END)) //Release key
        {

__FUNC_TRACK__;    //Ï¢ÆÁ´òÓ¡

set_ignore_mode_press( FALSE );
            
            ClearKeyHoldCount();
            ClearKeyShutter1HoldCount();
            
            SetLongShutter1KeyFlag( FALSE );

if(key == NVTEVT_KEY_POWER_REL)
            {
                
                System_ResetDetCloseLenCount();
            
                if(GxPower_GetControl(GXPWR_CTRL_SLEEP_LEVEL) > 1)  // drop key if sleep level > 1
                {
                    //NOTE! do not set GXPWR_CTRL_SLEEP_RESET before get GXPWR_CTRL_SLEEP_LEVEL,
                    //  because GXPWR_CTRL_SLEEP_LEVEL status maybe alter by sleep wakeup flow~
                    System_ResetPowerSaveCount();
                }
                else
                {

//debug_msg("==========power_times :  %d \r\n", power_times);
                    {
                        
                        //#NT#2016/03/07#KCHong -begin
                        //#NT#Low power timelapse function
                        #if (TIMELAPSE_LPR_FUNCTION == ENABLE)
                        MovieTLLPR_Process(TIMELAPSE_FROM_PWRKEY);
                        #endif
                        
                        //#NT#2016/03/07#KCHong -end
                        //System_PowerOff(SYS_POWEROFF_NORMAL);
                    }
                    
                }

return NVTEVT_CONSUME;
            }

System_ResetDetCloseLenCount();
            System_ResetPowerSaveCount();
            return NVTEVT_PASS;
        }

}

return NVTEVT_PASS;
}

INT32 System_UserKeyFilter(NVTEVT evt, UINT32 paramNum, UINT32 *paramArray)的更多相关文章

  1. C#中int short Int16 Int32 Int64区别

    Java中没有Int32,Int64,,java中只有int,short,long Java中int就代表Int32 ,short就代表Int16,long就代表Int64 首先,几个基本的关键字: ...

  2. Bluedroid: 蓝牙协议栈源码剖析

    一. 基础知识介绍 1.缩略语 BTIF: Bluetooth Interface BTU : Bluetooth Upper Layer BTM: Bluetooth Manager BTE: Bl ...

  3. asp.net webForm也可以这样用Ajax -- My Ajax Framework [全屏看文]

    对于asp.net WebForm项目,进行Ajax操作大概有三种方式:web服务(.asmx文件)  ,  一般处理程序(.ashx)和  一些Ajax控件. 对于.net提供的ajax控件,暂且不 ...

  4. 一种简单,轻量,灵活的C#对象转Json对象的方案

    简单,是因为只有一个类 轻量,是因为整个类代码只有300行 灵活,是因为扩展方式只需要继承重写某个方法即可 补充:修正无法处理可空值类型的bug 首先我将这个类称之为JsonBuilder,我希望它以 ...

  5. c#文件操作

    1.创建文件夹 //using System.IO; Directory.CreateDirectory(%%1);   2.创建文件 //using System.IO; File.Create(% ...

  6. 开源组件ExcelReport 1.5.2 使用手册

    ExcelReport是一款基于NPOI开发的报表引擎组件.它基于关注点分离的理念,将数据与样式.格式分离.让模板承载样式.格式等NPOI不怎么擅长且实现繁琐的信息,结合NPOI对数据的处理的优点将E ...

  7. C#微信公众号开发系列教程三(消息体签名及加解密)

    http://www.cnblogs.com/zskbll/p/4139039.html C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C ...

  8. Go语言程序设计(1)--基本语法

    第一个程序 package main import "fmt" func main() { fmt.Printf("Hello world") } 通过阅读这个 ...

  9. CefSharp初识--把网页移到桌面

    在开发中我们可曾有过这样的需求,将某个网页嵌入到.Net应用中来,但Winform自带的web browser不怎么理想.CefSharp可以让我们在.Net应用中嵌入一个Chromium.它提供了W ...

随机推荐

  1. 第五周 Leetcode 99. Recover Binary Search Tree (HARD)

    Leetcode99 给定一个 二叉搜索树,其中两个节点被交换,写一个程序恢复这颗BST. 只想到了时间复杂度O(n)空间复杂度O(h) h为树高的解法,还没想到空间O(1)的解法. 交换的情况只有两 ...

  2. linux守护进程的编写

    linux监控一个进程进行 代码如下: #!/bin/sh cd /home/autoprocess/ auto=`pgrep -f autoProcessNew.php | wc -l` if [ ...

  3. 回调函数,回调函数使用call

    回调函数:一个函数b作为参数,给另外一个函数a使用.并且在执行a之后(注意不一定是执行完a),再去执行b这个函数. 上代码: function a(callback) { alert("我是 ...

  4. 【转载】Hadoop分布式文件系统HDFS的工作原理详述

    转载请注明来自36大数据(36dsj.com):36大数据 » Hadoop分布式文件系统HDFS的工作原理详述 转注:读了这篇文章以后,觉得内容比较易懂,所以分享过来支持一下. Hadoop分布式文 ...

  5. jQuery实现文字横向滚动效果

    HTML代码: <div id="aaa" style="width:100px; position:relative; white-space:nowrap; o ...

  6. Spring.Net学习笔记(2)-依赖注入

    一.开发环境 操作系统:Win10 编译器:VS2013 framework版本:.net 4.5 Spring版本:1.3.1 二.涉及程序集 Spring.Core.dll Common.Logg ...

  7. 配置JDK、tomcat及Java Web项目部署

    一.JDK的安装 (1)下载安装JDK: 这个就不用说了,直接官网下载jdk安装即可.http://www.oracle.com/technetwork/java/javaee/downloads/i ...

  8. (三)Mybatis总结之动态sql

    动态sql 为何需要动态sql?因为简单的sql语句已经不能满足复杂的业务需求 动态sql相当于sql语句拼接 1.if语句 if语句:判断,如果执行多条件查询,如果中间某个条件变量为空,就跳过当前判 ...

  9. [ POI 2010 ] Antisymmetry

    \(\\\) \(Description\) 给出一个长度为 \(N\) 的二进制串,定义一个子串是优秀的,当且仅当其正着看,和倒着按位取反后看结果是一样的,求整个串有多少个优秀的子串. \(N\le ...

  10. Js上传图片并生成缩略图

    Js上传图片并显示缩略图的流程为 Js选择文件->Jquery上传图片->服务器接收图片流->存储图片->返回结果到Js端->显示缩略图 本文上传图片所用的Js库是aja ...