From 06672b2893a1abbb90c0aba5de547cb5ba8c02e0 Mon Sep 17 00:00:00 2001 From: Oliver Schinagl Date: Wed, 8 Dec 2004 12:22:34 +0000 Subject: We now use a BlockRam to store Equalizer 'factory' defaults. Added various stages for the loader to perform different tasks during each stage. --- Graphic_Equalizer/src/smartmedia.hcc | 62 ++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/Graphic_Equalizer/src/smartmedia.hcc b/Graphic_Equalizer/src/smartmedia.hcc index 757cc17..ff405c1 100644 --- a/Graphic_Equalizer/src/smartmedia.hcc +++ b/Graphic_Equalizer/src/smartmedia.hcc @@ -24,6 +24,7 @@ /******** Application Includes ********/ #include "configuration.hch" #include "display_shared.hch" +#include "smartmedia_shared.hch" #include "smartmedia.hch" #if HAVE_DEBUG @@ -83,6 +84,8 @@ void smartmedia_loaddata(skindata_t *skindata) { unsigned 3 stage; unsigned 1 result; + extern ram unsigned 8 presets_default_values[768]; + #if HAVE_DEBUG /* * Print some nice stats about data loading. @@ -106,32 +109,36 @@ void smartmedia_loaddata(skindata_t *skindata) { * Once we are done with the loading of our skin, we need to * change the smartmedia start addresses. */ - if (ADDRESS_HELP_START == address) { - smartmedia_address = SMARTMEDIA_ADDRESS_HELP_START; - smartmedia_address_mask = SMARTMEDIA_ADDRESS_HELPMASK_START; - stage = STAGE_LOAD_HELP; - } - if (ADDRESS_GRAPHMASK_START == address) { - smartmedia_address_mask = SMARTMEDIA_ADDRESS_GRAPHMASK_START; - stage = STAGE_LOAD_GRAPH; - } - if (ADDRESS_PRESET_DEMO_START == address) { - smartmedia_address_mask = SMARTMEDIA_ADDRESS_PRESET_DEMO_START; - stage = STAGE_LOAD_PRESET; + switch (address) { + case ADDRESS_HELP_START: + smartmedia_address = SMARTMEDIA_ADDRESS_HELP_START; + smartmedia_address_mask = SMARTMEDIA_ADDRESS_HELPMASK_START; + stage = STAGE_LOAD_HELP; + break; + case ADDRESS_GRAPHMASK_START: + smartmedia_address_mask = SMARTMEDIA_ADDRESS_GRAPHMASK_START; + stage = STAGE_LOAD_GRAPH; + break; + case ADDRESS_PRESET_DEMO_START: + smartmedia_address_mask = SMARTMEDIA_ADDRESS_PRESET_DEMO_START; + stage = STAGE_LOAD_PRESET; + break; + case ADDRESS_PRESET_RESET_START: + smartmedia_address_mask = SMARTMEDIA_ADDRESS_PRESET_RESET_START; + stage = STAGE_LOAD_PRESET; + break; + default: + break; } /* * Before reading our data from the smartmedia we set our * address pointer to the address from our loop. */ -#if SKIP_LOAD - if (STAGE_LOAD_PRESET == stage) { - PalPL2RAMSetWriteAddress(RAM_BANK0, address); - } else { - PalPL2RAMSetWriteAddress(RAM_BANK0, 0); - } -#else +#if HAVE_SMARTMEDIA PalPL2RAMSetWriteAddress(RAM_BANK0, address); +#else + PalPL2RAMSetWriteAddress(RAM_BANK0, 0); #endif /* @@ -146,7 +153,6 @@ void smartmedia_loaddata(skindata_t *skindata) { * stop reading after each byte with OperationEnd call. This is * VERY slow and must be changed. */ - #if !USE_MASK_ONLY if ((STAGE_LOAD_SKIN == stage) || (STAGE_LOAD_HELP == stage)) { RC200SmartMediaSetAddress(READ, smartmedia_address); RC200SmartMediaRead(&r, TRUE); @@ -158,7 +164,6 @@ void smartmedia_loaddata(skindata_t *skindata) { RC200SmartMediaRead(&b, TRUE); RC200SmartMediaOperationEnd(&result); } - #endif RC200SmartMediaSetAddress(READ, smartmedia_address_mask); RC200SmartMediaRead(&mask, TRUE); RC200SmartMediaOperationEnd(&result); @@ -174,16 +179,11 @@ void smartmedia_loaddata(skindata_t *skindata) { data = (unsigned DW)(0 @ mask) << 24; break; case STAGE_LOAD_PRESET: - data = 0 @ mask; - break; + presets_default_values[(address -ADDRESS_PRESET_DEMO_START) <- 10] = mask; } #else - if (STAGE_LOAD_PRESET == stage) { - data = (address <- 1) ? 0x000000ff : 0x00000000; - } else { - data = 0x0000ff00; - } + data = 0x0000ff00; #endif /* * Now that we have gathered all pixel data, store it in ram. @@ -194,10 +194,10 @@ void smartmedia_loaddata(skindata_t *skindata) { /* * Print some nice stats about data loading. */ - if (!(address <- 11)) { + if (!(address <- 10)) { print_cr(); - print_hex_value(0 @ (address \\ 12)); - print_string(" / 000000E1 | data: "); + print_hex_value(0 @ (address \\ 11)); + print_string(" / 000001C2 | data: "); print_hex_value(data <- 32); } #endif -- cgit v0.12