From 4e61e70814bf42cba4440a818b6a7c97834a6fe4 Mon Sep 17 00:00:00 2001 From: Oliver Schinagl Date: Wed, 23 Feb 2005 11:53:40 +0000 Subject: added audio player functionality --- Graphic_Equalizer/include/audio.hch | 10 +++- Graphic_Equalizer/include/configuration.hch | 1 + Graphic_Equalizer/include/display.hch | 1 + Graphic_Equalizer/include/display_shared.hch | 11 ++++- Graphic_Equalizer/include/eventhandler_shared.hch | 11 ++++- Graphic_Equalizer/include/smartmedia.hch | 8 ++- Graphic_Equalizer/include/smartmedia_shared.hch | 60 ++++++++++++++--------- 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" -- cgit v0.12