Commit graph

121 commits

Author SHA1 Message Date
Jaroslav Kysela
c39882f602 Configuration:
- changed snd_config_get_id function to follow semantic of other get functions
  - added snd_config_test_id
  - added runtime pointer type (not persistent)
    - added snd_config_make_pointer, snd_config_set_pointer, snd_config_get_pointer
  - added type/contents checking for callback functions
    - changed 'void *private_data' to 'snd_config_t *private_data'
  - renamed card_strtype functions to card_driver
Control:
  - fixed passing parameters to snd_ctl_async
Async handlers:
  - added public snd_async_handler_get_signo function
Documentation:
  - moved all documentation to source files
2001-11-19 08:14:21 +00:00
Jaroslav Kysela
27472b56a6 Changes for static build. 2001-10-24 14:14:11 +00:00
Takashi Iwai
4ea2403c9b Fixed comments / documentation. 2001-09-26 15:32:06 +00:00
Jaroslav Kysela
d6b4cfe7f2 Fixed wrong return value in snd_seq_drain_output 2001-09-06 09:09:24 +00:00
Jaroslav Kysela
cd97f4e735 Added snd_seq_queue_timer_type_t. 2001-08-28 08:03:19 +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
Takashi Iwai
78156e8f16 Added snd_seq_system_info_get_cur_clients/queues. 2001-07-25 17:33:34 +00:00
Jaroslav Kysela
0d9a5d0e59 More documentation updates. 2001-07-18 12:17:11 +00:00
Jaroslav Kysela
3590f6ecd3 More documentation enhancements / removal of non-existent functions. 2001-07-11 15:48:27 +00:00
Jaroslav Kysela
0b506b0944 Changed from bool to val to avoid error in c++. 2001-07-04 15:05:05 +00:00
Jaroslav Kysela
88e5e45151 Major change to sequencer API.
The sequencer API is totally recoded with the style of "encapsulation"
in other api.
The structure becomes opaque and accessed only via functions.

Other changes:
- There is no longer group in client and port info.
- snd_seq_query_subs_t is renamed to snd_seq_query_subscribe_t.
- snd_seq_delete_port takes only the port id argument instead of
  port_info structure.
- snd_seq_input/output_buffer_size are renamed
  as snd_seq_get_input/output_buffer_size.
  Similarly snd_seq_resize_input/output_buffer are renamed as
  snd_seq_set_input/output_buffer_size.
- snd_seq_get_named_queue is renamed to snd_seq_query_named_queue.
- Sync codes are removed temporarily from API.
- Subscription conditions are accessed via the corresponding functions.
  convert_time is named now as time_update.
- snd_seq_get/set_queue_owner are removed.
  Use snd_seq_get/set_queue_info instead.
