Commit graph

54 commits

Author SHA1 Message Date
Takashi Iwai
f47763d2c1 ump: Add initial support
This patch adds the initial support for UMP rawmidi access.
It's merely the wrapper for the standard rawmidi to access to the UMP
rawmidi device.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-06-06 15:13:27 +02:00
Jaroslav Kysela
d3c5e9e009 rawmidi: rename enum snd_rawmidi_framing to snd_rawmidi_read_mode
We hide the internal data transfers using the data frames. Rename
the snd_rawmidi_framing enum to snd_rawmidi_read_mode to make
API more straight and understandable.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-28 08:40:20 +02:00
Jaroslav Kysela
5a5c2953ea rawmidi: define more abstract API for the timestamp reads
The frame structure is a bit internal thing for the kernel
data transfer implementation. Introduce snd_rawmidi_tread()
function which is straight for the application usage and hides
the framing data transfers (kernel space API).

The current code implements the read cache and does the merging
of the frame reads with the similar timestamps (opposite
to the kernel data split for big chunks).

If the application wants to use super-duper-lighting-fast reads,
the snd_rawmidi_read() may be used, but the structure must be
defined on it's own, because this mechanism is not preferred
and unsupported.

BugLink: https://github.com/alsa-project/alsa-lib/issues/172
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-28 08:40:20 +02:00
Takashi Iwai
754c696aef rawmidi: Use the standard types for snd_rawmidi_framing_tstamp_t definition
Using the kernel-specific types like __u8 breaks the compilation of
applications.  Also we need the packed attribute.

Although we may want to move to an opaque type later, let's put the
workaround at first.

Fixes: https://github.com/alsa-project/alsa-lib/issues/172
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2021-08-24 10:40:14 +02:00
David Henningsson
95eb312fad rawmidi: Add rawmidi framing API
Optionally, incoming rawmidi bytes can be put inside a frame of type
snd_rawmidi_framing_tstamp_t.
The main current benefit is that can enable in-kernel timestamping of
incoming bytes, and that timestamp is likely to be more precise than
what userspace can offer.

Tstamp type framing requires a kernel >= 5.14 and a buffer size that
is a multiple of sizeof(snd_rawmidi_framing_tstamp_t). It is only
available on input streams.

Signed-off-by: David Henningsson <coding@diwic.se>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2021-08-20 08:46:26 +02:00
Jaroslav Kysela
5b9041bced Change FSF address (Franklin Street)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2017-11-14 14:29:26 +01:00
Takashi Iwai
68e5771a6f Remove assert from header files
Putting assert in the public macros isn't good idea at all.
Let's get rid of them.

