52 #define SMS_KEY_CYCLE_DELAY 1500 86 static const MHEG5String char_list_any = {76, (
MHEG5Byte *)
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&@_0 .,-?!':;/0123456789"};
88 static const MHEG5String char_list_alpha = {52, (
MHEG5Byte *)
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
100 static int SMS_CharsListedForKey(
MHEG5Entryfield *entryfield,
int key );
101 static void SMS_TimerCallback(
BOOLEAN triggered,
void *callerRef,
H_Timer timerHandle);
112 MHEG5textPrint(&entryfield->
text, out);
116 MHEG_PRINT(out,
":InputType ");
120 MHEG_PRINT(out,
"Alpha");
123 MHEG_PRINT(out,
"Numeric");
126 MHEG_PRINT(out,
"Any");
129 MHEG_PRINT(out,
"Listed");
132 MHEG_PRINT(out,
"Internal Error");
137 MHEG_PRINT(out,
":Charlist ");
138 MHEG5stringPrint(entryfield->
charList, out);
141 MHEG_PRINT(out,
":ObscuredInput ");
145 MHEG_PRINT(out,
":Maxlength ");
146 MHEG5intPrint(entryfield->
maxlength, out);
149 MHEG_PRINT(out,
":OverwriteMode ");
153 MHEG_PRINT(out,
"// EntryPoint:\t");
214 unsigned short *
data;
245 MHEG5entryfieldAppend(entryfield);
253 data[i] = data[i - 1];
285 if (SMSTimer != NULL)
336 entryfield->
charList = char_list_alpha;
340 entryfield->
charList = char_list_any;
346 entryfield->
charList = char_list_numeric;
356 entryfield->
charList = char_list_numeric;
601 unsigned short *
data;
605 for (i = entryfield->
entryPoint; i < entryfield->text.visible.ingredient.dataLen; i++)
607 data[i - 1] = data[i];
705 if (SMSTimer != NULL)
718 next_char = SMS_GetNextEnabledChar(entryfield, key_number);
746 next_char = SMS_GetNextEnabledChar(entryfield, key_number);
753 char_count = SMS_CharsListedForKey(entryfield, key_number);
757 if (current_position < entryfield->maxlength &&
771 next_char = backup_char;
778 if (current_position < entryfield->maxlength &&
821 MHEG5entryfieldSMSEntry(entryfield, ui, (
int)ui - (
int)
MHEG5_KEY_0);
870 static char SMS_GetNextEnabledChar(
MHEG5Entryfield *entryfield,
int key)
879 map_string = &(SMS_map[key]);
880 permitted_list = &(entryfield->
charList);
886 for (i = 0; i < map_string->
len; i++)
890 if (idx >= map_string->
len)
897 for (j = 0; j < permitted_list->
len; j++)
899 if (permitted_list->
data[j] == map_string->
data[idx])
908 next_char = map_string->
data[idx];
923 static int SMS_CharsListedForKey(
MHEG5Entryfield *entryfield,
int key )
930 map_string = &(SMS_map[key]);
931 permitted_list = &(entryfield->
charList);
935 for (i = 0; i < map_string->
len; i++)
938 for (j = 0; j < permitted_list->
len; j++)
940 if (permitted_list->
data[j] == map_string->
data[i])
987 static void SMS_TimerCallback(
BOOLEAN triggered,
void *callerRef,
996 event.data.timer.triggered = triggered;
997 event.data.timer.callerRef = callerRef;
998 event.data.timer.timerHandle = (
void *)timerHandle;
1002 TRACE(TERROR, (
"VQ_PutMsg returned Error %d", err))
MHEG5Bool availabilityStatus
void MHEG5entryfieldDestruct(MHEG5Entryfield *entryfield)
Destruct a entryfield object.
U32BIT STB_OSGetClockMilliseconds(void)
Get Current Computer Clock Time.
void MHEG5entryfieldSELECT(MHEG5Entryfield *entryfield)
Perform action of select key on interacting Entryfield.
E_MhegErr VQ_PutMsg(S_MhegMessage *pMsg, E_PRIORITY priority)
Post event or section message on queue. Copies data into queue.
F_MSG_PROCESS proc_msg_func
void MHEG5entryfieldEXIT(MHEG5Entryfield *entryfield)
Perform action of exit key on interacting Entryfield.
enum entry_state_s::@4 state
MHEG5GList * MHEG5resolveGenericInteger(MHEG5GList *params, MHEG5Int *value)
void MHEG5entryfieldActivate(MHEG5Entryfield *entryfield)
Apply the activation behaviour of the entryfield class. As this class has no own activation behaviour...
void MHEG5textDestruct(MHEG5Text *text)
Destruct a text object.
void MHEG5interactibleDestruct(MHEG5Interactible *interactible)
void MHEG5drawEntry(MHEG5Entryfield *entry, entryfieldCursor_t cursor)
void MHEG5entryfieldDeactivate(MHEG5Entryfield *entryfield)
Apply the deactivation behaviour of the entryfield class. As this class has no own deactivation behav...
void MHEG5textPrepare(MHEG5Text *text)
Apply the preparation behaviour of the text class Apply the preparation behaviour of the text class...
Implement the MHEG5 Variable Class 21 Variable Class Defines a variable within the context of a Group...
void MHEG5stringDestruct(MHEG5String *item)
Destruct a MHEG5String.
void MHEG5entryfieldPrepare(MHEG5Entryfield *entryfield)
Apply the preparation behaviour of the entryfield class Apply the preparation behaviour of the entryf...
void(* F_TimerCallback)(BOOLEAN triggered, void *callerRef, H_Timer timerHandle)
MHEG5ErrorCode MHEG5getOverwriteMode(MHEG5Root *target, MHEG5GList *params)
Retrieve the overwrite mode of the entryfield Implementation of the GetOverwriteMode action of the en...
void MHEG5entryfieldRIGHT(MHEG5Entryfield *entryfield)
Perform action of right arrow key on interacting Entryfield.
void MHEG5interactibleDeactivate(MHEG5Interactible *interactible)
Implementation of the deactivation behaviour of the interactible class. This behaviour was introduced...
MHEG5ErrorCode MHEG5setOverwriteMode(MHEG5Root *target, MHEG5GList *params)
Set the overwrite mode of the entryfield to the new value of the parameter Implementation of the SetO...
#define SMS_KEY_CYCLE_DELAY
#define MHEG5displayRedraw(v)
void MHEG5entryfieldUserInput(MHEG5Entryfield *entryfield, E_MHEG5_KEY ui)
Test user input and perform required actions.
void MHEG5entryfieldInsert(MHEG5Entryfield *entryfield, unsigned short c)
Add the character |c| to the Entryfield.
MHEG5Entryfield * entryfield
Event handling. Implementation of a combined queue for events and actions. This is the eventsystem wh...
struct entry_state_s entry_state_t
void MHEG5textDeactivate(MHEG5Text *text)
Apply the deactivation behaviour of the text class. As this class has no own deactivation behaviour t...
MHEG5ErrorCode MHEG5getEntryPoint(MHEG5Root *target, MHEG5GList *params)
Retrieve the current entrypoint of the entryfield Implementation of the GetEntryPoint action of the e...
void MHEG5textInit(MHEG5Text *text)
<Function description>="">
MHEG5Bool interactionStatus
Implement functions to retrieve MHEG5objects by GroupID and ID.
Implementation of the MHEG5 Application Class Defines a set of Ingredient objects, which are shared within an application scope. Base class: Group Subclasses: None Status: Concrete class.
Implementation of the MHEG5 Scene Class Scene Class Defines a set of Ingredient objects to be activat...
void MHEG5interactibleInteractionCompleted(MHEG5Interactible *interactible, MHEG5Root *item)
void MHEG5textActivate(MHEG5Text *text)
Apply the activation behaviour of the text class. As this class has no own activation behaviour this ...
MHEG class interface to graphics text render.
MHEG5Ingredient ingredient
void entryfieldSMSTimeout(void *data)
void MHEG5interactibleInit(MHEG5Interactible *interactible)
<Function description>="">
MHEG5Scene * MHEG5getCurrentScene(void)
<Function description>="">
void MHEG5sendEvent(MHEG5Root *source, MHEG5EventType event, MHEG5Int data)
Store an event in the asynchronous event queue.
MHEG5ErrorCode MHEG5setEntryPoint(MHEG5Root *target, MHEG5GList *params)
Set the entrypoint for the entryfield Implementation of the SetEntryPoint action of the entryfield cl...
The timer module allows the use of timers within the MHEG5 component. These timers can be set by othe...
MHEG5Root * currentInteractible
MHEG5GList * MHEG5resolveGenericBoolean(MHEG5GList *params, MHEG5Bool *value)
MHEG5Bool MH5_SupportInteractionChannel(void)
Return whether Interaction channel is supported by current profile.
void MHEG5interactibleFree(MHEG5Interactible *interactible)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
void MHEG5entryfieldLEFT(MHEG5Entryfield *entryfield)
Perform action of left arrow key on interacting Entryfield.
void MHEG5entryfieldFree(MHEG5Entryfield *entryfield)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
enum MHEG5Entryfield::@1 inputType
MHEG5GList * MHEG5resolveORef(MHEG5GList *params, MHEG5Root **object)
void MHEG5entryfieldInit(MHEG5Entryfield *entryfield)
Initialise an entryfield object with default values.
void MHEG5textFree(MHEG5Text *text)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
Implement generic MHEG5-display functions - independent from the OSD These are generic functions used...
void MHEG5interactiblePrepare(MHEG5Interactible *interactible)
Sets all internal attributes for the specified object to their default values.
MHEG5Interactible interactible
void MHEG5entryfieldBACKSPACE(MHEG5Entryfield *entryfield)
Perform action of backspace key on interacting Entryfield.
Key Press related functionality.
Engine support utility functions for MHEG5.
Implement the MHEG5 EntryField Class. Defines an interaction widget used by the final user to edit an...
Header file - Function prototypes for operating system.