1Ap      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                      !"#$%&'() * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno pqpqpqrsrsrs provisionalHenning Thielemanntututu    v !Convert number of nanoseconds to  (Convert fractional number of seconds to  !Convert number of nanoseconds to  (Convert fractional number of seconds to       provisionalHenning ThielemannThe type of queue identifiers. wxywxywwxy provisionalHenning Thielemann@ Port types. Port capabilities. z{application (sequencer/ editor) |'This port may connect to other devices E (whose characteristics are not known). }2Messages sent to this port will generate sounds. ~'This port is implemented in software. 'This port is implemented in hardware. 8Sampling device (sample can be downloaded at any time) +Sampling device (support sample download) Synth device "General MIDI 2 compatible device MT-32 compatible device XG compatible device GS compatible device  General MIDI compatible device generic MIDI device hardware specific =a type that cannot be represented by the other constructors routing not allowed allow write subscription allow read subscription  allow read/write duplex allow write subscriptions allow read subscriptions writable to this port readable from this port Ca capability that cannot be represented by the other constructors  !"#$%&'()*+,-./-The Enum instance may not be very efficient, &but it should hardly be used, at all. Better use constants such as  and set manipulation. ;If the binary logarithm is computed by constant unfolding, Jperformance would be better, but direct set manipulation is still faster. We implement the  instance in this way, Cin order to stay independent from the particular ALSA definitions, #that may differ between platforms. ?z{|}~ !"#$%&'()*+,-./?z~}|{{|}~  !"#$%&'()*+,-./ provisionalHenning Thielemann 0 The different types of clients. 123 The type of client identifiers. 4567 01234567 0211234567 provisionalHenning Thielemann-Copy the content of one object into another. -Copy the content of one object into another. 9Copy the content of an object to a newly created object. 9Copy the content of an object to a newly created object. -Copy the content of one object into another. -Copy the content of one object into another. 1Allocate an uninitialized object. (Not exported) -Copy the content of one object into another. -Copy the content of one object into another. 9Copy the content of an object to a newly created object. -Copy the content of one object into another.    9Copy the content of an object to a newly created object.   1Allocate an uninitialized object. (Not exported) -Copy the content of one object into another. 1Allocate an uninitialized object. (Not exported)  !"#$% Destination Source &'()*+,-./01234 Destination Source 56789:;<=>?@ABCDEFGHIJKLMNOP Destination Source QRST1Allocate an uninitialized object. (Not exported) UVWXYZ[\ Destination Source ]^_`1Allocate an uninitialized object. (Not exported) abcdefg9Copy the content of an object to a newly created object. hijk9Copy the content of an object to a newly created object. lm Destination Source n9Copy the content of an object to a newly created object. opqrst1Allocate an uninitialized object. (Not exported) uvwxyz Destination Source {|1Allocate an uninitialized object. (Not exported) }1Allocate an uninitialized object. (Not exported) ~ Destination Source  Destination Source 9Copy the content of an object to a newly created object.       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~89:;<%The address of all subscribed ports. 89:;<89:;9:;< provisionalHenning Thielemann=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~These are all 14 bit values. =>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=CBA@?>>?@ABCDFEEFGMLKJIHHIJKLMN ZYXWVUTSRQPOOPQRSTUVWXYZ[`_^]\\]^_`a kjihgfedcbbcdefghijkl xwvutsrqponmmnopqrstuvwxy}|{zz{|}~    provisionalHenning ThielemannThe type of sequencer handles. +Blocking behavior of the sequencer device. &Throw exceptions instead of blocking. Operations may block. Read/,Write permissions for the sequencer device. + This way we prevent the ALSA exception 22 Invalid argument  when calling  event_output on an input-only sequencer. &DCreates a new handle and opens a connection to the kernel sequencer 4 interface. After a client is created successfully,  a  ClientStart* event is broadcast to the announce port.  May throw an exception.  See also:  open_lconf, ,  get_seq_type,   get_seq_name,  set_blocking,  get_client_id.  The sequencer's "name". This is not a name that you < make up for your own purposes; it has special significance / to the ALSA library. Usually you need to pass  default_name  here. BClose the sequencer. Closes the sequencer client and releases its 4 resources. After a client is closed, an event with  ClientExit is F broadcast to announce port. The connection between other clients are ; disconnected. Call this just before exiting your program. 8 NOTE: we could put this in a finalizer for the handle? handle to the sequencer  The sequencer's "name". This is not a name that you < make up for your own purposes; it has special significance / to the ALSA library. Usually you need to pass  default_name  here. &Get identifier of a sequencer handle. 4 It is the same identifier specified in the call to . sequencer handle ALSA identifier for the handel .Change the blocking mode of the given client. E In block mode, the client falls into sleep when it fills the output G pool with events, or when it demands events from an empty input pool. @ memory pool with full events. Clients that are sleeping due to < loack of space in the output pool are woken when a certain - amount of free space becomes available (see set_output_room). sequencer handle blocking mode +Return the byte size of the output buffer. Sequencer handle.  Size of output buffer in bytes. Resize of the output buffer. - This function clears all output events (see  drop_output). Sequencer handle. New buffer size in bytes. &Return the byte size of input buffer. Sequencer handle. Size of input buffer in bytes. Resize the input buffer. , This function clears all input events (see  drop_input). Sequencer handle. New byffer size in bytes. Resize the output memory pool. Sequencer handle. New size in bytes. @Specify how much space should become free before waking clients = that are blocked due to a lack of space in the output pool. Sequencer handle. !Number of bytes need to wake up. Reset the output pool. Sequencer handle. Resize the input memory pool. Sequencer handle. New size in bytes. Reset the input pool. Sequencer handle. Simple subscription (w/ o exclusive & time conversion). Simple subscription (w/ o exclusive & time conversion). Simple disconnection. Simple disconnection. /Parse the given string into sequencer address. J The client and port are separated by either colon or period, e.g. 128:1. ) The function also accepts client names. Sequencer handle. String to be parsed. The parsed address. &&/Parse the given string into sequencer address. IThe client and port are separated by either colon or period, e.g. 128:1. (The function also accepts client names. Sequencer handle. String to be parsed. The parsed address. 89:;<89:;<  provisionalHenning ThielemannKCreate a new information area filled with data about the sequencer client. JCreate a new information area filled with data about an arbitrary client. CGet information about the client with the next biggest identifier. Was there a next client? ?Set the information for the sequencer client based on the data  in the given information area.  provisionalHenning Thielemann-Get the client identifier for the sequencer.  A convinience function. 'Set the name for the sequencer client.  A convinience function. 01234567 37456021 provisionalHenning Thielemann  Create a port - simple version. Delete the port. 7Create a new port, as described by the info structure. Delete the port. $ !"#$%&'()*+,-./$ !"#$%&'()*+,-./  provisionalHenning Thielemann)@Create a new information area filled with data about a specific  port on our client. >Create a new information area filled with data about an given  port on a given client. 4Get information about the first port on our client. AGet information about the port with the next biggest identifier. D If a matching port is found, then its information is stored in the * given area, otherwise we throw an error. =Set the information for the sequencer port based on the data  in the given information area. )Get the address of the information area. Set the port address.      "     "     "      provisionalHenning Thielemann Queue.T identifier. Delete the specified queue. Sequencer handle. Queue.T identifier. Queue.T controls - startstop continue Sequencer handle. Queue.T identifier.  provisionalIavor S. Diatchki3Wait until all events of the client are processed. $Get an event from the input buffer. D If the input buffer is empty, then it is filled with data from the ? sequencer queue. If there is no data in the sequencer queue, H then the process is either put to sleep (if the sequencer is operating  in blocking mode), or we throw EAGAIN (if the sequence is operating  in non-blocking mode). We may also throw ENOSPC', which means that the sequencer queue D over-run and some events were lost (this clears the input buffer). 2Returns the number of events in the input buffer. @ If the input buffer is empty and the boolean argument is true, G then try to fill the input buffer with data from the sequencer queue.  See also: . refill if empty? number of events in buffer 9Output an event and drain the buffer, if it became full.  Throws exceptions.  See also: , ,  , !, ",  ,  removeEvents +the number of remaining events (or bytes?) -Output an event without draining the buffer.  Throws -EAGAIN if the buffer becomes full.  See also . "the byte size of remaining events JOutput an event directly to the sequencer, NOT through the output buffer. 1 If an error occurs, then we throw an exception.  See also . &number of bytes sent to the sequencer ?Return the size (in bytes) of pending events on output buffer.  See also . "size of pending events (in bytes) *Extract the first event in output buffer.  Throws an exception on error.  See also . 3the first event in the buffer (if one was present)  )Remove the first event in output buffer.  Throws an exception on error.  See also . !"Drain output buffer to sequencer. ? This function drains all pending events on the output buffer. J The function returns immediately after the events are sent to the queues 5 regardless whether the events are processed or not. 6 To get synchronization with the all event processes,  use  after calling this function.  Throws an exception on error.  See also: , . -byte size of events remaining in the buffer. "6Remove events from both the user-space output buffer, ' and the kernel-space sequencer queue.  See also: !, #,  removeEvents. #1Remove events from the user-space output buffer.  See also: ". $5Remove events from both the user-space input buffer, ' and the kernel-space sequencer queue.  See also: %,  removeEvents. %0Remove events from the user-space input buffer.  See also: $. &0Make a note whose unspecified fields contain 0.  Channel. Note.  Velocity. '=Construct an ALSA sequencer event from very few information. 4Most fields are initialized with sensible defaults. IYou may use this as a start and alter its fields for your special needs. J (Event.simple myAddr (Event.simpleNote 0 60 64)) {Event.dest = destAddr} (9Used for volume control: means do not change the volume. =>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'( !"#$%(~'=CBA@?>y}|{z&lxwvutsrqponmNZYXWVUTSRQPOakjihgfedcbGMLKJIHDFE[`_^]\ !"#$%&'( )*+,-./0)*+,-./0)*+,-./0)*+,-./0  provisionalHenning Thielemann123456789:;<=>123456789:;<=>123456789:;<=>123456789:;<=> provisionalHenning Thielemann?@ABCDEF?@ABCDEF?@ABCDEF?@ABCDEF provisionalHenning ThielemannGHIJKLMNOPQRSTGHIJKLMNOPQRSTGHIJKLMNOPQRSTGHIJKLMNOPQRST provisionalHenning Thielemann UVWXYZ[\]^UVWXYZ[\]^UVWXYZ[\]^ UVWXYZ[\]^ provisional     *Get sender address of a port subscription /Get destination address of a port subscription *Set sender address of a port subscription /Set destination address of a port subscription  Subscribe a port connection !'Unsubscribe a connection between ports "_Subscribe a port connection: subscribeSimple5 sender dest exclusive (Just (updatequeue, realtime)) `Unsubscribe a port connection: unsubscribeSimple sender dest _`_`_` provisional#a$%&'()*bcdefghij+,-.kGet the client/port address of a query l'Get the address of subscriber of query /Set the client/port address of a query 0Query port subscriber list mJQueries a subscriber connected to (Write) or from (Read) a given address: m seq addr typ index n1Queries the list of subscribers accessing a port abcdefghijklmnabckdeflghijmnabcdefghijklmn  provisionalHenning Thielemanno*This is the name that should be passed to  in most cases. o oo1 !"#$%&'()*+$,-$./0123456789:;<=>?@ABCDEFGHIJK$LMN0$%OPMQRSTUVWTXYUZ[\]^_R`abcdefghijkSlmnopqrstuvwxyz{V|}~W$%$ $  $           $       !$"#$$%&'()*+,$-./01$23456789 :;<=>=>?%@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\%A@]^_`ab%A@>ccdvveffghhijjkllmnnoppqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIAJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh$ijklmnop%qrstuvwxyz{|}~ h     h       h  hhhh$h.alsa-seq-0.5.1$Sound.ALSA.Sequencer.Subscribe.Query Sound.ALSA.Sequencer.Queue.TimerSound.ALSA.Sequencer.RealTimeSound.ALSA.Sequencer.QueueSound.ALSA.Sequencer.PortSound.ALSA.Sequencer.ClientSound.ALSA.Sequencer.AddressSound.ALSA.Sequencer.EventSound.ALSA.Sequencer Sound.ALSA.Sequencer.Client.InfoSound.ALSA.Sequencer.Port.Info#Sound.ALSA.Sequencer.Event.AccessorSound.ALSA.Sequencer.Queue.Info!Sound.ALSA.Sequencer.Queue.Status Sound.ALSA.Sequencer.Queue.TempoSound.ALSA.Sequencer.SubscribeSound.ALSA.Sequencer.Utility+Sound.ALSA.Sequencer.Marshal.QuerySubscribe'Sound.ALSA.Sequencer.Marshal.QueueTimer%Sound.ALSA.Sequencer.Marshal.RealTime"Sound.ALSA.Sequencer.Marshal.Queue!Sound.ALSA.Sequencer.Marshal.Port#Sound.ALSA.Sequencer.Marshal.ClientSound.ALSA.Sequencer.Area$Sound.ALSA.Sequencer.Marshal.Address"Sound.ALSA.Sequencer.Marshal.Event,Sound.ALSA.Sequencer.Client.Info.EventFilter&Sound.ALSA.Sequencer.Marshal.SequencerSound.ALSA.Sequencer.SequencerTypeWriteReadMidiTick MidiClockAlsaTConssecsnano fromInteger fromDouble toIntegertoDoubledirectCap systemTimersystemAnnounceunknowncapReadcapWrite capSyncRead capSyncWrite capDuplex capSubsRead capSubsWrite capNoExportcaps typeSpecifictypeMidiGeneric typeMidiGM typeMidiGS typeMidiXG typeMidiMT32 typeMidiGM2 typeSynthtypeDirectSample typeSample typeHardware typeSoftwaretypeSynthesizertypePorttypeApplicationtypesKernelUsersystem subscribers broadcastclientportDataCustomEvEmptyEvConnEvAddrEvCtrlEvNoteEvPortUnsubscribedPortSubscribed PortChangePortExit PortStart ClientChange ClientExit ClientStartUser9User8User7User6User5User4User3User2User1User0OSSEchoUnknownNoneSensingReset TuneRequestQueueEv QueueSyncPos QueueSkew QueueTick QueueClock QueueTempoQueueSetPosTimeQueueSetPosTick QueueStop QueueContinue QueueStartKeySignTimeSignQFrameSongSelSongPosRegParam NonRegParam Control14 PitchBend ChanPress PgmChange ControllerKeyPressNoteOffNoteOnANote highPrioritytagqueue timestampsourcedestbodyCustomcustom0custom1custom2Volume volumeVolumevolumeLRvolumeFRvolumeDUClusterclusterClusterSample sampleStd sampleBank samplePrgCtrl ctrlChannel ctrlParam ctrlValueNote noteChannelnoteNote noteVelocitynoteOffVelocity noteDurationInstr instrClusterinstrStd instrBankinstrPrg InstrCluster TimeStampRealTimeTickTimeConnect BlockModeNonblockBlock DuplexMode InputMode OutputMode AllowOutput AllowInputOpenModeopenclosewithgetName setBlockinggetOutputBufferSizesetOutputBufferSizegetInputBufferSizesetInputBufferSize setPoolOutputsetPoolOutputRoomresetPoolOutput setPoolInputresetPoolInput connectFrom connectTodisconnectFrom disconnectToparsegetgetAny queryFirst queryNextsetmodify filterClear filterAdd filterDel filterCheckcopyclone getClientgetTypegetBroadcastFiltergetErrorBounce getNumPorts getEventLost setClientsetNamesetBroadcastFiltersetErrorBouncegetId createSimple deleteSimple withSimplecreatedeletegetAddrsetAddrgetPort getCapabilitygetMidiChannels getMidiVoicesgetSynthVoicesgetPortSpecifiedgetTimestampinggetTimestampRealgetTimestampQueue getReadUse getWriteUsesetPort setCapabilitysetMidiChannelssetSynthVoices setMidiVoicessetPortSpecifiedsetTimestampingsetTimestampRealsetTimestampQueuealloc allocNamed withNamedfreecontrolsyncOutputQueueinput inputPendingoutput outputBuffer outputDirect outputPending extractOutput removeOutput drainOutput dropOutputdropOutputBuffer dropInputdropInputBuffer simpleNotesimple volumeSameconnectgetQueue getLockedgetOwnergetFlags setLockedsetOwnersetFlags getEvents getTickTime getRealTimegetTempogetPPQgetSkew getSkewBasesetTemposetPPQsetSkew setSkewBase getResolutionsetType setResolution subscribe unsubscribegetIndex getNumSubs getExclusive getTimeUpdate getTimeRealgetRootqueryqueryAll defaultName showsField showsRecordexpTypeimpType nanoPerSecondimpexpTypeFlagTypeApplicationTypePortTypeSynthesizer TypeSoftware TypeHardware TypeSampleTypeDirectSample TypeSynth TypeMIDIGM2 TypeMIDIMT32 TypeMIDIXG TypeMIDIGS TypeMIDIGMTypeMIDIGeneric TypeSpecific TypeOtherCapabilityFlag CapNoExport CapSubsWrite CapSubsRead CapDuplex CapSyncWrite CapSyncReadCapWriteCapReadCapOther capFlagSet typeFlagSet$fEnumCapabilityFlagbaseGHC.EnumEnum QueueTimer QueueTimer_ QueueTempo_ QueueStatus QueueStatus_ QueueInfo QueueInfo_QuerySubscribeQuerySubscribe_ PortSubscribePortSubscribe_PortInfo PortInfo_ ClientInfo ClientInfo_Cmalloc"snd_seq_queue_timer_set_resolution"snd_seq_queue_timer_get_resolutionsnd_seq_queue_timer_set_typesnd_seq_queue_timer_get_typesnd_seq_queue_timer_get_queuesnd_seq_queue_timer_copysnd_seq_queue_timer_freesnd_seq_queue_timer_malloc!snd_seq_queue_tempo_set_skew_base!snd_seq_queue_tempo_get_skew_basesnd_seq_queue_tempo_set_skewsnd_seq_queue_tempo_get_skewsnd_seq_queue_tempo_set_ppqsnd_seq_queue_tempo_get_ppqsnd_seq_queue_tempo_set_temposnd_seq_queue_tempo_get_temposnd_seq_queue_tempo_get_queuesnd_seq_queue_tempo_copysnd_seq_queue_tempo_freesnd_seq_queue_tempo_mallocsnd_seq_queue_status_copysnd_seq_queue_status_freesnd_seq_queue_status_mallocsnd_seq_queue_info_get_queuesnd_seq_queue_info_set_flagssnd_seq_queue_info_get_flagssnd_seq_queue_info_set_ownersnd_seq_queue_info_get_ownersnd_seq_queue_info_set_lockedsnd_seq_queue_info_get_lockedsnd_seq_queue_info_set_namesnd_seq_queue_info_get_namesnd_seq_queue_info_copysnd_seq_queue_info_freesnd_seq_queue_info_malloc%snd_seq_query_subscribe_get_time_real'snd_seq_query_subscribe_get_time_update%snd_seq_query_subscribe_get_exclusive!snd_seq_query_subscribe_get_queue$snd_seq_query_subscribe_get_num_subs!snd_seq_query_subscribe_set_index!snd_seq_query_subscribe_get_index snd_seq_query_subscribe_set_type snd_seq_query_subscribe_get_type snd_seq_query_subscribe_set_port snd_seq_query_subscribe_get_port"snd_seq_query_subscribe_set_client"snd_seq_query_subscribe_get_clientsnd_seq_query_subscribe_copysnd_seq_query_subscribe_freesnd_seq_query_subscribe_malloc$snd_seq_port_subscribe_set_time_real$snd_seq_port_subscribe_get_time_real&snd_seq_port_subscribe_set_time_update&snd_seq_port_subscribe_get_time_update$snd_seq_port_subscribe_set_exclusive$snd_seq_port_subscribe_get_exclusive snd_seq_port_subscribe_set_queue snd_seq_port_subscribe_get_queuesnd_seq_port_subscribe_copysnd_seq_port_subscribe_freesnd_seq_port_subscribe_mallocsnd_seq_port_info_get_write_usesnd_seq_port_info_get_read_use%snd_seq_port_info_set_timestamp_queue%snd_seq_port_info_get_timestamp_queue"snd_seq_port_info_set_synth_voices"snd_seq_port_info_get_synth_voices!snd_seq_port_info_set_midi_voices!snd_seq_port_info_get_midi_voices#snd_seq_port_info_set_midi_channels#snd_seq_port_info_get_midi_channels snd_seq_port_info_set_capability snd_seq_port_info_get_capabilitysnd_seq_port_info_set_clientsnd_seq_port_info_get_clientsnd_seq_port_info_set_portsnd_seq_port_info_get_port$snd_seq_port_info_set_timestamp_real$snd_seq_port_info_get_timestamp_real"snd_seq_port_info_set_timestamping"snd_seq_port_info_get_timestamping$snd_seq_port_info_set_port_specified$snd_seq_port_info_get_port_specifiedsnd_seq_port_info_set_namesnd_seq_port_info_get_namesnd_seq_port_info_copysnd_seq_port_info_freesnd_seq_port_info_malloc"snd_seq_client_info_get_event_lost!snd_seq_client_info_get_num_portssnd_seq_client_info_get_typesnd_seq_client_info_set_clientsnd_seq_client_info_get_client$snd_seq_client_info_set_error_bounce$snd_seq_client_info_get_error_bounce(snd_seq_client_info_set_broadcast_filter(snd_seq_client_info_get_broadcast_filtersnd_seq_client_info_set_namesnd_seq_client_info_get_namesnd_seq_client_info_copysnd_seq_client_info_freesnd_seq_client_info_mallocwith_client_infoclient_info_mallocclient_info_copyclient_info_cloneclient_info_get_nameclient_info_set_name client_info_get_broadcast_filter client_info_set_broadcast_filterclient_info_get_error_bounceclient_info_set_error_bounceclient_info_get_clientclient_info_set_clientclient_info_get_typeclient_info_get_num_portsclient_info_get_event_lostwith_port_infoport_info_mallocport_info_copyport_info_cloneport_info_get_nameport_info_set_nameport_info_get_port_specifiedport_info_set_port_specifiedport_info_get_timestampingport_info_set_timestampingport_info_get_timestamp_realport_info_set_timestamp_realport_info_get_portport_info_set_portport_info_get_clientport_info_set_clientport_info_get_capabilityport_info_set_capabilityport_info_get_midi_channelsport_info_set_midi_channelsport_info_get_midi_voicesport_info_set_midi_voicesport_info_get_synth_voicesport_info_set_synth_voicesport_info_get_timestamp_queueport_info_set_timestamp_queueport_info_get_read_useport_info_get_write_usewith_port_subscribeport_subscribe_mallocport_subscribe_copyport_subscribe_cloneport_subscribe_get_queueport_subscribe_set_queueport_subscribe_get_exclusiveport_subscribe_set_exclusiveport_subscribe_get_time_updateport_subscribe_set_time_updateport_subscribe_get_time_realport_subscribe_set_time_realwith_query_subscribequery_subscribe_mallocquery_subscribe_copyquery_subscribe_clonequery_subscribe_get_clientquery_subscribe_set_clientquery_subscribe_get_portquery_subscribe_set_portquery_subscribe_get_typequery_subscribe_set_typequery_subscribe_get_indexquery_subscribe_set_indexquery_subscribe_get_num_subsquery_subscribe_get_queuequery_subscribe_get_exclusivequery_subscribe_get_time_updatequery_subscribe_get_time_realwith_queue_infoqueue_info_mallocqueue_info_copyqueue_info_clonequeue_info_get_namequeue_info_set_namequeue_info_get_lockedqueue_info_set_lockedqueue_info_get_ownerqueue_info_set_ownerqueue_info_get_flagsqueue_info_set_flagsqueue_info_get_queuewith_queue_statusqueue_status_mallocqueue_status_copyqueue_status_clonewith_queue_tempoqueue_tempo_mallocqueue_tempo_copyqueue_tempo_clonequeue_tempo_get_queuequeue_tempo_get_tempoqueue_tempo_set_tempoqueue_tempo_get_ppqqueue_tempo_set_ppqqueue_tempo_get_skewqueue_tempo_set_skewqueue_tempo_get_skew_basequeue_tempo_set_skew_basewith_queue_timerqueue_timer_mallocqueue_timer_copyqueue_timer_clonequeue_timer_get_queuequeue_timer_get_typequeue_timer_set_typequeue_timer_get_resolutionqueue_timer_set_resolutionexpEv connSourceconnDest FlagValueFlagsFlag timeStampTick timeStampReal timeModeAbs timeModeReleventLengthFixedeventLengthVariableeventLengthVarUser priorityHighpriorityNormal peekTimestamp pokeTimestampallocaEv allocaMaybeEvpokeBodypokeDatapeekData maxEventTypepeekBody peekNoteEv peekCtrlEv peekAddrEv peekConnEv peekEmptyEv peekCustomEvT_&snd_seq_client_info_event_filter_check$snd_seq_client_info_event_filter_del$snd_seq_client_info_event_filter_add&snd_seq_client_info_event_filter_clearclearaddcheckCore expOpenMode expBlockModesnd_seq_parse_addresssnd_seq_disconnect_tosnd_seq_disconnect_fromsnd_seq_connect_tosnd_seq_connect_fromsnd_seq_reset_pool_inputsnd_seq_set_client_pool_inputsnd_seq_reset_pool_output#snd_seq_set_client_pool_output_roomsnd_seq_set_client_pool_outputsnd_seq_set_input_buffer_sizesnd_seq_get_input_buffer_sizesnd_seq_set_output_buffer_sizesnd_seq_get_output_buffer_sizesnd_seq_nonblock snd_seq_name snd_seq_close snd_seq_open withOpenMode parseAddresssnd_seq_set_client_infosnd_seq_query_next_clientsnd_seq_get_any_client_infosnd_seq_get_client_infosnd_seq_delete_portsnd_seq_create_portsnd_seq_delete_simple_portsnd_seq_create_simple_portsnd_seq_port_info_set_addrsnd_seq_port_info_get_addrsnd_seq_set_port_infosnd_seq_query_next_portsnd_seq_get_any_port_infosnd_seq_get_port_infosnd_seq_control_queuesnd_seq_free_queuesnd_seq_alloc_named_queuesnd_seq_alloc_queuesnd_seq_drop_input_buffersnd_seq_drop_inputsnd_seq_drop_output_buffersnd_seq_drop_outputsnd_seq_drain_outputsnd_seq_extract_outputsnd_seq_event_output_pendingsnd_seq_event_output_directsnd_seq_event_output_buffersnd_seq_event_outputsnd_seq_event_input_pendingsnd_seq_event_inputsnd_seq_sync_output_queue checkResultsnd_seq_set_queue_infosnd_seq_get_queue_infosnd_seq_queue_status_get_status"snd_seq_queue_status_get_real_time"snd_seq_queue_status_get_tick_timesnd_seq_queue_status_get_eventssnd_seq_queue_status_get_queuesnd_seq_get_queue_status _getStatussnd_seq_set_queue_temposnd_seq_get_queue_temposnd_seq_set_queue_timersnd_seq_get_queue_timersnd_seq_unsubscribe_portsnd_seq_subscribe_portsnd_seq_port_subscribe_set_dest!snd_seq_port_subscribe_set_sendersnd_seq_port_subscribe_get_dest!snd_seq_port_subscribe_get_sender_copy_clone _getQueue _getExclusive_getTimeUpdate _getTimeRealsetQueue setExclusive setTimeUpdate setTimeReal _getSender_getDest setSendersetDest subscribePortunsubscribePortsnd_seq_query_port_subscribers snd_seq_query_subscribe_set_root snd_seq_query_subscribe_get_addr snd_seq_query_subscribe_get_root _setClient_setPortsetIndexsetRoot queryPort