replace FOO_SUPPORT with HAVE_FOO, use float for jack_process function prototype
[aubio.git] / ext / midi / midi_driver.h
1 /* 
2  * This library is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU Library General Public License
4  * as published by the Free Software Foundation; either version 2 of
5  * the License, or (at your option) any later version.
6  *
7  * This library is distributed in the hope that it will be useful, but
8  * WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
10  * Library General Public License for more details.
11  *  
12  * You should have received a copy of the GNU Library General Public
13  * License along with this library; if not, write to the Free
14  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
15  * 02111-1307, USA
16  */
17
18 /* this file orginally taken from :
19  * FluidSynth - A Software Synthesizer
20  * Copyright (C) 2003  Peter Hanappe and others.
21  */
22
23
24 /** \file
25  * generic midi driver
26  */
27
28 #ifndef _AUBIO_MDRIVER_H
29 #define _AUBIO_MDRIVER_H
30
31 typedef void aubio_settings_t;
32
33 typedef int (*handle_midi_event_func_t)(void* data, aubio_midi_event_t* event);
34
35 /** aubio_midi_driver_t */
36 typedef struct _aubio_midi_driver_t aubio_midi_driver_t;
37
38 struct _aubio_midi_driver_t 
39 {
40   char* name;
41   handle_midi_event_func_t handler;
42   void* data;
43 };
44
45 //aubio_midi_driver_t* new_aubio_midi_driver(aubio_settings_t* settings, 
46 aubio_midi_driver_t* new_aubio_midi_driver(char * name, 
47     handle_midi_event_func_t handler, 
48     void* event_handler_data);
49 void del_aubio_midi_driver(aubio_midi_driver_t* driver);
50 void aubio_midi_driver_settings(aubio_settings_t* settings);
51
52 #include "aubioext.h"
53 #if HAVE_JACK 
54 void aubio_midi_direct_output(aubio_midi_driver_t * dev, aubio_midi_event_t * event); 
55 #endif /* HAVE_JACK */
56
57 #endif  /* _AUBIO_AUDRIVER_H */