Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef INCLUDED_OSCTYPES_H
00031 #define INCLUDED_OSCTYPES_H
00032
00033
00034 namespace osc{
00035
00036
00037
00038 #if defined(__BORLANDC__) || defined(_MSC_VER)
00039
00040 typedef __int64 int64;
00041 typedef unsigned __int64 uint64;
00042
00043 #else
00044
00045 typedef long long int64;
00046 typedef unsigned long long uint64;
00047
00048 #endif
00049
00050
00051
00052 #ifdef __x86_64__
00053
00054 typedef signed int int32;
00055 typedef unsigned int uint32;
00056
00057 #else
00058
00059 typedef signed long int32;
00060 typedef unsigned long uint32;
00061
00062 #endif
00063
00064
00065
00066 enum TypeTagValues {
00067 TRUE_TYPE_TAG = 'T',
00068 FALSE_TYPE_TAG = 'F',
00069 NIL_TYPE_TAG = 'N',
00070 INFINITUM_TYPE_TAG = 'I',
00071 INT32_TYPE_TAG = 'i',
00072 FLOAT_TYPE_TAG = 'f',
00073 CHAR_TYPE_TAG = 'c',
00074 RGBA_COLOR_TYPE_TAG = 'r',
00075 MIDI_MESSAGE_TYPE_TAG = 'm',
00076 INT64_TYPE_TAG = 'h',
00077 TIME_TAG_TYPE_TAG = 't',
00078 DOUBLE_TYPE_TAG = 'd',
00079 STRING_TYPE_TAG = 's',
00080 SYMBOL_TYPE_TAG = 'S',
00081 BLOB_TYPE_TAG = 'b'
00082 };
00083
00084
00085
00086
00087
00088 struct BundleInitiator{
00089 explicit BundleInitiator( uint64 timeTag_ ) : timeTag( timeTag_ ) {}
00090 uint64 timeTag;
00091 };
00092
00093 extern BundleInitiator BeginBundleImmediate;
00094
00095 inline BundleInitiator BeginBundle( uint64 timeTag=1 )
00096 {
00097 return BundleInitiator(timeTag);
00098 }
00099
00100
00101 struct BundleTerminator{
00102 };
00103
00104 extern BundleTerminator EndBundle;
00105
00106 struct BeginMessage{
00107 explicit BeginMessage( const char *addressPattern_ ) : addressPattern( addressPattern_ ) {}
00108 const char *addressPattern;
00109 };
00110
00111 struct MessageTerminator{
00112 };
00113
00114 extern MessageTerminator EndMessage;
00115
00116
00117
00118
00119
00120 struct NilType{
00121 };
00122
00123
00124
00125
00126 struct InfinitumType{
00127 };
00128
00129 extern InfinitumType Infinitum;
00130
00131 struct RgbaColor{
00132 RgbaColor() {}
00133 explicit RgbaColor( uint32 value_ ) : value( value_ ) {}
00134 uint32 value;
00135
00136 operator uint32() const { return value; }
00137 };
00138
00139
00140 struct MidiMessage{
00141 MidiMessage() {}
00142 explicit MidiMessage( uint32 value_ ) : value( value_ ) {}
00143 uint32 value;
00144
00145 operator uint32() const { return value; }
00146 };
00147
00148
00149 struct TimeTag{
00150 TimeTag() {}
00151 explicit TimeTag( uint64 value_ ) : value( value_ ) {}
00152 uint64 value;
00153
00154 operator uint64() const { return value; }
00155 };
00156
00157
00158 struct Symbol{
00159 Symbol() {}
00160 explicit Symbol( const char* value_ ) : value( value_ ) {}
00161 const char* value;
00162
00163 operator const char *() const { return value; }
00164 };
00165
00166
00167 struct Blob{
00168 Blob() {}
00169 explicit Blob( const void* data_, unsigned long size_ )
00170 : data( data_ ), size( size_ ) {}
00171 const void* data;
00172 unsigned long size;
00173 };
00174
00175 }
00176
00177
00178 #endif