summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Graphic_Equalizer/src/eventhandler.hcc77
1 files 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};