From e0ddd606e20bbb7c574a21028130edf616383f30 Mon Sep 17 00:00:00 2001 From: Marcel Lauwerijssen Date: Thu, 3 Mar 2005 08:06:31 +0000 Subject: fixed volume bar when toggling between audio player and normal mode --- Graphic_Equalizer/src/eventhandler.hcc | 77 ++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 35 deletions(-) diff --git a/Graphic_Equalizer/src/eventhandler.hcc b/Graphic_Equalizer/src/eventhandler.hcc index 5e9fa87..983f67b 100644 --- a/Graphic_Equalizer/src/eventhandler.hcc +++ b/Graphic_Equalizer/src/eventhandler.hcc @@ -65,7 +65,7 @@ inline void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedat unsigned 11 reference_point, reference_point_right; unsigned 10 preset_offset; unsigned 6 gain_counter; - unsigned 5 old_volume; + unsigned 5 old_volume, old_audio_player_volume; unsigned 5 volume; unsigned 4 gain; unsigned 4 index_offset, index_end; @@ -73,21 +73,21 @@ inline void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedat unsigned 1 newmaskupdate, eventupdate; macro proc set_mode(newmode) - { -// print_eol();print_string("Be: ");print_hex_value(0@ events->mode); + { events->mode = (events->mode[4]) ? (newmode | EVENTS_MODE_AUDIO_PLAYER): newmode; -// print_eol();print_string("af: ");print_hex_value(0@ events->mode); - } - + } + audiodata->display_log = TRUE; events->image = IMAGE_SKIN; events->button_demo_state = FALSE; events->button_reset_state = FALSE; - events->saturated = FALSE; - events->mode = 1; + events->saturated = FALSE; + events->mode = 1; events->locked_gain = FALSE; - volume = change_volume_from_coordinate(volumecontrol_table_inv[0x18], events, skindata); + volume = change_volume_from_coordinate(volumecontrol_table_inv[0x18], events, skindata); + old_audio_player_volume = volume; + old_volume = volume; gain = change_inputgain_from_coordinate(inputgain_table_inv[0xf], events, skindata); load_preset(LOAD_PRESET_RESET, equalizer_levels.write); reload_equalizer(events, &equalizer_levels.write[preset_offset]); @@ -226,7 +226,8 @@ inline void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedat * we point to 0, 128, 256, 384, 512 * or 640. */ - audiodata->equalizer_levels_ptr = &equalizer_levels.read[preset_offset]; /* + audiodata->equalizer_levels_ptr = &equalizer_levels.read[preset_offset]; + /* * Reload the equalizer bars * from our buffer into * the display memory. @@ -273,19 +274,25 @@ inline void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedat } if (BUTTON_INPUT_SELECT == events->mask) { - if(events->mode[4]) - { - events->mode &= (~EVENTS_MODE_AUDIO_PLAYER); - change_volume_from_coordinate(volumecontrol_table_inv[volume], events, skindata); - audiodata->player_state = PLAYER_DISABLED; - events->locked_gain = FALSE; - } - else - { - events->mode |= EVENTS_MODE_AUDIO_PLAYER; + if (events->mode[4]) { + /* + * Disable the audio player + */ + events->mode &= (~EVENTS_MODE_AUDIO_PLAYER); + old_audio_player_volume = volume; + volume = old_volume; + change_volume_from_coordinate(volumecontrol_table_inv[volume], events, skindata); + audiodata->player_state = PLAYER_DISABLED; + events->locked_gain = FALSE; + } else { + /* + * Enable the audio player + */ + events->mode |= EVENTS_MODE_AUDIO_PLAYER; old_volume = volume; - change_volume_from_coordinate(volumecontrol_table_inv[0x18], events, skindata); - audiodata->player_state = PLAYING; + volume = old_audio_player_volume; + change_volume_from_coordinate(volumecontrol_table_inv[volume], events, skindata); + audiodata->player_state = PLAYING; events->locked_gain = TRUE; } } else { @@ -296,9 +303,9 @@ inline void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedat if ((BUTTON_PAUSE == events->mask) && (audiodata->player_state != STOPPED)) { if (PLAYING == audiodata->player_state) { - audiodata->player_state = PAUSED; + audiodata->player_state = PAUSED; } else { - audiodata->player_state = PLAYING; + audiodata->player_state = PLAYING; } } else { delay; @@ -311,20 +318,20 @@ inline void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedat } if (BUTTON_STOP == events->mask) { - audiodata->player_state = STOPPED; + audiodata->player_state = STOPPED; } else { delay; } if (BUTTON_NEXT_TRACK == events->mask) { - audiodata->player_state = NEXT_TRACK; + audiodata->player_state = NEXT_TRACK; events->next_track_state = TRUE; } else { delay; } if (BUTTON_PREV_TRACK == events->mask) { - audiodata->player_state = PREV_TRACK; + audiodata->player_state = PREV_TRACK; events->prev_track_state = TRUE; } else { delay; @@ -445,13 +452,13 @@ inline void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedat } if (BUTTON_RESET != events->mask) { events->button_reset_state = FALSE; - } - + } + if (BUTTON_NEXT_TRACK != events->mask) { events->next_track_state = FALSE; - } + } - if (BUTTON_PREV_TRACK != events->mask) { + if (BUTTON_PREV_TRACK != events->mask) { events->prev_track_state = FALSE; } @@ -459,8 +466,8 @@ inline void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedat case MOUSE_STATE_ON_RELEASE: events->button_demo_state = FALSE; - events->button_reset_state = FALSE; - events->next_track_state = FALSE; + events->button_reset_state = FALSE; + events->next_track_state = FALSE; events->prev_track_state = FALSE; break; @@ -478,8 +485,8 @@ inline void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedat * TODO: This table is now hardcoded. To ensure full skinability this table * should be dynamically loaded. */ -ram unsigned 5 volumecontrol_table[46] = {31, 31, 30, 30, 29, 29, 28, 28, 27, 27, 26, 26, 25, 25, 24, 24, 23, 23, 22, 22, 21, 21, 20, 20, 19, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0}; -ram unsigned 11 volumecontrol_table_inv[32] = {111, 110, 108, 106, 105, 103, 102, 100, 99, 97, 96, 94, 93, 91, 90, 88, 87, 85, 84, 82, 81, 79, 78, 76, 75, 73, 72, 70, 69, 67, 66}; +ram unsigned 5 volumecontrol_table[46] = {31, 30, 30, 29, 28, 28, 27, 26, 25, 25, 24, 23, 23, 22, 21, 21, 20, 19, 19, 18, 17, 17, 16, 15, 14, 14, 13, 12, 12, 11, 10, 10, 9, 8, 8, 7, 6, 6, 5, 4, 3, 3, 2, 1, 1, 0}; +ram unsigned 11 volumecontrol_table_inv[32] = {111, 110, 108, 107, 104, 102, 101, 99, 98, 96, 95, 94, 92, 91, 89, 86, 85, 83, 82, 81, 79, 78, 76, 75, 73, 72, 70, 69, 67, 66}; ram unsigned 4 inputgain_table[46] = {15, 15, 15, 15, 14, 14, 14, 14, 13, 13, 13, 13, 12, 12, 12, 12, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, 0}; ram unsigned 11 inputgain_table_inv[16] = {111, 108, 105, 102, 99, 96, 93, 90, 87, 84, 81, 78, 75, 72, 69, 66}; -- cgit v0.12