view src/ui/mfw/mfw_ffs.h @ 223:740a8e8fc9d7

startup sync logic rework for the new PWON button boot scheme Previously we added logic to the MMI task to hold off PEI init until R2D is running, and then extended that condition to wait for FCHG init too. However, the dependencies of MMI upon R2D and FCHG don't start until mmiInit(), and that call is driven by Switch_ON() code, hence the wait for R2D and FCHG init can be made in that code path instead of the MMI task. Furthermore, with our new way of signaling PWON button boot to MMI, we need a new wait to ensure that the MMI task is up - previously this assurance was provided by the wait for Kp pointers to be set. Solution: revert our previous PEI init hold-off additions to MMI, add a new flag indicating MMI task init done, and put the combined wait for all needed conditions into our new PWON button boot code in power.c.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 27 Apr 2021 06:24:52 +0000
parents 92abb46dc1ba
children
line wrap: on
line source

/*
+--------------------------------------------------------------------+
| PROJECT:	MMI-Framework (8417)		$Workfile::	mfw_ffs.h    			$|
| $Author::								$Revision::	1			    	$|
| CREATED:			     		$Modtime::								$|
| STATE  :	code														  |
+--------------------------------------------------------------------+

   MODULE  : mfw_ffs

   PURPOSE : This module contains FFS Interface function declarations.

   HISTORY:


 	Nov 22, 2007 DR: OMAPS00152315 x0080701(Bharat)
 	Description: MP3 - AAC cannot be disabled in Locosto
 	Solution: MP3 AAC Flags Usage have been corrected

    April 03 2007 ER:OMAPS00116772 x0061088(Prachi)
    Description:Support of 1.3 Mpixel camera on Locosto Plus
    Solution: added new member cam_auto_save in structure FlashData

	Mar 28, 2007  DR: OMAPS00122762 x0039928
	Description: MM: Deleting a PCM Voice Memo message in one particular memory,
	delete them in all memories
	Solution: voice memo position and pcm voice memo position is provided for all the devices.

      Oct 30 2006, OMAPS00098881 x0039928(sumanth)
      Removal of power variant

      Oct 8 2006 OMAPS00097714 x0039928(sumanth)
      TTY HCO/VCO options in MMI


 	xashmic 27 Sep 2006, OMAPS00096389
	ENH - a) Providing static menu for re-selection of enum options for enumeration
	b) Popup menu displayed on connect event, can be enabled or disabled via menu option

	xashmic 9 Sep 2006, OMAPS00092732
	USBMS ER

    June 27, 2006 REF:DVT OMAPS00083709  x0043642
    Description: RT: New feilds should be added at the end of the FlashData structure.
    Solution: Moved line1 and line2 attributes to the end of the structure.


    June 7, 2006 REF:ER OMAPS00078882  x0043642
    Description: RT: MTC causes TTY primitive even when TTY is not requested causing GTT crash
    Solution: Moved tty_audio_mode attribute to the end of the structure.

	Mar 15, 2006   ER: OMAPS00067709  x0pleela
	Description: Voice Buffering implementation on C+ for PTT via PCM API
	Solution: 	Added new field "pcm_voice_memo_position" into the structure "FlashData"
			to hold the recording duration for PCM voice memo

	May 30, 2006  DR: OMAPS00070657 x0pleela
	Description: CPHS feature on Locosto-Lite
	Solution: For ALS feature,
			a) Added a new macro MAX_LINE_NAME_SIZE
			b) Added two new elements into "FlashData" structure to store the
				alphanumeric name for line 1 and line2

	Apr 06, 2006    ERT: OMAPS00070660 x0039928(sumanth)
   	Description: Need to reduce flash foot-print for Locosto Lite
   	Solution: Voice Memo feature is put under the flag #ifndef FF_NO_VOICE_MEMO to compile
   	out voice memo feature if the above flag is enabled.

	Nov 14, 2005    REF: OMAPS00044445 xdeepadh
	Description: Implementation of Test Menu for AAC
	Solution: The existing MP3 test Application has been enhanced to support the AAC file testing.
	The interfaces have been made generic to support both MP3 and AAC files.

   	Sep 27,2005 REF: SPR 34402 xdeepadh
	Bug:Mono option is always highlighted even when Stereo is selected
	Fix:The channel setting will be saved in the FFS, which will be retrieved later
		and the selected channel will be higlighted.

	Aug 22 2005, xpradipg - LOCOSTO-ENH-31154
 	Description:	Application to test camera
 	Solution:	Implemented the camera application with following functionalities
 			preview, snapshot and image saving.

	Apr 14, 2005	REF: CRR 29991   xpradipg
	Description:	Optimisation 5: Remove the static allocation and use dynamic
					allocation/ deallocation for pb_list and black_list
	Solution:	The static definition is removed and replaced with the dynamic
					allocation


    Aug 25, 2004  REF: CRR 20655  xnkulkar
    Description: Voice Memo functionality not working
    Solution:	  Added the prototype for flash_makedir() function.



    Mar 28, 2006 REF:ER OMAPS00071798  x0043642
    Added new options in BMI to accept the value for tty audio mode,
    and the accepted value is passed as parameter in function call sAT_PercentCTTY
*/