Also, clean up snd*_alloca() functions to use a helper macro
instead of copy and paste.
2007-10-25 15:36:03 +02:00
Jaroslav Kysela
d25e281230 Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-15 10:24:55 +02:00
Clemens Ladisch
04c2de32c1 fix some file paths in comments
doxygen complains if the file name specified with \file does
not match the real file name, so fix it
2005-01-17 17:34:31 +00:00
Takashi Iwai
bffffeef45 - missing changes from virt to virtual rawmidi. 2003-08-06 14:46:33 +00:00
Takashi Iwai
f9a954fd6e added SND_RAWMIDI_TYPE_VIRTUAL. 2003-07-29 17:15:58 +00:00
Jaroslav Kysela
cf9e518d51 Timestamp update (struct timeval -> struct timespec). 2003-02-28 17:23:28 +00:00
Jaroslav Kysela
2ca5ace9cb More documentation changes (rawmidi, timer) 2002-02-11 18:11:16 +00:00
Takashi Iwai
6ce9436b13 removed comma from last element of enums. 2002-02-05 11:36:20 +00:00
Jaroslav Kysela
d57853a90a Added more informative comments to open mode flags 2002-01-28 18:11:45 +00:00
Jaroslav Kysela
3e3df2d32b Updated GNU GPL license (address).
Changed GNU LGPL licence from 2.0 to 2.1.
2001-12-30 09:22:54 +00:00
Jaroslav Kysela
ddb7209e9a Added snd_*_poll_descriptors_revents functions. 2001-11-30 17:36:45 +00:00
Jaroslav Kysela
c33c5760ab Added snd_*_open_lconf functions.
Some minor changes in config interface documentation.
2001-11-24 17:47:01 +00:00
Jaroslav Kysela
87b5b249a5 pcm.h - major documentation updates and reordering
Cleanup for __cplusplus defines.
2001-11-14 11:40:46 +00:00
Jaroslav Kysela
58345ae4f4 Separated asoundlib.h to small files. 2001-09-13 11:38:32 +00:00
Jaroslav Kysela
79531a4eb0 The main header file is not dependant on asound.h from driver. 2001-08-20 13:15:30 +00:00
Jaroslav Kysela
b45c08611c Added symbol versioning for dlsym-callbacks.
Removed snd_config_refer_load from confmisc.c and pcm.c.
2001-08-15 12:12:16 +00:00
Jaroslav Kysela
3590f6ecd3 More documentation enhancements / removal of non-existent functions. 2001-07-11 15:48:27 +00:00
Jaroslav Kysela
7025482a40 Added SND_RAWMIDI_SYNC flag. 2001-04-24 19:27:45 +00:00
Jaroslav Kysela
f65b035a45 Improved in-source documentation (interfaces are divided into modules). 2001-04-24 13:02:58 +00:00
Abramo Bagnara
5b50ec848a Lot of cleanings with the help of gcc3 2001-03-29 17:50:28 +00:00
Abramo Bagnara
78af661d60 More documentation 2001-03-29 09:44:29 +00:00
Jaroslav Kysela
e8a01ea4ed Merged rawmidi M4 files into the main ones.
The first attempt to create documentation for the RawMidi API.
2001-03-20 16:46:45 +00:00
Abramo Bagnara
191d03501e Changed descriptors_count 2001-02-18 18:32:30 +00:00
Jaroslav Kysela
cc956312b3 Changed behaviour of poll_descriptors function (returns the filled count of fds).
Added poll_descriptors_count functions.
Added snd_mixer_elem_count function.
2001-02-14 12:15:03 +00:00
Abramo Bagnara
460660d4b4 More generic support for poll descriptors 2001-02-12 23:51:49 +00:00
Abramo Bagnara
a2d3434961 Completed mixer API. Improved iterators. Renamed control values struct. Rewritten simple elements implementation 2001-02-11 15:45:35 +00:00
Abramo Bagnara
66f13f6115 Splitted rawmidi streams. Removed stream constraint on config files 2001-02-07 13:30:40 +00:00
Abramo Bagnara
8f0cb26fdf Control API encapsulation. Better names for kernel API. Simpler PCM hw_params API. Added missing const. 2001-02-06 23:48:10 +00:00
Abramo Bagnara
5bf23ae9a1 Encapsulated hwdep. Converted all enums to type safety 2001-02-05 15:44:42 +00:00
Abramo Bagnara
4c9fd35a60 Added missing rawmidi functions. Cleaned PCM use of masks 2001-02-04 18:57:05 +00:00
Abramo Bagnara
a7561a9c7e Corrected and completed encapsulation for PCM and rawmidi. Remove SND_PCM_HW_PARAM_* and use functions. Separated rawmidi info between streams 2001-02-04 17:03:17 +00:00
Abramo Bagnara
8712ffc6a5 Added snd_ prefix to mask and interval. Divided header.h wrappers 2001-01-30 16:51:26 +00:00
Jaroslav Kysela
9acdef38c9 Added snd_*_card() functions. 2000-12-22 14:03:01 +00:00
Jaroslav Kysela
41bb7068f2 Merged pcmfinal branch. 2000-11-20 20:10:46 +00:00
Jaroslav Kysela
cc214bdfea Big rawmidi update - added subdevices support. 2000-11-03 10:11:50 +00:00
Jaroslav Kysela
0e561770c6 Added functions:
snd_ctl_rawmidi_prefer_subdevice
	snd_rawmidi_open_subdevice
Fixed functions:
	snd_pcm_hw_open - fixed prefer subdevice code
2000-10-30 12:15:18 +00:00
Abramo Bagnara
2ea3fd4bb3 Completed renaming drain->stop, flush->drain (PCM). Done renaming drain->drop, flush->drain (rawmidi and seq). Removed wrong module usage count inc/dec from mmap 2000-09-29 20:49:18 +00:00
Jaroslav Kysela
6962a9d6ce Merged pcmplug branch. 2000-09-24 09:57:26 +00:00
Abramo Bagnara
1a7f88d10e Better names for ALSA API. Added min_fragments, max_fragments. 2000-05-27 16:52:17 +00:00
Jaroslav Kysela
986c1500d2 Another API cleanups.
Added setup functions for rawmidi and timer interfaces.
2000-04-18 15:20:12 +00:00
Abramo Bagnara
d2911f9f34 uniformed alsa-lib interfaces 2000-01-09 22:44:52 +00:00
Jaroslav Kysela
863412f63e Added more open modes (O_APPEND).. 1999-12-05 21:12:24 +00:00
Frank van de Pol
19811bb9b4 Changed data type of alsa-lib handles from 'void *' to the specific type for
the handle in use. This should be more type-safe as the compiler will perform
checking on type now.
1999-06-02 00:40:30 +00:00
Jaroslav Kysela
6e72ca3977 Recoded the universal switch interface... 1999-05-04 19:21:28 +00:00