Lines Matching defs:queue
47 The event scheduling can be done either on a MIDI tempo queue or
48 on a wallclock-time queue.
139 Timestamps will be updated according to the subscribed queue.
218 <li>Scheduling queue id.
232 This tag can used for removing a distinct event from the event queue
234 The queue field is the queue id for scheduling.
238 \subsection seq_ev_queue Scheduling queue
241 On the scheduling mode, an event is once stored on the priority queue
244 without any queue.
246 For a scheduled delivery, a queue to process the event must exist.
247 Usually, a client creates its own queue by
249 Alternatively, a queue may be shared among several clients.
250 For scheduling an event on the specified queue,
251 a client needs to fill queue field
252 with the preferred queue id.
255 use #SND_SEQ_QUEUE_DIRECT as the target queue id.
261 On the former scheme, an event is once stored on priority queue, then
295 queue the event is sent into.
297 counted from the moment when the queue started.
300 As each sequencer queue has it's own clock the only way to deliver events at
302 arrives at the queue it is normalized to absolute format.
306 To schedule the event in a real-time queue or in a tick queue,
333 In order to control a queue from a client, client should send a
334 queue-control event
335 like start, stop and continue queue, change tempo, etc.
337 Then the sequencer system handles the queue according to the received event.
363 can be scheduled on queue.
387 If an event with the same scheduling time is already present on the queue,
390 If an event with the same scheduling time is already present on the queue,
397 \subsection seq_ev_control Creation of a queue
399 Creating a queue is done usually by calling #snd_seq_alloc_queue.
400 You can create a queue with a certain name by #snd_seq_alloc_named_queue(), too.
402 // create a queue and return its id
405 return snd_seq_alloc_named_queue(handle, "my queue");
409 For releasing the allocated queue, call #snd_seq_free_queue() with the
410 obtained queue id.
412 Once when a queue is created, the two queues are associated to that
413 queue record in fact: one is the realtime queue and another is the
414 tick queue. These two queues are bound together to work
416 which queue type is used as described in the section \ref
419 \subsection seq_ev_tempo Setting queue tempo
421 The tempo (or the speed) of the scheduling queue is variable.
422 In the case of <i>tick</i> queue, the tempo is controlled
429 Note that PPQ cannot be changed while the queue is running.
430 It must be set before the queue is started.
432 On the other hand, in the case of <i>realtime</i> queue, the
434 a parameter to change the speed of this queue, called <i>skew</i>.
435 You can make the queue faster or slower by setting the skew value
439 (0x10000) and the skew value is the identical, so that the queue is
442 When the tempo of realtime queue is changed, the tempo of
443 the associated tick queue is changed together, too.
445 This feature can be used to synchronize the event queue with
447 the realtime queue is skewed to match with the external source,
452 For example, to set the tempo of the queue <code>q</code> to
455 void set_tempo(snd_seq_t *handle, int queue)
461 snd_seq_set_queue_tempo(handle, queue, tempo);
465 For changing the (running) queue's tempo on the fly, you can either
477 ev.queue = SND_SEQ_QUEUE_DIRECT; // no scheduling
478 ev.data.queue.queue = q; // affected queue id
479 ev.data.queue.value = tempo; // new tempo in microsec.
490 You can schedule the event in a certain queue so that the tempo
493 \subsection seq_ev_start Starting and stopping a queue
495 To start, stop, or continue a queue, you need to send a queue-control
589 When set up, the timestamp of incoming queue to the destination port
590 is updated automatically to the time of the specified queue.
612 queue for timestamp = 1 with real-time stamp.
701 If the event is scheduled, proper queue and timestamp values must be set.
710 on the queue <code>Q</code>,
711 the sender must set both schedule queue and time in the
735 care of queue and timestamp.
755 Otherwise, the event is enqueued on output queue of ALSA library
757 this queue becomes full.
2316 * \brief Get the queue id to update timestamps
2318 * \return the queue id to get the timestamps
2520 * \brief Set the queue id for timestamping
2522 * \param queue the queue id to get timestamps
2526 void snd_seq_port_info_set_timestamp_queue(snd_seq_port_info_t *info, int queue)
2529 info->time_queue = queue;
2781 * \brief Get the queue id of a port_subscribe container
2783 * \return queue id
2790 return info->queue;
2859 * \brief Set the queue id of a port_subscribe container
2861 * \param q queue id
2868 info->queue = q;
3106 * \brief Get the queue id of subscriber of a query_subscribe container
3108 * \return subscriber's queue id
3115 return info->queue;
3251 * queue handlers
3299 * \brief Get the queue id of a queue_info container
3301 * \return queue id
3308 return info->queue;
3417 * \brief create a queue
3419 * \param info queue information to initialize
3420 * \return the queue id (zero or positive) on success otherwise a negative error code
3432 return info->queue;
3436 * \brief allocate a queue with the specified name
3438 * \param name the name of the new queue
3439 * \return the queue id (zero or positive) on success otherwise a negative error code
3454 * \brief allocate a queue
3456 * \return the queue id (zero or positive) on success otherwise a negative error code
3467 * \brief delete the specified queue
3469 * \param q queue id to delete
3479 info.queue = q;
3484 * \brief obtain queue attributes
3486 * \param q queue id to query
3495 info->queue = q;
3500 * \brief change the queue attributes
3502 * \param q queue id to change
3511 info->queue = q;
3516 * \brief query the matching queue with the specified name
3519 * \return the queue id if found or negative error code
3521 * Searches the matching queue with the specified name string.
3534 return info.queue;
3538 * \brief Get the queue usage flag to the client
3540 * \param q queue id
3541 * \return 1 = client is allowed to access the queue, 0 = not allowed,
3552 info.queue = q;
3560 * \brief Set the queue usage flag to the client
3562 * \param q queue id
3573 info.queue = q;
3625 * \brief Get the queue id of a queue_status container
3627 * \return queue id
3634 return info->queue;
3690 * \brief obtain the running state of the queue
3692 * \param q queue id to query
3696 * Obtains the running state of the specified queue q.
3702 status->queue = q;
3752 * \brief Get the queue id of a queue_status container
3754 * \return queue id
3761 return info->queue;
3872 * \brief obtain the current tempo of the queue
3874 * \param q queue id to be queried
3884 tempo->queue = q;
3889 * \brief set the tempo of the queue
3891 * \param q queue id to change the tempo
3900 tempo->queue = q;
3952 * \brief Get the queue id of a queue_timer container
3954 * \return queue id
3961 return info->queue;
4044 * \brief obtain the queue timer information
4046 * \param q queue id to query
4056 timer->queue = q;
4061 * \brief set the queue timer information
4063 * \param q queue id to change the timer
4072 timer->queue = q;
4639 * \brief clear input buffer and and remove events in sequencer queue
4714 * \brief Get the queue as removal condition
4716 * \return queue id
4723 return info->queue;
4805 * \brief Set the queue as removal condition
4807 * \param queue queue id
4811 void snd_seq_remove_events_set_queue(snd_seq_remove_events_t *info, int queue)
4814 info->queue = queue;