- Instrument put/get/remove structure is unified as snd_instr_header_t.
2001-07-04 13:54:13 +00:00
Jaroslav Kysela
1e0c53a11c Added context handling for snd_config_expand.
PCM slave configuration is now dynamic.
2001-06-16 22:03:23 +00:00
Abramo Bagnara
54daf2f16d Extended parameterization. Marked with @ all fields with special use 2001-06-15 14:00:19 +00:00
Jaroslav Kysela
977a9a33f0 * Cleaned the alsa.conf syntax:
- added pcm.front, pcm.rear, pcm.center_lfe blocks
* Added configuration for EMU10K1 (it's fully working one!!!)
* snd_config_redirect_load->snd_config_refer_load rename
* snd_config_search_alias code change (works also with pairs base.key)
* cleanups in the evaluate function (the function prototype has been changed)
2001-06-15 08:47:59 +00:00
Jaroslav Kysela
5c3075d32f Enhanced configuration syntax (added [ ] block for arrays).
The snd_config_expand functions expands the runtime contents (@func...).
Removed the environment variable replace code from the configuration parser.
Updated the alsa.conf configuration file.
2001-06-13 09:31:05 +00:00
Takashi Iwai
5ce8fbeab5 Added comments for doxygen.
They are half-automated output from the 0.5.x documents.
The sequencer API will be changed in near future
to suit with encapsulation implemented already in pcm api,
so do not trust the comments added here..
They are just for reference.
2001-06-06 17:50:16 +00:00
Abramo Bagnara
7f651b3071 Added hooked PCM type (one sample hook implementation will follow). Some cleaning. 2001-06-04 18:04:18 +00:00
Abramo Bagnara
f5534c46ed Completed parametric configuration and begun to use it 2001-05-22 09:19:43 +00:00
Abramo Bagnara
5b50ec848a Lot of cleanings with the help of gcc3 2001-03-29 17:50:28 +00:00
Abramo Bagnara
a275d66356 Improved .asoundrc changes 2001-03-17 16:34:43 +00:00
Abramo Bagnara
46b52167df Exported ERR macros. Completed scopes architecture. Added defaults for {pcm,ctl,rawmidi,seq}type configuration. Fixed bogus dlclose. Implemented ncurses levelmeter (temporarily placed in src/pcm/scopes) 2001-03-07 12:36:05 +00:00
Abramo Bagnara
bbaeb29a74 Renamed ERR to SNDERR. Added s16 pseudo meter scope. Fixed plug hw_refine/params 2001-03-04 20:39:02 +00:00
Jaroslav Kysela
1dfd70d11e Added the event filter to the poll_descriptor functions. 2001-02-21 16:29:40 +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
3e091c8822 Encapsulated conf API 2001-02-07 11:34:33 +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
de19407578 Removed card type from devices info. Added card number to devices info. Completed encapsulation of PCM API. Removed snd_pcm_card(). All copy functions now have the form copy(dst, src). 2001-01-31 17:26:56 +00:00
Abramo Bagnara
b0cd1da822 Added missing diagnostics 2000-11-30 09:40:50 +00:00
Jaroslav Kysela
41bb7068f2 Merged pcmfinal branch. 2000-11-20 20:10:46 +00:00
Takashi Iwai
1e9a496217 - Added a length check. 2000-10-30 17:54:55 +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
Takashi Iwai
d1d906e295 Experimental synchronization support on ALSA sequencer 2000-09-05 17:15:11 +00:00
Takashi Iwai
5e06d14431 Fix compile warnings and a typo 2000-08-31 11:56:52 +00:00
Takashi Iwai
a7f3ff4a4f New light-weight event handling:
1. No more needs to call snd_seq_event_free() for releasing the cell.
   But you should keep it anyway, both for compatibility and for future
   extension.
2. API is basically kept unmodified.  The sign of return values are same,
   i.e. positive integers will be returned if events exist on buffer/queue.
   But the exact value may be different from the older version.
3. snd_seq_event_input() renders the event directly from the static input
   buffer.  The function is not re-entrant.
4. snd_seq_event_input_selective() is removed.
2000-08-29 11:39:08 +00:00
Jaroslav Kysela
f981892e3a 64-bit fixes.
Controls API uses binary tree functions (tsearch ...).
2000-08-04 10:24:12 +00:00
Abramo Bagnara
9c72daca41 Added timestamps in strategic places 2000-07-01 14:17:25 +00:00
Jaroslav Kysela
1cd6778173 Merged pcm2 branch. 2000-05-08 18:53:38 +00:00
Takashi Iwai
43041cbe78 New functions for sequencer:
- snd_seq_event_output_buffer()
	Outputs an event on buffer without flushing to sequencer.
	Useful for non-blocking mode write.
- snd_seq_event_output_direct()
	Outputs an event directly to sequencer without using buffer.
	Thus the event can be passed even if output buffer is full.
- snd_seq_input_buffer_size(), snd_seq_output_buffer_size()
	Returns the size of input/output buffers
- snd_seq_resize_input_buffer(), snd_seq_resize_output_buffer()
	Changes the size of input/output buffers
2000-03-18 18:03:50 +00:00
Jaroslav Kysela
70a536e924 snd_seq_timestamp_t->real was renamed to snd_seq_timestamp_t->time
Some code is using real as a variable type.
2000-01-20 12:14:50 +00:00
Jaroslav Kysela
2cdc7a7767 Removed unfinished sequencer sync code. 2000-01-10 13:08:38 +00:00
Jaroslav Kysela
d117462cb9 Takashi Iwai <iwai@ww.uni-erlangen.de>
Mon, 03 Jan 2000 10:47:02 +0100
- bugfix: proper handling of exclusive subscription
- bugfix and update: alsa-lib/test/seq* stuff
- minor updates (long option support, etc) of aconnect and aseqnet
- man pages for aconnect and aseqnet are added
2000-01-03 10:25:56 +00:00
Jaroslav Kysela
e4b58d20f1 Takashi Iwai <iwai@ww.uni-erlangen.de>
Thu, 30 Dec 1999 16:07:12 +0100
- fix of memory leak in seq_midi
- snd_seq_extract_output() accepts NULL ev_res argument (for removing the
  error event without malloc).
- addition of snd_seq_drain_input_buffer() and snd_seq_drain_output_buffer()
  functions in alsa-lib
1999-12-30 15:21:52 +00:00
Jaroslav Kysela
244d345fda Takashi Iwai <iwai@ww.uni-erlangen.de>
Wed, 22 Dec 1999 15:51:37 +0100
Changes in alsa-driver:

1. SND_SEQ_DEST_DIRECT was removed.  For direct dispatching, specify
   the scheduling queue as SND_SEQ_QUEUE_DIRECT.
   Source compatibility is kept if alsa-lib functions are used to set
   or check direct mode.
   Tested: pmidi, playmidi1, aconnect, aseqview, OSS emulation

2. The error event can be bounced to the sender as an encapsulated
   event with SND_SEQ_EVENT_BOUNCE type.  If the orignal event is
   variable length (like SYSEX), the data body is added after the
   copied event data.  (To access to it, use
   snd_seq_event_bounce_ext_data() macro.)
   This feature is enabled only when the sender is opened with read
   flag and has a client-filter flag SND_SEQ_FILTER_BOUNCE, so that
   as default it is disabled.

3. Maximum size of VARIABLE length event is defined as 2048 bytes.
   Larger events will be refused.
   Note that this is not the size of VARUSR nor VARIPC event.

4. Return error code was revised.
   Possible errors for read():
        -ENXIO  invalid client or file open mode
        -ENOSPC FIFO overflow (the flag is cleared after this error report)
        -EINVAL no enough user-space buffer to write the whole event
        -EFAULT seg. fault during copy to user space
   Possible errors for write():
        -ENXIO  invalid client or file open mode
        -ENOMEM malloc failed
        -EFAULT seg. fault during copy from user space
        -EINVAL invalid event
        -EAGAIN no space in output pool
        -EINTR  interrupts while sleep
        -EMLINK too many hops

        others  depends on return value from driver event_input callback

Changes in alsa-lib:

5. Behavior of snd_seq_flush_output() was changed.
   It flushes data in output buffer as much as possible.  This has
   two advantages.  One is that most data can be sent at one call,
   and another is that the error in write() can be detected directly
   from this function.
   The demerit of this implementation is that in non-blocking mode, it
   tries twice write() even if write pool of sequencer is full, which
   is not actually error.  In this case, flush_output() always returns
   -EAGAIN error code.
   After an error is detected (except for -EAGAIN in non-blocking
   mode), you should remove the error event via
   snd_seq_extract_output() as below.  Otherwise, it'll remain in
   output buffer and cause the same error again.

6. Some functions were added:
   snd_seq_exract_output(seq, &event)
        This extracts the first event on *output* buffer.  This will
        be useful to know (and remove) the event which causes error in
        write().
   snd_seq_event_input_pending(seq, fetch)
        Retunrs the number of events on input buffer.
        If no events exist in input buffer, it fetches from sequencer
        (only when flag is true).
   snd_seq_event_input_selective(seq, &ev, type, blocking)
        Retrieve the event from input with the given event type.
        If blocking is true, it waits until the target event is
        received.  It'll be useful for checking bounced error or
        waiting for hand-shake results (eg. loading insruments).
1999-12-22 15:05:51 +00:00
Jaroslav Kysela
b4bbbdbc9b Steve Ratcliffe <steve@parabola.demon.co.uk>
Sorry, small correction to my previous patch.
1999-12-19 09:49:35 +00:00