Commit c63265904f73de4c4e2b158d6b24ee49e433562c
1 parent
804e56cd
fix(source convert):Closes #I3Y1L0
Showing
1 changed file
with
77 additions
and
42 deletions
| @@ -113,28 +113,17 @@ void taskKeyFunc(void) | @@ -113,28 +113,17 @@ void taskKeyFunc(void) | ||
| 113 | } | 113 | } |
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | -/******************************************************************************** | ||
| 117 | -* poweron defalt souce * | ||
| 118 | -*********************************************************************************/ | ||
| 119 | - | ||
| 120 | -#define MEDIA_DEFAULT MEDIA_AUX | ||
| 121 | -//#define MEDIA_DEFAULT MEDIA_BT_HCI | ||
| 122 | -//#define MEDIA_DEFAULT MEDIA_USB_DEVICE | ||
| 123 | - | ||
| 124 | -U8 app_defalt_poweron_souce (void) | ||
| 125 | -{ | ||
| 126 | - return MEDIA_DEFAULT; | ||
| 127 | -} | ||
| 128 | - | ||
| 129 | typedef struct{ | 116 | typedef struct{ |
| 130 | U32 source_id; | 117 | U32 source_id; |
| 131 | void (*source_entry)(void); | 118 | void (*source_entry)(void); |
| 132 | } APP_NAV_SOURCE; | 119 | } APP_NAV_SOURCE; |
| 133 | 120 | ||
| 121 | + | ||
| 122 | +//first element in this table use for default source | ||
| 134 | const APP_NAV_SOURCE source_table[] = | 123 | const APP_NAV_SOURCE source_table[] = |
| 135 | { | 124 | { |
| 136 | - //{MEDIA_BT_HCI,app_nav_rmt_convert_bt_hci}, | ||
| 137 | - {MEDIA_AUX,app_nav_rmt_convert_aux}, | 125 | + {MEDIA_AUX,app_nav_rmt_convert_aux}, |
| 126 | + {MEDIA_BT_HCI,app_nav_rmt_convert_bt_hci}, | ||
| 138 | {MEDIA_OPTICAL,app_nav_rmt_convert_spdif}, | 127 | {MEDIA_OPTICAL,app_nav_rmt_convert_spdif}, |
| 139 | 128 | ||
| 140 | #ifdef USB_HOST_ENABLE | 129 | #ifdef USB_HOST_ENABLE |
| @@ -146,7 +135,7 @@ const APP_NAV_SOURCE source_table[] = | @@ -146,7 +135,7 @@ const APP_NAV_SOURCE source_table[] = | ||
| 146 | #endif | 135 | #endif |
| 147 | 136 | ||
| 148 | #if ( (defined USB_DEV_ENABLE) && (defined USB_SPEAKER) ) | 137 | #if ( (defined USB_DEV_ENABLE) && (defined USB_SPEAKER) ) |
| 149 | - {MEDIA_USB_SPEAKER, app_nav_rmt_convert_pc_speaker}, | 138 | + //{MEDIA_USB_SPEAKER, app_nav_rmt_convert_pc_speaker}, |
| 150 | #endif | 139 | #endif |
| 151 | 140 | ||
| 152 | // {MEDIA_OPTICAL,app_nav_rmt_convert_spdif}, | 141 | // {MEDIA_OPTICAL,app_nav_rmt_convert_spdif}, |
| @@ -154,6 +143,30 @@ const APP_NAV_SOURCE source_table[] = | @@ -154,6 +143,30 @@ const APP_NAV_SOURCE source_table[] = | ||
| 154 | // {MEDIA_ARC,app_nav_rmt_convert_ARC} | 143 | // {MEDIA_ARC,app_nav_rmt_convert_ARC} |
| 155 | }; | 144 | }; |
| 156 | 145 | ||
| 146 | +/******************************************************************************** | ||
| 147 | +* poweron defalt souce * | ||
| 148 | +*********************************************************************************/ | ||
| 149 | + | ||
| 150 | +U8 app_defalt_poweron_souce (void) | ||
| 151 | +{ | ||
| 152 | + if (sizeof(source_table) != 0) | ||
| 153 | + { | ||
| 154 | + return source_table[0].source_id; | ||
| 155 | + } | ||
| 156 | + else | ||
| 157 | + { | ||
| 158 | + return MEDIA_AUX; | ||
| 159 | + } | ||
| 160 | +} | ||
| 161 | + | ||
| 162 | +/******************************************************************************** | ||
| 163 | +* This is an empty function, it doesn't do anything * | ||
| 164 | +*********************************************************************************/ | ||
| 165 | +void source_entry_null(void) | ||
| 166 | +{ | ||
| 167 | + | ||
| 168 | +} | ||
| 169 | + | ||
| 157 | /**************************************************************************************** | 170 | /**************************************************************************************** |
| 158 | * from current source to get next souce * | 171 | * from current source to get next souce * |
| 159 | *****************************************************************************************/ | 172 | *****************************************************************************************/ |
| @@ -161,28 +174,37 @@ void* app_get_next_source_entry (U8 curr_source_id) | @@ -161,28 +174,37 @@ void* app_get_next_source_entry (U8 curr_source_id) | ||
| 161 | { | 174 | { |
| 162 | void *srouce_entry; | 175 | void *srouce_entry; |
| 163 | int i; | 176 | int i; |
| 164 | - for (i=0;i<sizeof(source_table)/sizeof(APP_NAV_SOURCE);i++) | 177 | + U16 source_count = sizeof(source_table)/sizeof(APP_NAV_SOURCE); |
| 178 | + | ||
| 179 | + if (source_count) | ||
| 165 | { | 180 | { |
| 166 | - if (curr_source_id == source_table[i].source_id) | 181 | + for (i=0;i<source_count;i++) |
| 167 | { | 182 | { |
| 168 | - break; | 183 | + if (curr_source_id == source_table[i].source_id) |
| 184 | + { | ||
| 185 | + break; | ||
| 186 | + } | ||
| 169 | } | 187 | } |
| 170 | - } | ||
| 171 | 188 | ||
| 172 | - if (i == sizeof(source_table)/sizeof(APP_NAV_SOURCE)-1) | ||
| 173 | - { | ||
| 174 | - srouce_entry = source_table[0].source_entry; | ||
| 175 | - } | ||
| 176 | - else if (i < sizeof(source_table)/sizeof(APP_NAV_SOURCE)-1) | ||
| 177 | - { | ||
| 178 | - srouce_entry = source_table[i+1].source_entry; | ||
| 179 | - } | 189 | + if (i != source_count) |
| 190 | + { | ||
| 191 | + i++;//next source | ||
| 192 | + i %= source_count; | ||
| 193 | + srouce_entry = source_table[i].source_entry; | ||
| 194 | + } | ||
| 195 | + else | ||
| 196 | + { | ||
| 197 | + srouce_entry = source_table[0].source_entry; | ||
| 198 | + DBG_Printf("err:current source id:%d is not in source table! return default source id\r\n",curr_source_id); | ||
| 199 | + } | ||
| 200 | + | ||
| 201 | + return srouce_entry; | ||
| 202 | + } | ||
| 180 | else | 203 | else |
| 181 | { | 204 | { |
| 182 | - srouce_entry = source_table[0].source_entry; | ||
| 183 | - DBG_Printf("err:current source:%d is not in source table!\r\n",curr_source_id); | 205 | + DBG_Printf("source table is null\r\n"); |
| 206 | + return source_entry_null; | ||
| 184 | } | 207 | } |
| 185 | - return srouce_entry; | ||
| 186 | } | 208 | } |
| 187 | 209 | ||
| 188 | /**************************************************************************************** | 210 | /**************************************************************************************** |
| @@ -192,24 +214,35 @@ void* app_get_cur_source_entry (U8 curr_source_id) | @@ -192,24 +214,35 @@ void* app_get_cur_source_entry (U8 curr_source_id) | ||
| 192 | { | 214 | { |
| 193 | void *srouce_entry; | 215 | void *srouce_entry; |
| 194 | int i; | 216 | int i; |
| 195 | - for (i=0;i<sizeof(source_table)/sizeof(APP_NAV_SOURCE);i++) | 217 | + U16 source_count = sizeof(source_table)/sizeof(APP_NAV_SOURCE); |
| 218 | + | ||
| 219 | + if (source_count) | ||
| 196 | { | 220 | { |
| 197 | - if (curr_source_id == source_table[i].source_id) | 221 | + for (i=0;i<source_count;i++) |
| 198 | { | 222 | { |
| 199 | - break; | 223 | + if (curr_source_id == source_table[i].source_id) |
| 224 | + { | ||
| 225 | + break; | ||
| 226 | + } | ||
| 200 | } | 227 | } |
| 201 | - } | ||
| 202 | 228 | ||
| 203 | - if (i <= sizeof(source_table)/sizeof(APP_NAV_SOURCE)-1) | ||
| 204 | - { | ||
| 205 | - srouce_entry = source_table[i].source_entry; | ||
| 206 | - } | 229 | + if (i != source_count) |
| 230 | + { | ||
| 231 | + srouce_entry = source_table[i].source_entry; | ||
| 232 | + } | ||
| 233 | + else | ||
| 234 | + { | ||
| 235 | + srouce_entry = source_table[0].source_entry; | ||
| 236 | + DBG_Printf("err:current source id:%d is not in source table! return default source id\r\n",curr_source_id); | ||
| 237 | + } | ||
| 238 | + | ||
| 239 | + return srouce_entry; | ||
| 240 | + } | ||
| 207 | else | 241 | else |
| 208 | { | 242 | { |
| 209 | - srouce_entry = source_table[0].source_entry; | ||
| 210 | - DBG_Printf("err:current source:%d is not in source table!\r\n",curr_source_id); | 243 | + DBG_Printf("source table is null\r\n"); |
| 244 | + return app_nav_rmt_convert_aux; | ||
| 211 | } | 245 | } |
| 212 | - return srouce_entry; | ||
| 213 | } | 246 | } |
| 214 | 247 | ||
| 215 | void app_nav_media_convert(void) | 248 | void app_nav_media_convert(void) |
| @@ -384,11 +417,13 @@ void app_nav_power_on(void) | @@ -384,11 +417,13 @@ void app_nav_power_on(void) | ||
| 384 | #if 1 | 417 | #if 1 |
| 385 | 418 | ||
| 386 | void (*source_entry)(void); | 419 | void (*source_entry)(void); |
| 420 | + #ifdef OPTEK_LINK_ENABLE | ||
| 387 | if ((app_main_data.share_link_role == SL_ROLE_SLAVE) || (app_main_data.share_link_role == SL_ROLE_BT)) | 421 | if ((app_main_data.share_link_role == SL_ROLE_SLAVE) || (app_main_data.share_link_role == SL_ROLE_BT)) |
| 388 | { | 422 | { |
| 389 | source_entry = app_nav_rmt_convert_bt_hci; | 423 | source_entry = app_nav_rmt_convert_bt_hci; |
| 390 | } | 424 | } |
| 391 | else | 425 | else |
| 426 | + #endif | ||
| 392 | { | 427 | { |
| 393 | source_entry = app_get_cur_source_entry (app_main_data.media); | 428 | source_entry = app_get_cur_source_entry (app_main_data.media); |
| 394 | } | 429 | } |
Please
register
or
login
to post a comment