summaryrefslogtreecommitdiffstats
path: root/Graphic_Equalizer/src/eventhandler.hcc
diff options
context:
space:
mode:
authorOliver Schinagl <oliver@schinagl.nl>2005-01-06 14:15:49 (GMT)
committerOliver Schinagl <oliver@schinagl.nl>2005-01-06 14:15:49 (GMT)
commit7bab6bcb7600a09b224e3f1beb7972d44ebee756 (patch)
treed8fa63640f2aec5a955369031e4bcc5c79be9410 /Graphic_Equalizer/src/eventhandler.hcc
parent9dea27b34e9cdb132b81c8bd951ff747d2d2bf79 (diff)
downloadTASS-7bab6bcb7600a09b224e3f1beb7972d44ebee756.zip
TASS-7bab6bcb7600a09b224e3f1beb7972d44ebee756.tar.gz
TASS-7bab6bcb7600a09b224e3f1beb7972d44ebee756.tar.bz2
Because we added the skindata parameter, our header needs to know about it aswell.
Added some more initilizers. Don't we need a function for this? TODO. inputgain works the opposite way then volume control so no calculation magic is needed here. We determine the mode via the image index. Found hardcoded value, replaced with proper struct element. Added table for inputgain.
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};