merge (with conflict fixes) with master (even against rgareus' recommendation)
[ardour.git] / libs / midi++2 / midi++ / types.h
index b9d9bf33e7c4d6f7abb5e3bee7395e41f9a8f0ae..92858eaa601c7f89d18bf172d1fc572a1923de40 100644 (file)
@@ -1,12 +1,40 @@
+/*
+    Copyright (C) 2000-2007 Paul Davis 
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
 #ifndef __midi_types_h__
 #define __midi_types_h__
 
+#include <inttypes.h>
+
+#include "midi++/libmidi_visibility.h"
+
 namespace MIDI {
 
        typedef char           channel_t;
-       typedef float controller_value_t;
+       typedef float          controller_value_t;
        typedef unsigned char  byte;
        typedef unsigned short pitchbend_t;
+       typedef uint32_t       timestamp_t;
+
+       /** XXX: dupes from libardour */
+       typedef int64_t  framecnt_t;
+       typedef uint32_t pframes_t;
 
        enum eventType {
            none = 0x0,
@@ -33,10 +61,10 @@ namespace MIDI {
            reset = 0xFF
     };
 
-    extern const char *controller_names[];
+    LIBMIDIPP_API extern const char *controller_names[];
        byte decode_controller_name (const char *name);
 
-    struct EventTwoBytes {
+    struct LIBMIDIPP_API EventTwoBytes {
        union {
            byte note_number;
            byte controller_number;
@@ -47,20 +75,20 @@ namespace MIDI {
        };
     };
 
-    enum MTC_FPS {
+    enum LIBMIDIPP_API MTC_FPS {
            MTC_24_FPS = 0,
            MTC_25_FPS = 1,
            MTC_30_FPS_DROP = 2,
            MTC_30_FPS = 3
     };
 
-    enum MTC_Status {
+    enum LIBMIDIPP_API MTC_Status {
            MTC_Stopped = 0,
            MTC_Forward,
-           MTC_Backward,
+           MTC_Backward
     };
 
-}; /* namespace MIDI */
+} // namespace MIDI
 
 #endif // __midi_types_h__