summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Schinagl <oliver@schinagl.nl>2005-01-06 14:12:32 (GMT)
committerOliver Schinagl <oliver@schinagl.nl>2005-01-06 14:12:32 (GMT)
commit9dea27b34e9cdb132b81c8bd951ff747d2d2bf79 (patch)
tree940da8963d5f3b910b7a5dbcd4913d559bd070b5
parent4336cfda219af467f14f724634b40cb6a98e9c83 (diff)
downloadTASS-9dea27b34e9cdb132b81c8bd951ff747d2d2bf79.zip
TASS-9dea27b34e9cdb132b81c8bd951ff747d2d2bf79.tar.gz
TASS-9dea27b34e9cdb132b81c8bd951ff747d2d2bf79.tar.bz2
renamed address_offsets to images. Also the content needed to be updated. The about screens should be first as it makes things easier and more efficient in the event handler.
Removed 'modes' we determin modes by the image displayed as these are identical anyway. Therefore we can remove the big switch to set the 'offset' determined by the mode. We need to check however when we want to return not only if the about mode is active, but also if any of it's 'children' is active.
-rw-r--r--Graphic_Equalizer/src/display.hcc83
1 files changed, 30 insertions, 53 deletions
diff --git a/Graphic_Equalizer/src/display.hcc b/Graphic_Equalizer/src/display.hcc
index 5a84d77..e3a1d6e 100644
--- a/Graphic_Equalizer/src/display.hcc
+++ b/Graphic_Equalizer/src/display.hcc
@@ -51,16 +51,17 @@ chan unsigned 1 maskupdate_notification;
/*
*/
-static rom unsigned 20 address_offsets[32] = {
- ADDRESS_SKIN_START,
- ADDRESS_HELP_START,
- ADDRESS_GRAPH_START,
+static rom unsigned 20 images[32] = {
ADDRESS_ABOUT_TOP_FONTYS_START,
ADDRESS_ABOUT_TOP_TASS_START,
ADDRESS_ABOUT_TOP_TRANSFER_START,
ADDRESS_ABOUT_TOP_CELOXICA_START,
ADDRESS_ABOUT_TOP_DETAILS_START,
- ADDRESS_ABOUT_BOTTOM_START
+ ADDRESS_ABOUT_BOTTOM_START,
+ ADDRESS_SKIN_START,
+ ADDRESS_HELP_START,
+ ADDRESS_HELP_START,
+ ADDRESS_GRAPH_START
};
@@ -97,7 +98,6 @@ void display_main(skindata_t *skindata, audiodata_t *audiodata, events_t *events
unsigned AW addresses[32];
unsigned DW pixeldata;
unsigned 24 visual_graph_color;
- unsigned AW address_offset;
unsigned 5 address_index;
@@ -118,7 +118,7 @@ void display_main(skindata_t *skindata, audiodata_t *audiodata, events_t *events
/*
* Prime Rendering Pipeline to start where the skin starts.
*/
- PalPL2RAMSetReadAddress(RAM_BANK0, ADDRESS_SKIN_START);
+ PalPL2RAMSetReadAddress(RAM_BANK0, images[events->image]);
/*
* Run the following tasks indefinatly and in parallel
@@ -132,36 +132,14 @@ void display_main(skindata_t *skindata, audiodata_t *audiodata, events_t *events
* for the next cycle.
*/
PalPL2RAMRead(RAM_BANK0, &pixeldata);
- PalPL2RAMSetReadAddress(RAM_BANK0, (MODE_GRAPH == events->mode) ? (address_offset +(0 @ (addresses[address_index] \\ 2))) : (address_offset +addresses[address_index]));
+ PalPL2RAMSetReadAddress(RAM_BANK0, (IMAGE_GRAPH == events->image) ? (images[events->image] +(0 @ (addresses[address_index] \\ 2))) : (images[events->image] +addresses[address_index]));
- /*
- */
- switch (events->mode) {
- case MODE_SKIN:
- address_offset = address_offsets[OFFSET_ADDRESS_SKIN];
- break;
- case MODE_GRAPH:
- address_offset = address_offsets[OFFSET_ADDRESS_GRAPHMASK];
- break;
- case MODE_ABOUT:
- address_offset = address_offsets[OFFSET_ADDRESS_HELP];
- break;
- case MODE_HELP:
- address_offset = address_offsets[OFFSET_ADDRESS_HELP];
- break;
- case MODE_ABOUT_BUSY:
- address_offset = address_offsets[events->address_offset_index];
- break;
- default:
- delay;
- break;
- }
- if (MODE_GRAPH == events->mode) {
+ if (IMAGE_GRAPH == events->image) {
par {
switch (addresses[MASK_AREA_BACKGROUND] <- 2) {
case 3:
- visual_graph_color = ((unsigned 8)(0 @ audiodata->fft_info.read[MASK]) << 1) @ ((unsigned 8)(0 @ audiodata->fft_info.read[MASK]) << -1) @ ((unsigned 8)(0 @ audiodata->fft_info.read[MASK]) << 0);
+ visual_graph_color = ((unsigned 8)(0 @ audiodata->fft_info.read[pixeldata[31:24]]) << 1) @ ((unsigned 8)(0 @ audiodata->fft_info.read[pixeldata[31:24]]) << -1) @ ((unsigned 8)(0 @ audiodata->fft_info.read[pixeldata[31:24]]) << 0);
break;
case 0:
visual_graph_color = ((unsigned 8)(0 @ audiodata->fft_info.read[pixeldata[23:16]]) << 1) @ ((unsigned 8)(0 @ audiodata->fft_info.read[pixeldata[23:16]]) << -1) @ ((unsigned 8)(0 @ audiodata->fft_info.read[pixeldata[23:16]]) << 0);
@@ -202,9 +180,10 @@ void display_main(skindata_t *skindata, audiodata_t *audiodata, events_t *events
*/
case AREA_VOLUME_YAXIS:
/*
- * The volume_position stores the
- * highest point of our bar. Every
- * pixel after this point is drawn.
+ * The volume_position stores
+ * the highest point of our
+ * bar. Every pixel after this
+ * point is drawn.
*/
if (SCANY >= 0 @ events->volume_position) {
PalVideoOutWrite(VIDEOOUT, skindata->volume.color_primary);
@@ -214,13 +193,14 @@ void display_main(skindata_t *skindata, audiodata_t *audiodata, events_t *events
break;
/*
- * Volume control over the Y-axis.
+ * Inputgain control over the Y-axis.
*/
case AREA_INPUTGAIN_YAXIS:
/*
- * The volume_position stores the
- * highest point of our bar. Every
- * pixel after this point is drawn.
+ * The inputgain_position
+ * stores the highest point of
+ * our bar. Every pixel after
+ * this point is drawn.
*/
if (SCANY >= 0 @ events->inputgain_position) {
PalVideoOutWrite(VIDEOOUT, skindata->inputgain.color_primary);
@@ -292,21 +272,19 @@ void display_main(skindata_t *skindata, audiodata_t *audiodata, events_t *events
break;
case BUTTON_HELP:
- draw_button(events->mode == MODE_HELP);
+ draw_button(events->image == IMAGE_HELP);
break;
case BUTTON_ABOUT:
- draw_button(events->mode == MODE_ABOUT);
+ draw_button(events->image == IMAGE_ABOUT);
break;
case AREA_ABOUT_TOP:
- if (MODE_ABOUT == events->mode) {
+ if (IMAGE_ABOUT == events->image) {
par {
- events->mode = MODE_ABOUT_BUSY;
+ events->image = events->image_about;
address_index = MASK_AREA_ABOUT_TOP;
- address_offset = address_offsets[events->address_offset_index];
PalVideoOutWrite(VIDEOOUT, PIXEL);
}
-
} else {
PalVideoOutWrite(VIDEOOUT, PIXEL);
}
@@ -318,24 +296,23 @@ void display_main(skindata_t *skindata, audiodata_t *audiodata, events_t *events
case BUTTON_URL_CELOXICA: /* fall through */
case BUTTON_URL_DETAILS: /* fall through */
case AREA_ABOUT_BOTTOM:
- if (MODE_ABOUT == events->mode) {
+ if (IMAGE_ABOUT == events->image) {
par {
- events->mode = MODE_ABOUT_BUSY;
+ events->image = IMAGE_ABOUT_BOTTOM;
address_index = MASK_AREA_ABOUT_BOTTOM;
- address_offset = address_offsets[OFFSET_ADDRESS_ABOUT_TOP_CELOXICA /* OFFSET_ADDRESS_ABOUT_BOTTOM */];
PalVideoOutWrite(VIDEOOUT, PIXEL);
}
} else {
- PalVideoOutWrite(VIDEOOUT, PIXEL);
+ PalVideoOutWrite(VIDEOOUT, PIXEL);
}
break;
case AREA_MASK_END:
- if (MODE_ABOUT_BUSY == events->mode) {
+ /* (IMAGE_ABOUT_TOP_FONTYS <= events->image) && (events->image <= IMAGE_ABOUT_BOTTOM)*/
+ if ((events->image <= IMAGE_ABOUT_BOTTOM) || (IMAGE_ABOUT == events->image)) {
par {
- events->mode = MODE_ABOUT;
+ events->image = IMAGE_ABOUT;
address_index = MASK_AREA_BACKGROUND;
- address_offset = address_offsets[OFFSET_ADDRESS_HELP];
PalVideoOutWrite(VIDEOOUT, PIXEL);
}
} else {
@@ -354,7 +331,7 @@ void display_main(skindata_t *skindata, audiodata_t *audiodata, events_t *events
* background.
*/
default:
- /* (MASK <= AREA_EQUALIZER_MAX) && */
+ /* (MASK <= AREA_EQUALIZER_MAX) && (AREA_EQUALIZER_MIN <= MASK) */
if ((AREA_EQUALIZER_MIN <= MASK) && (!events->locked_display)) {
if ((SCANY == 0 @ events->equalizer_display[(MASK -AREA_EQUALIZER_MIN) <- 7]) || ((SCANY +1) == 0 @ events->equalizer_display[(MASK -AREA_EQUALIZER_MIN) <- 7])) {
PalVideoOutWrite(VIDEOOUT, skindata->equalizer.color_primary);