#ifndef MFW_FFS_H_
#define MFW_FFS_H_

/* BEGIN ADD: Sumit : Req ID: : 31-Mar-2005*/
#ifndef NEPTUNE_BOARD
/* END ADD: Sumit : Req ID: : 31-Mar-2005*/
#include "ffs/ffs.h" /*SPR 1920*/
/* BEGIN ADD: Sumit : Req ID: : 31-Mar-2005*/
#else
#include "ffs.h"
#endif
/* END ADD: Sumit : Req ID: : 31-Mar-2005*/

#ifndef PCM_2_FFS
#include "ffs_coat.h"
#endif

#ifdef FF_MMI_RINGTONE
#define MAX_RINGER_FILE_SIZE  50
#endif

//x0pleela 25 May, 2006  DR: OMAPS00070657
#ifdef FF_CPHS
#define MAX_LINE_NAME_SIZE 10
#endif


typedef enum{
	SNAP_STG_FFS=0,
       SNAP_STG_NORMS,
	SNAP_STG_NAND,
	SNAP_STG_MMC
}SNAP_STG;


typedef enum{
	CAM_RESOLUTION_VGA = 0,
    CAM_RESOLUTION_QCIF,
    CAM_RESOLUTION_SXGA
}CAM_RESOLUTION;


