summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Schinagl <oliver@schinagl.nl>2005-02-23 11:53:40 (GMT)
committerOliver Schinagl <oliver@schinagl.nl>2005-02-23 11:53:40 (GMT)
commit4e61e70814bf42cba4440a818b6a7c97834a6fe4 (patch)
tree471c9bf65629ded51f201ab65fdbada1398b0e1c
parent230a2a50f31295c0f8aa9b04dc7f7b10d163ee2e (diff)
downloadTASS-4e61e70814bf42cba4440a818b6a7c97834a6fe4.zip
TASS-4e61e70814bf42cba4440a818b6a7c97834a6fe4.tar.gz
TASS-4e61e70814bf42cba4440a818b6a7c97834a6fe4.tar.bz2
added audio player functionality
-rw-r--r--Graphic_Equalizer/include/audio.hch10
-rw-r--r--Graphic_Equalizer/include/configuration.hch1
-rw-r--r--Graphic_Equalizer/include/display.hch1
-rw-r--r--Graphic_Equalizer/include/display_shared.hch11
-rw-r--r--Graphic_Equalizer/include/eventhandler_shared.hch11
-rw-r--r--Graphic_Equalizer/include/smartmedia.hch8
-rw-r--r--Graphic_Equalizer/include/smartmedia_shared.hch60
7 files changed, 73 insertions, 29 deletions
diff --git a/Graphic_Equalizer/include/audio.hch b/Graphic_Equalizer/include/audio.hch
index 051e8fb..3c21caf 100644
--- a/Graphic_Equalizer/include/audio.hch
+++ b/Graphic_Equalizer/include/audio.hch
@@ -32,13 +32,19 @@ typedef struct {
rom unsigned 6 read[256];
} ifft_info with { block = "BlockRAM"};
unsigned 4 *equalizer_levels_ptr;
+ unsigned 3 player_state;
+ unsigned 1 player_mode; //0 = repeat_all, 1 = repeat_track
unsigned 1 display_log;
unsigned 1 saturated;
- unsigned 1 play;
} audiodata_t;
-
+#define PLAYING 0x00
+#define PAUSED 0x01
+#define STOPPED 0x02
+#define NEXT_TRACK 0x03
+#define PREV_TRACK 0x04
+#define PLAYER_DISABLED 0x05
/*
* States used to indicate wether audio data is sampled.
diff --git a/Graphic_Equalizer/include/configuration.hch b/Graphic_Equalizer/include/configuration.hch
index c9e5c23..8bc2377 100644
--- a/Graphic_Equalizer/include/configuration.hch
+++ b/Graphic_Equalizer/include/configuration.hch
@@ -35,6 +35,7 @@
+
/*
* FFT specific. TODO: Clean Up!
*/
diff --git a/Graphic_Equalizer/include/display.hch b/Graphic_Equalizer/include/display.hch
index ee994eb..9b0efe8 100644
--- a/Graphic_Equalizer/include/display.hch
+++ b/Graphic_Equalizer/include/display.hch
@@ -39,6 +39,7 @@
#define MASK_AREA_BACKGROUND 0x00
#define MASK_AREA_ABOUT_TOP 0x01
#define MASK_AREA_ABOUT_BOTTOM 0x02
+#define MASK_AREA_AUDIO_PLAYER 0x03
diff --git a/Graphic_Equalizer/include/display_shared.hch b/Graphic_Equalizer/include/display_shared.hch
index b9bf0d8..294a9e2 100644
--- a/Graphic_Equalizer/include/display_shared.hch
+++ b/Graphic_Equalizer/include/display_shared.hch
@@ -85,7 +85,16 @@ typedef struct {
#define BUTTON_EXIT_TO_SKIN 0x1d /*!< Button that exits the current screen and returns to the normal 'skin' screen */
#define AREA_INPUTGAIN_YAXIS 0x1e /*!< Input Gain control on the Y plane. */
-#define BUTTON_PLAY 0x1f /*!< Button to play built in audio. */
+
+#define AREA_AUDIO_PLAYER 0x1f /*!< Background of audio player area */
+#define BUTTON_PREV_TRACK 0x20 /*!< Button to skip to previous track in built in audio. */
+#define BUTTON_PLAY 0x21 /*!< Button to play built in audio. */
+#define BUTTON_PAUSE 0x22 /*!< Button to pause built in audio. */
+#define BUTTON_STOP 0x23 /*!< Button to stop built in audio. */
+#define BUTTON_NEXT_TRACK 0x24 /*!< Button to skip to next track in built in audio. */
+#define BUTTON_REPEAT 0x25 /*!< Button to toggle repeat all/track in built in audio. */
+
+#define BUTTON_INPUT_SELECT 0x26 /*!< Button to toggle between audio inputs*/
#define AREA_MASK_END 0x7e /*!< Area in mask determining the end of the area beeing drawn */
diff --git a/Graphic_Equalizer/include/eventhandler_shared.hch b/Graphic_Equalizer/include/eventhandler_shared.hch
index 98c2eea..bddf4c6 100644
--- a/Graphic_Equalizer/include/eventhandler_shared.hch
+++ b/Graphic_Equalizer/include/eventhandler_shared.hch
@@ -34,10 +34,12 @@ typedef struct {
unsigned 10 active_preset;
unsigned 8 mask;
unsigned 5 image, image_about;
- unsigned 4 mode;
+ unsigned 5 mode;
unsigned 4 equalizer_mode;
unsigned 1 button_demo_state;
unsigned 1 button_reset_state;
+ unsigned 1 next_track_state;
+ unsigned 1 prev_track_state;
unsigned 1 locked_gain;
unsigned 1 locked_display;
unsigned 1 saturated;
@@ -55,13 +57,18 @@ typedef struct {
#define IMAGE_HELP 0x07
#define IMAGE_ABOUT 0x08
#define IMAGE_GRAPH 0x09
+#define IMAGE_AUDIO_PLAYER 0x0a
#define EQUALIZERMODE_FULL 0x05
#define EQUALIZERMODE_HALF 0x03
#define EQUALIZERMODE_PRECISE 0x00
-
+#define EVENTS_MODE_SKIN 0x01
+#define EVENTS_MODE_HELP 0x02
+#define EVENTS_MODE_ABOUT 0x04
+#define EVENTS_MODE_GRAPH 0x08
+#define EVENTS_MODE_AUDIO_PLAYER 0x10
/*
* Volume Control lookuptable.
diff --git a/Graphic_Equalizer/include/smartmedia.hch b/Graphic_Equalizer/include/smartmedia.hch
index d05c6d7..b183b9d 100644
--- a/Graphic_Equalizer/include/smartmedia.hch
+++ b/Graphic_Equalizer/include/smartmedia.hch
@@ -44,6 +44,7 @@
#define STAGE_LOAD_TOP_CELOXICA 0x08
#define STAGE_LOAD_TOP_DETAILS 0x09
#define STAGE_LOAD_ABOUT_BOTTOM 0x0a
+#define STAGE_LOAD_AUDIO_PLAYER 0x0b
@@ -69,6 +70,11 @@ inline unsigned 1 smartmedia_init(void);
*/
unsigned 1 smartmedia_loaddata(skindata_t *skindata);
+
+void change_track(unsigned 2 track_index);
+
+void empty_buffers(signed 18 *buffer, unsigned 7 buffer_size);
+
/*
* This function loads samplecount samples from the smartmedia.
*/
@@ -83,7 +89,7 @@ void smartmedia_read_bytes(unsigned 8 *data, unsigned 8 bytecount);
/*
* Generic funtion to set the read address at the SmartMedia card
*/
-void smartmedia_set_read_address(unsigned 20 address);
+void smartmedia_set_read_address(unsigned 27 address);
#else
#error "ERROR file smartmedia.hch multiple times included"
diff --git a/Graphic_Equalizer/include/smartmedia_shared.hch b/Graphic_Equalizer/include/smartmedia_shared.hch
index c4100a8..0b1790f 100644
--- a/Graphic_Equalizer/include/smartmedia_shared.hch
+++ b/Graphic_Equalizer/include/smartmedia_shared.hch
@@ -26,21 +26,25 @@
* in anyway! For example, 640 pixels times 480 pixels is 307200 (4b000) pixels
* total.
*/
-#define SIZE_SKIN 0x004afff /* Number of pixels */
+#define SIZE_SKIN 0x004afff /* Number of pixels */
-#define SIZE_HELP 0x004afff /* Number of pixels */
+#define SIZE_HELP 0x004afff /* Number of pixels */
-#define SIZE_GRAPH 0x004afff /* Number of pixels */
+#define SIZE_GRAPH 0x004afff /* Number of pixels */
-#define SIZE_ABOUT_TOP 0x000e989 /* Number of pixels */
+#define SIZE_ABOUT_TOP 0x000e989 /* Number of pixels */
-#define SIZE_ABOUT_BOTTOM 0x000890b /* Number of pixels */
+#define SIZE_ABOUT_BOTTOM 0x000890b /* Number of pixels */
-#define SIZE_AUDIO 0x108D500 /* Number of bytes */
+#define SIZE_AUDIO_PLAYER_BUTTON 0x0001740 /* Number of pixels */
-#define SIZE_PRESET 384 /* Number of elements */
+#define SIZE_TRACK1 0x108D500 /* Number of bytes */
+#define SIZE_TRACK2 0x1422300 /* Number of bytes */
+#define SIZE_TRACK3 0x108D500 /* Number of bytes */
+#define SIZE_PRESET 384 /* Number of elements */
+#define NUMBER_OF_TRACKS 3 /* Number of audio tracks*/
/*
* Here we setup the start and end address for the various components.
@@ -48,23 +52,27 @@
#define SMARTMEDIA_ADDRESS_OFFSET 0x3a4000 /* Block: 233 */
-#define SMARTMEDIA_ADDRESS_CONFIGURATION (SMARTMEDIA_ADDRESS_OFFSET +0x000000) /* Block: 133 */
-#define SMARTMEDIA_ADDRESS_PRESET_DEMO_START (SMARTMEDIA_ADDRESS_OFFSET +0x004000) /* Block: 134 */
-#define SMARTMEDIA_ADDRESS_PRESET_RESET_START (SMARTMEDIA_ADDRESS_OFFSET +0x008000) /* Block: 135 */
+#define SMARTMEDIA_ADDRESS_CONFIGURATION (SMARTMEDIA_ADDRESS_OFFSET +0x000000) /* Block: 233 */
+#define SMARTMEDIA_ADDRESS_PRESET_DEMO_START (SMARTMEDIA_ADDRESS_OFFSET +0x004000) /* Block: 234 */
+#define SMARTMEDIA_ADDRESS_PRESET_RESET_START (SMARTMEDIA_ADDRESS_OFFSET +0x008000) /* Block: 235 */
-#define SMARTMEDIA_ADDRESS_SKIN_START (SMARTMEDIA_ADDRESS_OFFSET +0x00c000) /* Block: 136 */
-#define SMARTMEDIA_ADDRESS_HELP_START (SMARTMEDIA_ADDRESS_OFFSET +0x13c000) /* Block: 212 */
-#define SMARTMEDIA_ADDRESS_GRAPH_START (SMARTMEDIA_ADDRESS_OFFSET +0x26c000) /* Block: 288 */
+#define SMARTMEDIA_ADDRESS_SKIN_START (SMARTMEDIA_ADDRESS_OFFSET +0x00c000) /* Block: 236 */
+#define SMARTMEDIA_ADDRESS_HELP_START (SMARTMEDIA_ADDRESS_OFFSET +0x13c000) /* Block: 312 */
+#define SMARTMEDIA_ADDRESS_GRAPH_START (SMARTMEDIA_ADDRESS_OFFSET +0x26c000) /* Block: 488 */
-#define SMARTMEDIA_ADDRESS_TOP_FONTYS_START (SMARTMEDIA_ADDRESS_OFFSET +0x2b8000) /* Block: 307 */
-#define SMARTMEDIA_ADDRESS_TOP_TASS_START (SMARTMEDIA_ADDRESS_OFFSET +0x2f8000) /* Block: 323 */
-#define SMARTMEDIA_ADDRESS_TOP_TRANSFER_START (SMARTMEDIA_ADDRESS_OFFSET +0x338000) /* Block: 339 */
-#define SMARTMEDIA_ADDRESS_TOP_CELOXICA_START (SMARTMEDIA_ADDRESS_OFFSET +0x378000) /* Block: 355 */
-#define SMARTMEDIA_ADDRESS_TOP_DETAILS_START (SMARTMEDIA_ADDRESS_OFFSET +0x3b8000) /* Block: 371 */
+#define SMARTMEDIA_ADDRESS_TOP_FONTYS_START (SMARTMEDIA_ADDRESS_OFFSET +0x2b8000) /* Block: 407 */
+#define SMARTMEDIA_ADDRESS_TOP_TASS_START (SMARTMEDIA_ADDRESS_OFFSET +0x2f8000) /* Block: 423 */
+#define SMARTMEDIA_ADDRESS_TOP_TRANSFER_START (SMARTMEDIA_ADDRESS_OFFSET +0x338000) /* Block: 439 */
+#define SMARTMEDIA_ADDRESS_TOP_CELOXICA_START (SMARTMEDIA_ADDRESS_OFFSET +0x378000) /* Block: 455 */
+#define SMARTMEDIA_ADDRESS_TOP_DETAILS_START (SMARTMEDIA_ADDRESS_OFFSET +0x3b8000) /* Block: 471 */
-#define SMARTMEDIA_ADDRESS_BOTTOM_START (SMARTMEDIA_ADDRESS_OFFSET +0x3f8000) /* Block: 387 */
+#define SMARTMEDIA_ADDRESS_BOTTOM_START (SMARTMEDIA_ADDRESS_OFFSET +0x3f8000) /* Block: 487 */
-#define SMARTMEDIA_ADDRESS_AUDIO_START (SMARTMEDIA_ADDRESS_OFFSET +0x41C000) /* Block: 396 */
+#define SMARTMEDIA_ADDRESS_AUDIO_PLAYER_START (SMARTMEDIA_ADDRESS_OFFSET +0x41C000) /* Block: 496 */
+
+#define SMARTMEDIA_ADDRESS_TRACK1_START (SMARTMEDIA_ADDRESS_OFFSET +0x42C000) /* Block: 500 */
+#define SMARTMEDIA_ADDRESS_TRACK2_START (SMARTMEDIA_ADDRESS_OFFSET +0x14BC000) /* Block: 1560 */
+#define SMARTMEDIA_ADDRESS_TRACK3_START (SMARTMEDIA_ADDRESS_OFFSET +0x42C000) /* Block: 500 */
#define SMARTMEDIA_ADDRESS_PRESET_DEMO_END (SMARTMEDIA_ADDRESS_PRESET_DEMO_START +(SIZE_PRESET))
@@ -82,7 +90,11 @@
#define SMARTMEDIA_ADDRESS_BOTTOM_END (SMARTMEDIA_ADDRESS_BOTTOM_START +(SIZE_ABOUT_BOTTOM <<2))
-#define SMARTMEDIA_ADDRESS_AUDIO_END (SMARTMEDIA_ADDRESS_AUDIO_START +SIZE_AUDIO)
+#define SMARTMEDIA_ADDRESS_AUDIO_PLAYER_END (SMARTMEDIA_ADDRESS_AUDIO_PLAYER_START +(SIZE_AUDIO_PLAYER_BUTTON <<2))
+
+#define SMARTMEDIA_ADDRESS_TRACK1_END (SMARTMEDIA_ADDRESS_TRACK1_START +SIZE_TRACK1)
+#define SMARTMEDIA_ADDRESS_TRACK2_END (SMARTMEDIA_ADDRESS_TRACK2_START +SIZE_TRACK2)
+#define SMARTMEDIA_ADDRESS_TRACK3_END (SMARTMEDIA_ADDRESS_TRACK3_START +SIZE_TRACK3)
#define INDEX_PRESET_DEMO_START 0
#define INDEX_PRESET_DEMO_END (INDEX_PRESET_DEMO_START +SIZE_PRESET)
@@ -110,10 +122,12 @@
#define ADDRESS_ABOUT_TOP_DETAILS_START 0x0e3228
#define ADDRESS_ABOUT_TOP_DETAILS_END (ADDRESS_ABOUT_TOP_DETAILS_START +SIZE_ABOUT_TOP)
-//#define ADDRESS_ABOUT_BOTTOM_START 0x0e3228
-#define ADDRESS_ABOUT_BOTTOM_START 0x0f5000
+#define ADDRESS_ABOUT_BOTTOM_START 0x0e3228
#define ADDRESS_ABOUT_BOTTOM_END (ADDRESS_ABOUT_BOTTOM_START +SIZE_ABOUT_BOTTOM)
+#define ADDRESS_AUDIO_PLAYER_START 0x0ebb34
+#define ADDRESS_AUDIO_PLAYER_END (ADDRESS_AUDIO_PLAYER_START +SIZE_AUDIO_PLAYER_BUTTON)
+
#else
#error "ERROR file smartmedia_shared.hch multiple times included"