summaryrefslogtreecommitdiffstats
path: root/Graphic_Equalizer/src/eventhandler.hcc
diff options
context:
space:
mode:
Diffstat (limited to 'Graphic_Equalizer/src/eventhandler.hcc')
-rw-r--r--Graphic_Equalizer/src/eventhandler.hcc86
1 files changed, 63 insertions, 23 deletions
diff --git a/Graphic_Equalizer/src/eventhandler.hcc b/Graphic_Equalizer/src/eventhandler.hcc
index 95f199f..44f9a52 100644
--- a/Graphic_Equalizer/src/eventhandler.hcc
+++ b/Graphic_Equalizer/src/eventhandler.hcc
@@ -28,9 +28,9 @@
#include "audio.hch"
#include "mouse_shared.hch"
#include "eventhandler_shared.hch"
+#include "display_shared.hch"
#include "eventhandler.hch"
#include "events.hch"
-#include "display_shared.hch"
#include "display.hch"
#if HAVE_DEBUG
@@ -56,7 +56,7 @@ extern chan unsigned 1 maskupdate_notification;
* \return Never Returns.
* \retval void
*/
-void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mousedata) {
+void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mousedata, skindata_t *skindata) {
mpram {
ram unsigned 4 write[768];
rom unsigned 4 read[768];
@@ -65,18 +65,28 @@ void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mo
unsigned 10 preset_offset;
unsigned 10 reference_point, reference_point_right;
unsigned 5 volume_left;
+ unsigned 4 gain_left;
unsigned 4 index_offset, index_end;
unsigned 4 equalizer_mode_local;
unsigned 1 newmaskupdate;
- events->address_offset_index = 0; /* MASK_AREA_BACKGROUND */
+ audiodata->display_log = TRUE;
+
+ events->image = IMAGE_SKIN;
events->button_demo_state = FALSE;
events->button_reset_state = FALSE;
+
+ events->inputgain_position = skindata->inputgain.bottom -10;
+ RC200AudioInSetGain(FALSE, 4, 4);
+ events->volume_position = skindata->volume.bottom -30;
+ RC200AudioOutSetVolume(FALSE, 0x1f -24, 0x1f -24);
+
load_preset(LOAD_PRESET_RESET, equalizer_levels.write);
reload_equalizer(events, &equalizer_levels.write[preset_offset]);
while (TRUE) {
+
maskupdate_notification ? newmaskupdate;
/*
@@ -89,8 +99,8 @@ void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mo
* If we are displaying the graphic visual,
* any press returns to the application.
*/
- if (MODE_GRAPH == events->mode) {
- events->mode = MODE_SKIN;
+ if (IMAGE_GRAPH == events->image) {
+ events->image = IMAGE_SKIN;
events->mask = 0;
} else {
delay;
@@ -99,10 +109,10 @@ void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mo
/*
*/
if (BUTTON_MODE == events->mask) {
- if (MODE_GRAPH == events->mode) {
- events->mode = MODE_SKIN;
+ if (IMAGE_GRAPH == events->image) {
+ events->image = IMAGE_SKIN;
} else {
- events->mode = MODE_GRAPH;
+ events->image = IMAGE_GRAPH;
}
} else {
delay;
@@ -112,32 +122,32 @@ void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mo
* If the current mask equals the help button
* we set display mode to help.
*/
- if ((MODE_ABOUT != events->mode) && (BUTTON_HELP == events->mask)) {
+ if ((IMAGE_ABOUT != events->image) && (BUTTON_HELP == events->mask)) {
/*
* Change the mode to help if it's
* currently not set, otherwise go back
* to skin mode.
*/
- if (MODE_HELP == events->mode) {
- events->mode = MODE_SKIN;
+ if (IMAGE_HELP == events->image) {
+ events->image = IMAGE_SKIN;
} else {
- events->mode = MODE_HELP;
+ events->image = IMAGE_HELP;
}
} else {
delay;
}
- if ((MODE_HELP != events->mode) && (BUTTON_ABOUT == events->mask)) {
+ if ((IMAGE_HELP != events->image) && (BUTTON_ABOUT == events->mask)) {
/*
- * Change the mode to help if it's
+ * Change the mode to about if it's
* currently not set, otherwise go back
* to skin mode.
*/
- if (MODE_ABOUT == events->mode) {
- events->mode = MODE_SKIN;
+ if (IMAGE_ABOUT == events->image) {
+ events->image = IMAGE_SKIN;
} else {
- events->address_offset_index = 4;
- events->mode = MODE_ABOUT;
+ events->image_about = IMAGE_ABOUT_TOP_TASS;
+ events->image = IMAGE_ABOUT;
}
} else {
delay;
@@ -146,7 +156,7 @@ void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mo
if (BUTTON_EXIT_TO_SKIN == events->mask) {
/*
*/
- events->mode = MODE_SKIN;
+ events->image = IMAGE_SKIN;
} else {
delay;
}
@@ -154,9 +164,9 @@ void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mo
/*
*/
if ((BUTTON_URL_FONTYS <= events->mask) && (events->mask <= BUTTON_URL_DETAILS)) {
- events->address_offset_index = (events->mask -BUTTON_URL_FONTYS +3) <- 5;
+ events->image_about = (events->mask -BUTTON_URL_FONTYS) <- 5;
#if HAVE_DEBUG
- print_string(" address offset index: ");print_hex_value(0@events->address_offset_index);print_eol();
+ print_string(" image: ");print_hex_value(0@events->image_about);print_eol();
#endif
} else {
delay;
@@ -244,6 +254,7 @@ void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mo
break;
case MOUSE_STATE_DOWN:
+
/*
* If we are in the volume area we update the
* volume level for both channels.
@@ -262,7 +273,7 @@ void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mo
* RC200 call doesn't behave nicely
* when passing anything else.
*/
- volume_left = volumecontrol_table[((mousedata->y) -65) <- 6];
+ volume_left = volumecontrol_table[((mousedata->y) -skindata->volume.top) <- 6];
/*
* We feel that volume gets softer the
* closer it gets to the 0, and louder
@@ -275,6 +286,33 @@ void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mo
delay;
}
+ if (AREA_INPUTGAIN_YAXIS == events->mask) {
+ /*
+ * Copy the current Y cursor position
+ * to the events struct. This we then
+ * later use for drawing purposes.
+ */
+ events->inputgain_position = 0 @ mousedata->y;
+ /*
+ * Look the relative y-coordinate up in
+ * the inputgain lookup table. We
+ * make a local copy here because the
+ * RC200 call doesn't behave nicely
+ * when passing anything else.
+ */
+ gain_left = inputgain_table[((mousedata->y) -skindata->inputgain.top) <- 6];
+ /*
+ * We feel that volume gets softer the
+ * closer it gets to the 0, and louder
+ * as it approaches 0x1f. The SetVolume
+ * RC200 call does this in an unnatural
+ * reverse way. Therefor we fix it.
+ */
+ RC200AudioInSetGain(!gain_left, gain_left, gain_left);
+ } else {
+ delay;
+ }
+
if ((AREA_EQUALIZER_MIN <= events->mask) && (events->mask <= AREA_EQUALIZER_MAX)) {
if (EQUALIZERMODE_PRECISE == events->equalizer_mode) {
@@ -363,4 +401,6 @@ void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mo
* TODO: This table is now hardcoded. To ensure full skinability this table
* should be dynamically loaded.
*/
-rom 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};
+rom 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};
+
+rom 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};