typedef struct
{   uint8 IMEI[16]; 	/* in ASCII*/
    uint8 IMEI_bcd[8]; 	/*in BCD*/
	/*SPR 1725 removed date time and alarm data*/
	/*Call timers*/
	uint32 last_call_duration;
	uint32 incoming_calls_duration;
	uint32 outgoing_calls_duration;

	/*MSSET data*/
	uint8 output_volume;
	uint8 external_audio;
#ifndef FF_NO_VOICE_MEMO
#ifdef FF_MMI_FILEMANAGER
	uint8 voice_memo_position[4];                /*Mar 28, 2007  DR: OMAPS00122762 x0039928 */
#else
	uint8 voice_memo_position;
#endif
#endif
//x0pleela 24 Feb, 2006  ER OMAPS00067709
//To hold the recording duration for PCM voice memo
#ifdef FF_PCM_VM_VB
#ifdef FF_MMI_FILEMANAGER
	uint8 pcm_voice_memo_position[4];        /* Mar 28, 2007  DR: OMAPS00122762 x0039928 */
#else
	uint8 pcm_voice_memo_position;
#endif
#endif
	uint8 PLMN_selection_mode;
	uint8 CLIR; //seem to only be used for supplementary services.
//  Jun 23, 2004    REF: CRR MMI-SPR-13599  Rashmi C N(Sasken)
//              		Storing the CF state in Flash
 uint8 CFState;

//Jun 23, 2004      REF: CRR MMI-SPR-13599  Rashmi C N(Sasken)
//				Comented "uint8 CLIP" as it is not being used anywhere in the code currently.
// uint8 CLIP;
	uint8 redial_mode;
	uint8 call_info_display;
	uint8 contrast;
	uint8 brightness;
	uint8 backlight_duration;
    uint8 recent_ldn_ref;
    uint8 recent_lrn_ref;
    uint8 recent_upn_ref;
    uint8 time_format;

 	/* Network Log              */
    uint8 net_log_status;                 /* status                   */
    uint8 plmn_name[20];                /* plmn name                */
    uint8 network_name [7];             /* plmn name numeric        *//* x0039928 - Lint warning removal */

    /*Setting status*/

	uint8 settings_status;

	uint8 voice_mail[22];

	/*mailbox number*/
	uint8 mbn_AlphId[10];
	uint8 mbn_len;
	uint8 mbn_numTp;
	uint8 mbn_Num[10];

	/*ringtones etc for MMisounds*/
	uint8 ringer;							// index of permanent active tune in soundlist and ringerItem
	uint8 vibrator;							// vibrator
	uint8 volumeSetting;					// values (0 = silent, 4= loud, 5 = increasing)
	uint8 keypadOn;							// on/off values
	uint8 AlarmOn;
	uint8 OrganiserAlert;
	uint8 CreditLow;
	uint8 SMSTone;
	uint8 SMSBroadcast;
	uint8 battLow;
	uint8 earpiece;
	uint8 language;
	uint8 Equalizer;

    /*Data for MmiSmsBroadcast*/


	//Predictive text Flags
	uint8 PredTextAvailable;
	uint8 PredTextSelected;

	//API - 01/10/02
	//Concatenate Flags
	uint8 ConcatenateStatus;

	//API - 06/12/02
	//Idle Screen Background image
	uint8 IdleScreenBgd;
	uint8 MainMenuBgd;
	uint8 ProviderNetworkShow;

	//CPHS ALS info
	uint8 als_selLine;
  	uint8 als_statLine;
  	uint8 ccbs_status;  /* Marcus: CCBS: 13/11/2002 */

  	/* MC SPR 1392, call deflection flag*/
	uint8 call_deflection;


  	/* SPR#1352 - SH - TTY */
  	uint8 ttyAlwaysOn;
	/*x0039928 OMAPS00097714 HCO/VCO option - added to store the type of TTY profile (normal/HCO/VCO)*/
#ifdef FF_TTY_HCO_VCO
	uint8 ttyPfType;
#endif

	/*API CQ10203 - Add the Flash define for Validity Period here*/
	uint8 vp_rel;
       uint8 image_usr_obj; // xrashmic 7 Dec, 2004 MMI-SPR-26161 and MMI-SPR-23965
       uint8 audio_usr_obj; // xrashmic 7 Dec, 2004 MMI-SPR-26161 and MMI-SPR-23965
//	Aug 22 2005, xpradipg - LOCOSTO-ENH-31154
#if defined(FF_MMI_TEST_CAMERA) ||defined(FF_MMI_CAMERA_APP)
       uint8	camera_file_counter;
#endif
//Nov 14, 2005    REF: OMAPS00044445 xdeepadh

/* Nov 22, 2007 DR: OMAPS00152315 x0080701(Bharat) -- Commented #if defined */
// #if defined(FF_MMI_TEST_MP3) ||  defined(FF_MMI_TEST_AAC)
//Sep 27,2005 REF: SPR 34402 xdeepadh
//Variable to store the state of mp3 channel
 uint8	player_channel_state;
// #endif
/* Nov 22, 2007 DR: OMAPS00152315 x0080701(Bharat) -- Commented #endif */

#ifdef FF_MMI_RINGTONE
char cpRingerFilePath [MAX_RINGER_FILE_SIZE];
char cpSMSFilePath[MAX_RINGER_FILE_SIZE];
char cpAlarmFilePath[MAX_RINGER_FILE_SIZE];
#endif


/* June 27, 2006  REF:DVT OMAPS00083709 x0043642 */
#ifdef FF_CPHS
	char line1[MAX_LINE_NAME_SIZE+1]; // name of line1
	char line2[MAX_LINE_NAME_SIZE+1]; // name of line2
#endif


/* June 7, 2006  REF:ER OMAPS00078882 */
/*Removed tty_audio_mode from top and added here to solve OMAPS00078882*/
#ifdef NEPTUNE_BOARD
    uint8 tty_audio_mode;
#endif
//xashmic 9 Sep 2006, OMAPS00092732
//xashmic 27 Sep 2006, OMAPS00096389
#ifdef FF_MMI_USBMS
//0th bit - PS shutdown enable/disable
//1st bit - Popup menu enable/disable
uint8 usb_ms_flags;
#endif
/* To store the power management duration */
#ifdef NEPTUNE_BOARD
#ifdef MMI_POWER_MANAGEMENT_TEST
    uint8 pm_duration;
#endif
#endif
/*OMAPS00098881 (removal of power variant) x0039928(sumanth)
   This variable is used to store the status of LCD refresh
   1 - refresh needed
   0 - refresh not needed*/
#ifdef FF_POWER_MANAGEMENT
    BOOL refresh;
#endif
/*OMAPS00098351 (NITZ) x0066814(Geetha)*/
#ifdef FF_TIMEZONE
uint8 nitz_option;
#endif
UBYTE snap_storage;
UBYTE voicememo_storage;
UBYTE PCM_voicememo_storage;
UBYTE voicebuffer_storage;

//April 03 2007 ER:OMAPS00116772 x0061088(Prachi)
#ifdef FF_MMI_CAMERA_APP
UBYTE cam_auto_save;
//added by prachi
#if CAM_SENSOR == 1
UBYTE cam_resolution;
UBYTE cam_changed_resolution;
#endif
#endif
} FlashData;

