# HG changeset patch # User Mychaela Falconia # Date 1445494730 0 # Node ID 3358b8e6922fd4e5caa736ed2f2dfd8aa3d1e70c # Parent 0ec722728d69f55aed948ccc42e0598ba3929252 l1_handle_particular_cases_for_TCS211() reconstructed diff -r 0ec722728d69 -r 3358b8e6922f chipsetsw/layer1/dyn_dwl_cfile/l1_dyn_dwl_afunc.c --- a/chipsetsw/layer1/dyn_dwl_cfile/l1_dyn_dwl_afunc.c Wed Oct 21 22:55:18 2015 +0000 +++ b/chipsetsw/layer1/dyn_dwl_cfile/l1_dyn_dwl_afunc.c Thu Oct 22 06:18:50 2015 +0000 @@ -74,51 +74,63 @@ }; -/* l1_check_flag_for_download_area */ -/* Parameters : Signal Code of the message -// Return : none -// Description : Modify flag if needed to handle different download area when melody E2 is playing */ +/* + * LoCosto version of L1 has a function called l1_check_flag_for_download_area() + * here. TCS211 binary object has l1_handle_particular_cases_for_TCS211() + * instead. We are going to reconstruct the TCS211 function based on + * disassembly, using the LoCosto version as our starting point. + */ - -void l1_check_flag_for_download_area(UWORD32 msg_code) +void l1_handle_particular_cases_for_TCS211(UWORD32 msg_code, BOOL *return_flag) { switch(msg_code) { -#if (AUDIO_TASK == 1) -#if (MELODY_E2 == 1) - /* MELODY E2 case must be handled carefully: two melodies can be activated for E2: both trigger a dynamic download*/ - /* When one of the two is requested, the corresponding flag used afterwards when it is stopped is set */ - case MMI_MELODY0_E2_START_REQ: - { - - l1a.dyn_dwnld.melody0_E2_flag_activated = TRUE; - } - break; - case MMI_MELODY1_E2_START_REQ: - { - - l1a.dyn_dwnld.melody1_E2_flag_activated = TRUE; - } - break; - - /* When E2 is stopped the activated flag must be reset */ - - case L1_MELODY0_E2_STOP_CON: - { - - l1a.dyn_dwnld.melody0_E2_flag_activated = FALSE; - - } - break; - case L1_MELODY1_E2_STOP_CON: - { - - l1a.dyn_dwnld.melody1_E2_flag_activated = FALSE; - - } - break; -#endif // MELODY_E2 == 1 -#endif // AUDIO_TASK == 1 + /* from disassembly */ + case MPHC_IMMED_ASSIGN_REQ: /* 0x0033 */ + /* code at 0x8e */ + l1a.dyn_dwnld.dedicated_stop_flag = FALSE; + return; + case L1C_STOP_DEDICATED_DONE: /* 0x0081 */ + /* code at 0x86 */ + l1a.dyn_dwnld.dedicated_stop_flag = TRUE; + return; + case MMI_MELODY0_E2_START_REQ: /* 0x182E */ + /* code at 0x6c */ + l1a.dyn_dwnld.melody0_E2_flag_activated = TRUE; + if (l1a.dyn_dwnld.melody1_E2_flag_activated == TRUE) { + /* code at 0x80 */ + *return_flag = FALSE; + return; + } + return; + case MMI_MELODY1_E2_START_REQ: /* 0x1832 */ + /* code at 0x56 */ + l1a.dyn_dwnld.melody1_E2_flag_activated = TRUE; + if (l1a.dyn_dwnld.melody0_E2_flag_activated == TRUE) { + /* code at 0x80 */ + *return_flag = FALSE; + return; + } + return; + case L1_BACK_MELODY_E2_UNLOAD_INSTRUMENT_CON: /* 0x1866 */ + /* code at 0x3e */ + if (l1a.dyn_dwnld.melody0_E2_flag_activated == TRUE || + l1a.dyn_dwnld.melody1_E2_flag_activated == TRUE) { + /* code at 0x80 */ + *return_flag = FALSE; + return; + } + return; + case L1_MELODY0_E2_STOP_CON: /* 0x1867 */ + /* code at 0x36 */ + l1a.dyn_dwnld.melody0_E2_flag_activated = FALSE; + return; + case L1_MELODY1_E2_STOP_CON: /* 0x1868 */ + /* code at 0x2e */ + l1a.dyn_dwnld.melody1_E2_flag_activated = FALSE; + return; + default: + return; } } @@ -146,7 +158,7 @@ } - l1_check_flag_for_download_area(msg_code); + l1_handle_particular_cases_for_TCS211(msg_code, &return_flag); return return_flag; }