FreeCalypso > hg > fc-magnetite
view src/ui3/bmi/mmiUserData.h @ 660:293c7db5f10f
bmi3: fixed the mysterious "mute on first call" bug
When UI-enabled fw boots on a previously blank (no /mmi/* files) FFS
for the first time, the output_volume member of the persistent UI settings
structure was left uninitialized, corresponding to the earpiece volume
being set to mute, which is an invalid setting. Because of other quirks
in the far-from-finished UI code, this volume setting takes effect only
when the first call is answered, producing the odd behaviour seen at the
user level.
The current fix is to set the blank-FFS default for output_volume to
volume level 4, which is the same -6 dB Iota volume as the ACI default.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 14 May 2020 02:50:41 +0000 |
parents | 6a4d9f47793e |
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