aboutsummaryrefslogtreecommitdiff
path: root/src/pcm.c
AgeCommit message (Collapse)Author
2019-01-08pcm: Do not set values after control/status mmapRicardo Biehl Pasquali
It's not necessary to send appl_ptr or avail_min to the kernel here. In prepare action, called later in pcm_open(), appl_ptr becomes zero. avail_min is already defined in software parameters. Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
2019-01-08pcm: Get appl_ptr and avail_min after prepareRicardo Biehl Pasquali
appl_ptr becomes zero in prepare action. avail_min is the same as when it was set in software parameters. Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
2019-01-08pcm: Remove 'prepared' variable from pcm structureRicardo Biehl Pasquali
It is not needed. As the pcm structure is opaque to user it can be safely removed. Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
2019-01-08pcm: Remove prepare before startRicardo Biehl Pasquali
Prepare is done in pcm_open(). Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
2019-01-08pcm: Remove start before readRicardo Biehl Pasquali
Start is done by kernel when start_threshold or more frames are requested. Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
2019-01-08pcm: Prepare after overrunRicardo Biehl Pasquali
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
2019-01-08pcm: Remove code assuming start after writeRicardo Biehl Pasquali
The state cannot be assumed as RUNNING after a write because start_threshold may not have elapsed. Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
2019-01-08pcm: Move prepare action to xrun handlingRicardo Biehl Pasquali
Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
2019-01-08pcm: Do prepare action in pcm_open()Ricardo Biehl Pasquali
This eliminates the need for prepare in transfer functions and pcm_start(). Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
2018-11-28Added ifndef around macrosTaylor Holberton
2018-11-28Checking for definition of __bitwise, __force, __userTaylor Holberton
2018-07-17Fixed pcm_start when pcm is linked to other pcm deviceMiguel Gaio
When pcm device is linked to other pcm device, the start call may be triggered by other pcm device. Handle this condition by checing pcm state before start call. Signed-off-by: Miguel Gaio <mgaio35@gmail.com>
2018-07-17Corrected pcm_sync_ptr() on dma mmap coherent architectureMiguel Gaio
It is valid to get null sync_ptr on dma mmap coherent architecture. In this case pcm_sync_ptr() is a nop. Signed-off-by: Miguel Gaio <mgaio35@gmail.com>
2018-04-10Fix pcm_writei return value if pcm is in not running state.Miguel GAIO
As per comment, on success, pcm_writei returns the number of frames written. Fix the case of pcm not running. Signed-off-by: Miguel GAIO <mgaio35@gmail.com>
2017-10-12added PCM_NONBLOCK macroTaylor Holberton
2017-04-10adding bounds check only when neededTaylor Holberton
2017-04-10moved code in pcm_open() to pcm_set_config()Taylor Holberton
2017-04-10removed tab charactersTaylor Holberton
2017-04-10added pcm_get_config()Taylor Holberton
2017-04-06simplified pcm_read() and pcm_write()Taylor Holberton
2017-04-06checking limits of frame countsTaylor Holberton
2017-04-06removed debug statementTaylor Holberton
2017-01-13added doc on pcm_open and null checking pcm_is_readyTaylor Holberton
2016-12-24Added pcm_open_by_name()Taylor Holberton
This function parses a PCM name similar to the ALSA library. This is done so that the differences between alsa-lib and tinyalsa are a little more transparent to the user.
2016-12-04Added pcm_link and pcm_unlink functionsTaylor Holberton
The link function is necessary for time sychronization between multiple PCMs.
2016-12-01renamed parameter in docTaylor Holberton
2016-12-01Using frame counts in pcm_readi and pcm_writeiTaylor Holberton
pcm_readi and pcm_writei now use a frame count to specify the buffer length instead of using a byte count.
2016-12-01Added pcm_readi and pcm_writei functionsTaylor Holberton
Added these functions to replace pcm_read and pcm_write, which don't return the number of frames actually transferred. On GCC-like compilers, pcm_read and pcm_write have been marked as deprecated On doxygen documentation, they have been marked as deprecated as well.
2016-12-01Added format related getters for PCMTaylor Holberton
Added functions: - pcm_get_channels - pcm_get_rate - pcm_get_format These were added since they're required for iterating samples and frames.
2016-12-01Added const specifier in several functionsTaylor Holberton
pcm_get_file_descriptor pcm_get_error pcm_get_buffer_size pcm_frames_to_bytes pcm_bytes_to_frames pcm_get_subdevice
2016-12-01added const specifier in function, pcm_is_readyTaylor Holberton
2016-12-01Added const specifier in pcm_openTaylor Holberton
Added const specifier to the struct pcm_config argument. Changed the way default values of the config structure are set and accessed. They're accessed through the pointer from the argument list and set through the pointer in the pcm structure.
2016-12-01Added const specifier in several functionsTaylor Holberton
Functions changed are: - pcm_params_get_mask - pcm_params_get_min - pcm_params_get_max - param_get_mask - param_get_min - param_get_max
2016-11-23added parameter docTaylor Holberton
2016-11-23added some documentationTaylor Holberton
2016-11-22corrected error handling in pcm_sync_ptr()Taylor Holberton
2016-11-19added some documentationTaylor Holberton
2016-11-19renamed doxygen group, tinyalsa-pcm to libtinyalsa-pcmTaylor Holberton
2016-11-18initializing 'result' from transfer structTaylor Holberton
2016-10-14Merge branch 'master' of https://github.com/tinyalsa/tinyalsaTaylor Holberton
2016-10-14Added support for default configTaylor Holberton
2016-10-05included only necessary headersRicardo Biehl Pasquali
If users want to use only pcm.c or mixer.c they can. It's not necessary to include tinyalsa/asoundlib.h because mixer.c doesn't use pcm.h and pcm.c doesn't use mixer.h.
2016-10-01added basic pcm documentationTaylor Holberton
2016-10-01put source files into src dirTaylor Holberton