JACK-AUDIO-CONNECTION-KIT  0.124.1
midiport.h
Go to the documentation of this file.
00001 /*
00002     Copyright (C) 2004 Ian Esten
00003     
00004     This program is free software; you can redistribute it and/or modify
00005     it under the terms of the GNU Lesser General Public License as published by
00006     the Free Software Foundation; either version 2.1 of the License, or
00007     (at your option) any later version.
00008     
00009     This program is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012     GNU Lesser General Public License for more details.
00013     
00014     You should have received a copy of the GNU Lesser General Public License
00015     along with this program; if not, write to the Free Software 
00016     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00017 
00018 */
00019 
00020 
00021 #ifndef __JACK_MIDIPORT_H
00022 #define __JACK_MIDIPORT_H
00023 
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027         
00028 #include <jack/weakmacros.h>
00029 #include <jack/types.h>
00030 #include <stdlib.h>
00031 
00032         
00034 typedef unsigned char jack_midi_data_t;
00035 
00036 
00038 typedef struct _jack_midi_event
00039 {
00040         jack_nframes_t    time;   
00041         size_t            size;   
00042         jack_midi_data_t *buffer; 
00043 } jack_midi_event_t;
00044 
00045 
00051 /* Get number of events in a port buffer.
00052  *
00053  * @param port_buffer Port buffer from which to retrieve event.
00054  * @return number of events inside @a port_buffer
00055  */
00056 jack_nframes_t
00057 jack_midi_get_event_count(void*          port_buffer) JACK_OPTIONAL_WEAK_EXPORT;
00058 
00059 
00071 int
00072 jack_midi_event_get(jack_midi_event_t *event,
00073                     void              *port_buffer,
00074                     uint32_t           event_index) JACK_OPTIONAL_WEAK_EXPORT;
00075 
00076 
00085 void
00086 jack_midi_clear_buffer(void           *port_buffer) JACK_OPTIONAL_WEAK_EXPORT;
00087 
00088 
00096 size_t
00097 jack_midi_max_event_size(void* port_buffer) JACK_OPTIONAL_WEAK_EXPORT;
00098 
00099 
00119 jack_midi_data_t*
00120 jack_midi_event_reserve(void           *port_buffer,
00121                         jack_nframes_t  time, 
00122                         size_t          data_size) JACK_OPTIONAL_WEAK_EXPORT;
00123 
00124 
00146 int
00147 jack_midi_event_write(void                   *port_buffer,
00148                       jack_nframes_t          time,
00149                       const jack_midi_data_t *data,
00150                       size_t                  data_size) JACK_OPTIONAL_WEAK_EXPORT;
00151 
00152 
00161 uint32_t
00162 jack_midi_get_lost_event_count(void           *port_buffer) JACK_OPTIONAL_WEAK_EXPORT;
00163 
00167 #ifdef __cplusplus
00168 }
00169 #endif
00170 
00171 
00172 #endif /* __JACK_MIDIPORT_H */
00173 
00174 
00175