extern FlashData FFS_flashData;

//flash access routines
effs_t flash_write(void);
int flash_read(void);
    /* Marcus: Issue 1719: 11/02/2003:
     * Changed return type to int: zero (EFFS_OK) if successful,
     * presumably -ve for errors, as in FFS_ERRORS (else read less than asked
     * for, but that value is internal to the function)
     */
effs_t flash_update(void);

//Generic flash access routines.
effs_t flash_data_write(const char* dir_name, const char* file_name, void* data_pointer, int data_size);
int flash_data_read(const char* dir_name, const char* file_name, void* data_pointer, int data_size);
     /* Marcus: Issue 1719: 11/02/2003:
      * Changed return type to int: data_size if successful,
      * presumably -ve for errors, as in FFS_ERRORS (else read less than asked for)
      */

     /* Aug 25, 2004  REF: CRR 20655  xnkulkar
         Added the prototype for flash_makedir() function
     */
void flash_makedir(char * dir_name);
//	Apr 14, 2005	REF: CRR 29991   xpradipg
#ifdef FF_MMI_OPTIM
	int8 flash_MMI_blackList_open( );
	void flash_MMI_blackList_close(int8 handle);
	int flash_MMI_blackList_write(U8 *data, SHORT len, SHORT offset);
	int flash_MMI_blackList_read(int8 file,U8* data, SHORT len, SHORT offset);
#ifdef PCM_2_FFS
	T_FFS_SIZE ffs_ReadRecord(const char *name, void * addr, int size, int index, int recsize);
	T_FFS_RET ffs_WriteRecord(const char *name, void * addr, int size, int index, int recsize);
#endif
#endif
/* Added to remove warning Aug - 11 */
#ifdef NEPTUNE_BOARD
EXTERN int32 ffs_fread(const int8 *name, void *addr, int32 size);
EXTERN int8 ffs_fwrite(const int8 *pathname, void *src, int32 size);
#endif
/* End - remove warning Aug - 11 */
#endif