ALSA-driver / ALSA-lib patches to CVS-09-17

This patch includes: Warning: This patch violates the source/binary compatibility from older versions.

In order to start the queue, one needs to set the queue value in data.queue.addr.queue instead of dest.queue. The latter is used only for scheduling. By this change, it will be possible to control the queue from the scheduled event on other queues. For example, you can start the queue A after two seconds on the queue B!

It is recommended to use the new middle-level functions in alsa-lib. For example, to start the queue immediately, just call:

	snd_seq_start_queue(seq, queue, NULL);
To stop the queue at a certain schedule time, at first you set the schedule time and call snd_seq_stop_queue as below:
	snd_seq_event_t ev;
	...
	snd_seq_ev_clear(&ev);
	snd_seq_ev_schedule_tick(&ev, queue, 1, 200); /* 200 ticks later */
	snd_seq_stop_queue(seq, queue, &ev);
There are many other functions and macros to hide ioctl data structure. The sample programs in alsa-lib/test are changed to use these features. For more details, please take a look at sys/asoundlib.h.