view src/ui/bmi/mmiUserData.h @ 244:96784b8974eb

Switch_ON(): detect charging mode by CHGPRES bit Consider the following scenario: the phone is on, the user plugs in the charger, and then executes the power-off operation. In the Iota VRPC this sequence translates to a switch-off immediately followed by another switch-on - but the CHGSTS bit doesn't get set on the second switch-on cycle! Disassembly of Pirelli's fw shows that they check the CHGPRES bit, and furthermore, if both CHGPRES and ONBSTS are set, the code they pass to their modified Power_ON_Button() function is the one for charging - so let's adopt the same CHGPRES check and the same priority order for switch-on causes.
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 03 May 2021 06:51:29 +0000
parents cf085bee523c
children
line wrap: on
line source

#ifndef _DEF_MMI_USERDATA_H_
#define _DEF_MMI_USERDATA_H_

/*******************************************************************************

                    CONDAT (UK)

********************************************************************************

 This software product is the property of Condat (UK) Ltd and may not be
 disclosed to any third party without the express permission of the owner.

********************************************************************************

 $Project name: Basic MMI
 $Project code: BMI (6349)
 $Module:       MMI
 $File:         MmiUserData.h
 $Revision:     1.0

 $Author:       Condat(UK)
 $Date:         25/10/00

********************************************************************************

 Description:

    This provides the root mofule for the basic MMI

********************************************************************************
 $History: MmiUserData.h


 $End

*******************************************************************************/


#define ALLOC_MEMORY mfwAlloc
#define FREE_MEMORY  mfwFree


/*
 * The following enum is the _only_ place where keys for the userData mechanism
 * can be defined. Everybody _can_ and _must_ define their own keys for
 * _every_ particular use of userData.
 */
typedef enum
{
    UD_SOFTKEYS,
    UD_OLD_FOCUS,
    UD_SAT_BITS,
    UD_SAT_HANDLE,
    UD_SAT_KEYBOARD,
    UD_SAT_MENU,
    UD_SAT_MENU_ATTRIBUTES,
    UD_SAT_MENU_IDS,
    UD_SAT_MENU_STRINGPOOL,
    UD_SAT_SETUPMENU_COMMAND,
    UD_KBD,
    UD_PARENTWIN,
    UD_MENU
} UserKey;


/*
 * Please note that all functions below come in a userDataHnd... and userDataWin...
 * version, which have identical functionality, but get the <window> passed
 * in MfwHnd or MfwWin pointer form respectively.
 * You can just use either one depending on what you got hold of at the moment.
 */


void *userDataHndSet( MfwHnd window, UserKey key, void *data);

void *userDataWinSet( MfwWin *window, UserKey key, void *data);
/*
 * Sets the user data for <window> with <key> to <data>,
 * and returns the previous contents of the user data.
 * If <data> itself is returned no user data with <key>
 * existed and a new user data element with <key> has been created
 * and set to <data>.
 * If NULL is returned, either <window> was invalid or a new user data
 * element could not be created.
 */


void *userDataHndGet( MfwHnd window, UserKey key);

void *userDataWinGet( MfwWin *window, UserKey key);
/*
 * Returns the user data for <window> with <key>.
 * If NULL is returned, either <window> was invalid or no user data
 * with <key> existed.
 */


void *userDataHndDelete( MfwHnd window, UserKey key);

void *userDataWinDelete( MfwWin *window, UserKey key);
/*
 * Deletes the user data for <window> with <key>, and returns the
 * contents of the user data.
 * If NULL is returned, either <window> was invalid or no user data
 * with <key> existed.
 */


#endif