|
Data Structures |
| struct | liso_convertor_t |
| | Audio format convertor info. More...
|
| struct | liso_frag_t |
| | A fragment. More...
|
| struct | liso_frags_t |
| | Fragments. More...
|
| struct | liso_subdev_t |
| | Sub-Device info. More...
|
| struct | _liso_t |
| | lisodsp info structure. More...
|
Sub-device status bits. |
|
#define | LISO_DEVICE_USED 0 |
| | 0:device-used 1:device-free
|
|
#define | LISO_DEVICE_IDLE 1 |
| | 0:device-ready 1:device-idle
|
|
#define | LISO_DEVICE_DEAD 2 |
| | 0:device-ok 1:device-dead
|
|
#define | LISO_DEVICE_SLEEP 3 |
| | 0:device-awake 1:device-asleep
|
|
#define | LISO_DEVICE_ALERT 4 |
| | 0:No Alert 1:Alert (really awaited)
|
|
#define | LISO_DEVICE_USED_MSK (1<<LISO_DEVICE_USED) |
| | Useful bit mask combinaisons.
|
|
#define | LISO_DEVICE_IDLE_MSK (1<<LISO_DEVICE_IDLE) |
| | 0:device-used 1:device-free
|
|
#define | LISO_DEVICE_DEAD_MSK (1<<LISO_DEVICE_DEAD) |
| | 0:device-used 1:device-free
|
|
#define | LISO_DEVICE_UD_MSK (LISO_DEVICE_USED_MSK|LISO_DEVICE_DEAD_MSK) |
| | 0:device-used 1:device-free
|
|
#define | LISO_DEVICE_UID_MSK (LISO_DEVICE_IDLE_MSK|LISO_DEVICE_UD_MSK) |
| | 0:device-used 1:device-free
|
PCM convertor functions |
| const liso_convertor_t * | liso_pcmconv_get (int fmt) |
| | Get convertor info for a given format.
|
| char * | liso_pcmconv_desc (const liso_convertor_t *convertor, liso_fmt_desc_t buf, int sampling, int stereo) |
| | Make a description string.
|
| int | liso_pcmconv_get_fmts (void) |
| | Get supported audio format.
|
Fragment functions |
|
void | liso_frag_mix (liso_frag_t *const d, const liso_frag_t *const s) |
| | Mix two fragments.
|
Setup functions |
| void | liso_subdev_preinit (liso_subdev_t *const sd, liso_t *const lisodsp, int chn) |
| | Pre-init sub-device.
|
| int | liso_subdev_init (liso_subdev_t *const sd) |
| | Init sub-device.
|
| int | liso_subdev_set_format (liso_subdev_t *const sd) |
| | Commit requested format.
|
| void | liso_subdev_set_cur_frag (liso_subdev_t *const sd) |
| | Copy current format information for the next frag to process.
|
Status functions. |
| const char * | liso_subdev_status (const liso_subdev_t *const sd) |
| | Get device status description string.
|
| void | liso_subdev_asleep (liso_subdev_t *const sd) |
| | Make sub-device sleep.
|
| void | liso_subdev_wakeup_partner (liso_subdev_t *const sd) |
| | Wake up partner sub-device(s).
|
| int | liso_subdev_has_sleepy_partner (liso_subdev_t *const sd) |
| | Test for partner to wake up.
|
| int | liso_subdev_is_reader (const liso_subdev_t *const sd) |
| | Test if sub-device is a reader.
|
| int | liso_subdev_is_writer (const liso_subdev_t *const sd) |
| | Test if sub-device is a writer.
|
| int | liso_subdev_is_active (const liso_subdev_t *const sd) |
| | Test if sub-device is active.
|
| int | liso_subdev_is_valid (const liso_subdev_t *const sd) |
| | Test if sub-device is valid.
|
Locking functions |
| int | liso_subdev_lock (liso_subdev_t *sd) |
| | Lock sub-device.
|
| int | liso_subdev_trylock (liso_subdev_t *sd) |
| | Try lock sub-device.
|
| int | liso_subdev_xlock (liso_subdev_t *sd, const int nonblock) |
| | Extended lock of sub-device.
|
| void | liso_subdev_unlock (liso_subdev_t *sd) |
| | Unlock sub-device.
|
Filesystem functions |
| int | liso_writer_open (struct inode *inode, struct file *filp) |
| | Open file operation for writer sub-devices.
|
| int | liso_reader_open (struct inode *inode, struct file *filp) |
| | Open file operation for reader sub-devices.
|
| int | liso_subdev_release (struct inode *inode, struct file *filp) |
| | Release sub-device.
|
| int | liso_subdev_ioctl (struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) |
| | ioctl file operation for sub-devices.
|
| unsigned int | liso_subdevice_poll (struct file *filp, poll_table *wait) |
| | Poll file operation for sub-devices.
|
Synchronize functions |
| int | liso_subdev_wait_idx (liso_subdev_t *const sd, const int idx) |
| | Wait until reader reach a given idx.
|
| int | liso_subdev_synchronize (liso_subdev_t *const sd, const int lock) |
| | Synchromize writer device with the reader.
|
| void | liso_writer_synchronize (liso_subdev_t *const writer) |
| | Synchronize a writer device.
|
| void | liso_reader_synchronize (liso_subdev_t *const reader) |
| | Synchronize a reader device.
|
| int | liso_writer_flush (liso_subdev_t *const writer) |
| | Flush writer buffer.
|
Init functions |
|
int | liso_device_init (liso_t *lisodsp) |
| | Init device driver.
|
|
int | liso_device_shutdown (liso_t *lisodsp) |
| | Shutdown device driver.
|
Wake up functions |
| void | liso_wakeup_writers (liso_t *lisodsp) |
| | Wake up sleepy writers.
|
| void | liso_wakeup_reader (liso_t *lisodsp) |
| | Wake up sleepy reader.
|
Timer functions |
| start/stop device timer.
The timer is used to simulate the device reader by flushing out PCM silently at a given rate. It allows user process to keep time synchronizing themself with the write() function by assuming it is blocking. The PCM-fragment size depends directly on Linux timer granularity (as defined by the HZ constant in linux source) in a manner that the time to play a fragment must be a multiple of the timer period (1/HZ second).
|
| int | liso_timer_start (liso_t *lisodsp, unsigned int offset, void(*task)(void *)) |
| | Start the timer.
|
| int | liso_timer_stop (liso_t *lisodsp) |
| | Stop the timer.
|
ProcFS functions |
| int | liso_proc_init (liso_t *lisodsp) |
| | Init lisodsp procfs support.
|
| int | liso_proc_shutdown (liso_t *lisodsp) |
| | Shutdown lisodsp procfs support.
|
Defines |
| #define | LISO_MAX_SUBDEV (sizeof(int)<<3) |
| | Maximum number of sub-device.
|
| #define | LISO_MAX_CHANNEL (LISO_MAX_SUBDEV-1) |
| | Maximum number of mixed channel (device writer).
|
|
#define | LISO_DEF_CHANNEL 8 |
| | Default maximum number of mixed channel.
|
|
#define | LISO_RD_CHANNEL LISO_MAX_CHANNEL |
| | Channel id reserved for reader.
|
|
#define | LISO_RD_MASK (1<<LISO_RD_CHANNEL) |
| | Bit mask for reader.
|
|
#define | LISO_DEF_SAMPLING 44100 |
| | Maximal sampling rate.
|
|
#define | LISO_MAX_SAMPLING 48000 |
| | Maximal sampling rate.
|
|
#define | LISO_MIN_SAMPLING (LISO_MAX_SAMPLING/10) |
| | Minimal sampling rate.
|
|
#define | LISO_DEF_FORMAT_STR "S2WN" |
| | Default format string ([S]igned [2]-channel [W]ord [N]ative-endian).
|
| #define | LISO_MIXER_FIX 14 |
| | Mixer scale factor fixed point bit.
|
Typedefs |
|
typedef _liso_t | liso_t |
| typedef void(* | liso_topcm_t )(int *d, const void *s, int n) |
| | To internal PCM conversion.
|
| typedef void(* | liso_tofmt_t )(void *d, const int *s, const int f, int n) |
| | From internal PCM conversion.
|
|
typedef char | liso_fmt_desc_t [24] |
| | Format description string.
|
Functions |
| int | liso_device_update_active (liso_t *const lisodsp) |
| | Check active status for all sub-devices.
|
| int | liso_device_active_writers (const liso_t *const lisodsp) |
| | Get current active writers.
|
Variables |
| liso_t | g_lisodsp |
| | The global lisodsp object.
|
| int | liso_volume [] |
| | Attenuation factors.
|