File nut/dev/hxcodec.c

References Functions: HelixClose() nut/dev/hxcodec.c
  HelixIOCtl() nut/dev/hxcodec.c
  HelixInit() nut/dev/hxcodec.c
  HelixOpen() nut/dev/hxcodec.c
  HelixWrite() nut/dev/hxcodec.c
  HelixWrite_P() nut/dev/hxcodec.c
References Variables: dcb nut/dev/hxcodec.c

Included Files


Preprocessor definitions

#define NUT_THREAD_HXCODEC0STACK 768

#define HXCODEC0_MAX_OUTPUT_BUFSIZ 393216

#define DAC_OUTPUT_RATE 8000

#define MP3_BUFSIZ

#define HXREQ_PLAY 0x00000001

#define HXREQ_CANCEL 0x00000002

#define HXREQ_VOLUPD 0x00000004

#define HXREQ_BEEP 0x00000008


Typedef HXDCB

typedef struct _HXDCB HXDCB
struct _HXDCB  
   {  
      int dcb_pbstat;  
      uint32_t dcb_scmd;  
      int dcb_rvol;  
      int dcb_lvol;  
      uint32_t dcb_pbwlo;  
      uint32_t dcb_pbwhi;  
      uint32_t dcb_wtmo;  
      HANDLE dcb_bufque;  
      HANDLE dcb_feedme;  
   }  

Typedef MP3PLAYERINFO

typedef struct _MP3PLAYERINFO MP3PLAYERINFO
struct _MP3PLAYERINFO  
   {  
      HMP3Decoder mpi_mp3dec;  
      MP3FrameInfo mpi_frameinfo;  
   }  

Global Variable devHelixCodec

NUTDEVICE devHelixCodec
Visible in:   nut/dev/hxcodec.c

Local Variables

dcb
static HXDCB dcb
Used in:   nut/dev/hxcodec.c
  HelixInit()  

mpi
static MP3PLAYERINFO mpi

Used in: DecodeFrame()  
  HelixClose()  
  HelixOpen()  

pi_pcmbuf
static short pi_pcmbuf[2*2*576]

Used in: DecodeFrame()  

first_frame
static int first_frame

Used in: DecodeFrame()  
  HelixOpen()  

samprate
static int samprate

Used in: DecodeFrame()  

Global Function FeederThread()

void FeederThread ( void* arg )
Prototyped in: nut/dev/hxcodec.c
Calls: DecodeFrame() nut/dev/hxcodec.c
  HelixPlayerSetVolume() nut/dev/hxcodec.c
  free() nut/crt/malloc.c
  malloc() nut/crt/malloc.c
  memcpy() nut/c/string/memcpy.c
  NutEventPost(), NutEventWait(), NutSegBufReadLast(), NutSegBufReadRequest(), NutSegBufReset(), NutSegBufUsed(), NutThreadSetPriority()
Used in: HelixInit() nut/dev/hxcodec.c

Local Function DecodeFrame()

static int DecodeFrame ( uint8_t* buf, int len )
Calls: MP3Decode() nut/contrib/hxmp3/mp3dec.c
  MP3FindSyncWord() nut/contrib/hxmp3/mp3dec.c
  MP3GetLastFrameInfo() nut/contrib/hxmp3/mp3dec.c
  Tlv320DacWrite() nut/arch/arm/dev/tlv320dac.c
Called by: FeederThread() nut/dev/hxcodec.c
References Variables: first_frame nut/dev/hxcodec.c
  mpi nut/dev/hxcodec.c
  pi_pcmbuf nut/dev/hxcodec.c
  samprate nut/dev/hxcodec.c

Local Function HelixClose()

static int HelixClose ( NUTFILE* nfp )
Calls: HelixPlayerFlush() nut/dev/hxcodec.c
  MP3FreeDecoder() nut/contrib/hxmp3/mp3dec.c
  free() nut/crt/malloc.c
Used in:   nut/dev/hxcodec.c
References Variables: mpi nut/dev/hxcodec.c

Local Function HelixIOCtl()

static int HelixIOCtl ( NUTDEVICE* dev, int req, void* conf )
Calls: HelixPlayerBufferInit() nut/dev/hxcodec.c
  NutEventPost(), NutSegBufAvailable(), NutSegBufUsed()
Called by: HelixPlayerFlush() nut/dev/hxcodec.c
Used in:   nut/dev/hxcodec.c

Local Function HelixInit()

static int HelixInit ( NUTDEVICE* dev )
Calls: HelixPlayerBufferInit() nut/dev/hxcodec.c
  NutThreadCreate() nut/arch/cm3/os/context.c
  Tlv320DacInit() nut/arch/arm/dev/tlv320dac.c
  Tlv320DacSetVolume() nut/arch/arm/dev/tlv320dac.c
  NutHeapRootAvailable()
Used in:   nut/dev/hxcodec.c
References Functions: FeederThread() nut/dev/hxcodec.c
References Variables: dcb nut/dev/hxcodec.c

Local Function HelixOpen()

static NUTFILE* HelixOpen ( NUTDEVICE* dev, const char* name, int mode, int acc )
Calls: MP3InitDecoder() nut/contrib/hxmp3/mp3dec.c
  malloc() nut/crt/malloc.c
  NutSegBufReset(), NutSleep()
Used in:   nut/dev/hxcodec.c
References Variables: first_frame nut/dev/hxcodec.c
  mpi nut/dev/hxcodec.c

Local Function HelixPlayerBufferInit()

static int HelixPlayerBufferInit ( NUTDEVICE* dev, uint32_t size )
Calls: NutSegBufAvailable(), NutSegBufInit()
Called by: HelixIOCtl() nut/dev/hxcodec.c
  HelixInit() nut/dev/hxcodec.c

Local Function HelixPlayerFlush()

static int HelixPlayerFlush ( NUTDEVICE* dev, uint32_t tmo )
Calls: HelixIOCtl() nut/dev/hxcodec.c
  Tlv320DacFlush() nut/arch/arm/dev/tlv320dac.c
  NutEventWait(), NutSegBufUsed()
Called by: HelixClose() nut/dev/hxcodec.c
  HelixWrite() nut/dev/hxcodec.c

Local Function HelixPlayerSetVolume()

static int HelixPlayerSetVolume ( NUTDEVICE* dev, int left, int right )
Calls: Tlv320DacSetVolume() nut/arch/arm/dev/tlv320dac.c
Called by: FeederThread() nut/dev/hxcodec.c

Local Function HelixWrite()

static int HelixWrite ( NUTFILE* nfp, const void* data, int len )
Calls: HelixPlayerFlush() nut/dev/hxcodec.c
  memcpy() nut/c/string/memcpy.c
  NutEventPost(), NutEventWait(), NutSegBufWriteLast(), NutSegBufWriteRequest()
Used in:   nut/dev/hxcodec.c

Local Function HelixWrite_P()

static int HelixWrite_P ( NUTFILE* nfp, const char* buffer, int len )
Used in:   nut/dev/hxcodec.c