FreeCalypso > hg > fc-tourmaline
view src/ui/atb/ATBEditor.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 | 67bfe9f274f6 |
children |
line wrap: on
line source
/******************************************************************************* 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: $Project code: $Module: $File: ATBEditor.h $Revision: $Author: Condat(UK) $Date: ******************************************************************************** Description: Header file for ATB Editor component. REQUIRES: ATBCommon.h, ATBDisplay.h ******************************************************************************** $History: ATBEditor.h Feb 02, 2006 DR: OMAPS00061468 - x0035544. Description: SAT 27.22.4.22.2 SET UP IDLE MODE TEXT (Icon support) fails Solution:Enum is defined to support mode of SAT info display Jan 16, 2006 DR: OMAPS00061460 - Shashi Shekar B.S. Description: SAT Icon support Solution : Structure definition displaying title icon through editor. $End *******************************************************************************/ #ifndef ATB_EDITOR_H #define ATB_EDITOR_H #ifndef DSPL_H #include "dspl.h" #endif /********************************************** * CONSTANTS * *********************************************/ enum { ED_CURSOR_NONE, /* No cursor, read only */ ED_CURSOR_BAR, /* Vertical bar thin */ ED_CURSOR_UNDERLINE, /* Underline-style cursor */ ED_CURSOR_BLOCK /* Highlights current character */ }; enum { ED_MODE_ALPHA = 0x01, /* Alphanumeric Multi-tap mode */ ED_MODE_OVERWRITE = 0x02, /* Overwrite mode */ ED_MODE_PREDTEXT = 0x04, /* Predictive text mode */ ED_MODE_FORMATTED = 0x08, /* Formatted input mode for WAP */ ED_MODE_HIDDEN = 0x10, /* Hidden mode - *'s appear in place */ ED_MODE_READONLY = 0x20, /* Read only mode */ ED_MODE_ALL = 0xFFFF /* Allows switching off of all modes */ }; /* Editor visibility */ enum { ED_INVISIBLE = 0, /* Editor is not displayed */ ED_VISIBLE = 1 /* Editor is displayed */ }; /* Editor updates */ #define ED_UPDATE_DEFAULT 0 /* Update everything by default */ #define ED_UPDATE_TRIVIAL 1 /* Trivial change - no scrolling or reformatting req.*/ #define ED_UPDATE_PARTIAL 2 /* Partial change */ #define ED_UPDATE_FULL 3 /* Full update required */ /********************************************** * ED_RES * * Result of editor functions *********************************************/ typedef enum { ED_OK, ED_BAD_HANDLE, ED_ERROR, ED_DONE } ED_RES; /********************************************** * T_ED_CB * * Callback type *********************************************/ typedef int (*T_ED_CB) (ULONG, void*); /********************************************** * EDITOR CONTROL CHARACTERS * *********************************************/ typedef enum { ctrlNone = 0, /* no valid edit control */ ctrlLeft, /* cursor left */ ctrlRight, /* cursor right */ ctrlUp, /* cursor up */ ctrlDown, /* cursor down */ ctrlTop, /* cursor to top of text */ ctrlBottom, /* cursor to end of text */ ctrlBack, /* backspace */ ctrlDel, /* delete */ ctrlEnter, /* return key */ ctrlEscape, /* escape key */ ctrlMax /* Highest control character */ } T_ED_CONTROLS; /* This type indicates whether or not the cursor is within a fixed field */ enum { ENTRY_NOT_IN_FIELD = 0, ENTRY_ENTERING_FIELD, ENTRY_IN_FIELD }; /* Output types for ATB_edit_FindPrev() */ enum { FINDPREV_NO_CHANGE, FINDPREV_PREV_FOUND, FINDPREV_FIRST_CHAR, FINDPREV_LAST_CHAR }; //Sudha.V., x0035544, Feb 02, 2006 DR: OMAPS00061468 #ifdef FF_MMI_SAT_ICON typedef enum { SAT_ICON_NONE = -1, SAT_ICON_DISPLAY_TEXT, SAT_ICON_IDLEMODE_TEXT } T_DISPLAY_TYPE; // Shashi Shekar B.S., a0876501, 16-Jan-2006, OMAPS00061460 /* T_ATB_EDITOR_TITLE_ICON */ typedef struct { UBYTE width; UBYTE height; char* data; BOOL isTitle; T_DISPLAY_TYPE display_type; BOOL selfExplanatory; } T_ATB_EDITOR_TITLE_ICON; #endif /********************************************** * T_ED_ATTR * * Editor attributes, provided by user *********************************************/ typedef struct { T_ATB_WIN_SIZE win_size; /* Editor position and size */ ULONG colour; /* Foreground and background colour */ UBYTE font; /* Character font */ USHORT cursor; /* cursor type */ USHORT mode; /* Edit Mode */ T_ATB_TEXT text; /* Edit buffer */ USHORT size; /* Buffer size */ char *FormatString; /* Formatting string for WAP formatted input */ T_DS_TEXTFORMAT startFormat; /* Text format to be applied to the start of text */ // Shashi Shekar B.S., a0876501, 16-Jan-2006, OMAPS00061460 #ifdef FF_MMI_SAT_ICON T_ATB_EDITOR_TITLE_ICON TitleIcon; #endif } T_ED_ATTR; /********************************************** * T_ED_LINE * * Information about a line of text in the editor *********************************************/ typedef struct T_ED_LINE_TAG { UBYTE height; /* The height of the line */ USHORT pos; /* The position of the start of the line in the buffer */ T_DS_TEXTFORMAT format; /* The format attributes at the start of the line */ struct T_ED_LINE_TAG *next; /* The succeeding line */ } T_ED_LINE; /********************************************** * T_ED_CHAR * * Information about a character in the editor *********************************************/ typedef struct { USHORT width; // The width of the character USHORT height; // The height of the character USHORT pos; // The position of the character T_DS_TEXTFORMAT format; // The format attributes of the character USHORT lineHeight; // Height of the line, so far USHORT lineWidth; // Width of the current line (in pixels) } T_ED_CHAR; /********************************************** * T_ED_CURSOR * * Information about cursor *********************************************/ typedef struct { SHORT x; // Cursor X position, relative to top left corner of editor SHORT y; // Cursor Y position, relative to top left corner of editor SHORT width; // Size of cursor SHORT height; // Height of cursor USHORT attr; // Format attributes under the cursor USHORT pos; /* cursor position */ SHORT line; // The line the cursor is on (with respect to the whole text) } T_ED_CURSOR; /********************************************** * T_ED_DATA * * Main editor information *********************************************/ typedef struct { T_ED_CB handler; /* event handler */ T_ED_ATTR *attr; /* editor attributes */ /* Various flags */ BOOL initialised; // TRUE if important values have been set up BOOL display; /* Whether editor is hidden or not. */ UBYTE update; /* Which portions of the editor to update */ UBYTE multitap; /* Stores status of multi-tap */ UBYTE textcase; /* Case of text entry (upper, lower, numeric etc) */ /* Word wrap information */ T_ED_CURSOR cursor; /* Properties of cursor */ T_ED_CHAR thischar; /* Properties of current character */ T_ED_CHAR space; /* Properties of the last space */ T_ED_LINE *line; /* Properties of lines in editor */ BOOL startOfLine; /* TRUE indicates the start of a text line */ BOOL endOfLine; /* TRUE indicates end of a text line */ BOOL endOfText; /* TRUE indicates no more chars in text */ BOOL precedingEOL; /* Character preceding current character is an End Of Line */ BOOL precedingSpace; /* Character preceding current character is a space */ USHORT startPos; /* Character position, or start of current block */ USHORT numLines; /* Total number of lines in the editor */ SHORT winStartLine; /* The first line to be displayed in the current window */ USHORT linesPerScreen; /* No of lines that fit on current screen */ /* Display properties */ USHORT totalHeight; /* Total height (in pixels) of the whole text string */ USHORT viewHeight; /* The height visible in the editor */ USHORT viewStartPos; /* Start position of view in pixels */ /* WAP delimited input information */ SHORT formatIndex; // Position in formatting string SHORT fieldIndex; // Position within a delimited field /* Hidden input information */ T_ATB_TEXT *hiddenText; /* Hidden text is stored in this buffer */ } T_ED_DATA; /********************************************** * T_ED_CASE * * The case of the current text *********************************************/ typedef enum { ED_CASE_UPPER, /* Upper case */ ED_CASE_LOWER, /* Lower case */ ED_CASE_CAPS, /* Capitalise starts of sentences */ ED_CASE_NUM /* Numbers */ } T_ED_CASE; /********************************************** * T_ED_CASE_PREF * * Preference for case input *********************************************/ typedef enum { ED_CASEPREF_NONE, /* End of string - no case */ ED_CASEPREF_NUM, /* Any numeric character */ ED_CASEPREF_ALPHA_UC, /* Any symbolic or alphabetic uppercase character */ ED_CASEPREF_ALPHA_LC, /* Any symbolic or alphabetic lowercase character */ ED_CASEPREF_ALPHANUM, /* Any symbolic, numeric, or alphabetic character */ ED_CASEPREF_ALPHANUM_UC, /* Any symbolic, numeric, or alphabetic uppercase character */ ED_CASEPREF_ALPHANUM_LC /* Any symbolic, numeric, or alphabetic lowercase character */ } T_ED_CASE_PREF; /********************************************** * FUNCTION PROTOTYPES * *********************************************/ ED_RES ATB_edit_Init (T_ED_DATA *editor); T_ED_DATA* ATB_edit_Create (T_ED_ATTR *editAttr, T_ED_CB callback); ED_RES ATB_edit_Destroy (T_ED_DATA *editor); ED_RES ATB_edit_Reset (T_ED_DATA *editor); ED_RES ATB_edit_Show (T_ED_DATA *editor); ED_RES ATB_edit_Refresh (T_ED_DATA *editor); ED_RES ATB_edit_Hide (T_ED_DATA *editor); ED_RES ATB_edit_Unhide (T_ED_DATA *editor); ED_RES ATB_edit_Char (T_ED_DATA *editor, USHORT character, UBYTE update); ED_RES ATB_edit_AsciiChar (T_ED_DATA *editor, char character, UBYTE update); ED_RES ATB_edit_MultiTap(T_ED_DATA *editor, USHORT character, BOOL multitap); ED_RES ATB_edit_AsciiMultiTap(T_ED_DATA *editor, char character, BOOL multitap); ED_RES ATB_edit_MoveCursor (T_ED_DATA *editor, USHORT control, UBYTE update); ED_RES ATB_edit_DeleteLeft (T_ED_DATA *editor, UBYTE update); /* SPR#2342 - SH */ ED_RES ATB_edit_DeleteRight (T_ED_DATA *editor, UBYTE update); /* SPR#2342 - SH */ ED_RES ATB_edit_ClearAll (T_ED_DATA *editor); ED_RES ATB_edit_HiddenInit(T_ED_DATA *editor); ED_RES ATB_edit_HiddenExit(T_ED_DATA *editor); ED_RES ATB_edit_InsertString (T_ED_DATA *editor, T_ATB_TEXT *insText);/* Insert a word at the cursor pos */ USHORT ATB_edit_GetCursorChar(T_ED_DATA *editor, int offset); BOOL ATB_edit_CapitaliseWord(T_ED_DATA *editor); USHORT ATB_edit_FindCapital(USHORT small_char); T_ED_LINE *ATB_edit_LineGet(T_ED_DATA *editor, SHORT lineNo); void ATB_edit_SetAttr(T_ED_DATA *editor, T_ATB_WIN_SIZE *win_size, ULONG colour, UBYTE font, USHORT mode, USHORT cursor, T_ATB_TEXT *text, USHORT size); UBYTE ATB_edit_Mode(T_ED_DATA *editor, USHORT mode); void ATB_edit_SetMode(T_ED_DATA *editor, USHORT mode); void ATB_edit_ResetMode(T_ED_DATA *editor, USHORT mode); void ATB_edit_SetStyle(T_ED_DATA *editor, USHORT style); UBYTE ATB_edit_GetCase(T_ED_DATA *editor); void ATB_edit_SetCase(T_ED_DATA *editor, UBYTE textcase); T_ED_CASE_PREF ATB_edit_GetCasePref(T_ED_DATA *editor); #endif