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
00029
00030
00031
00032
00033 #ifndef __REMIX_TYPES_H__
00034 #define __REMIX_TYPES_H__
00035
00036 #include <limits.h>
00037
00038 #include "ctxdata.h"
00039
00040 #define RemixNone NULL
00041
00042 typedef int RemixError;
00043
00044 typedef float RemixPCM;
00045
00046 typedef long RemixCount;
00047 #define REMIX_COUNT_MAX (LONG_MAX - 1L)
00048 #define REMIX_COUNT_MIN LONG_MIN
00049 #define REMIX_COUNT_INFINITE REMIX_COUNT_MAX
00050
00051 typedef void RemixOpaque;
00052
00053 #if defined (__REMIX__)
00054 typedef struct _RemixBase RemixBase;
00055 #else
00056 typedef RemixOpaque RemixBase;
00057 #endif
00058
00059 typedef CDScalar RemixParameter;
00060
00061 typedef int RemixFlags;
00062 typedef double RemixSamplerate;
00063 typedef double RemixTempo;
00064 typedef union _RemixTime RemixTime;
00065
00066
00067
00068 #define REMIX_ERROR_OK 0
00069 #define REMIX_ERROR_INVALID 1
00070 #define REMIX_ERROR_NOENTITY 2
00071 #define REMIX_ERROR_EXISTS 3
00072 #define REMIX_ERROR_SILENCE 4
00073 #define REMIX_ERROR_NOOP 5
00074 #define REMIX_ERROR_SYSTEM 6
00075
00076 typedef enum {
00077 REMIX_CHANNEL_LEFT,
00078 REMIX_CHANNEL_RIGHT,
00079 REMIX_CHANNEL_CENTRE,
00080 REMIX_CHANNEL_REAR,
00081 REMIX_CHANNEL_REAR_LEFT,
00082 REMIX_CHANNEL_REAR_RIGHT,
00083 REMIX_CHANNEL_REAR_CENTRE,
00084 REMIX_CHANNEL_LFE
00085 } RemixChannelName;
00086
00087 typedef enum {
00088 REMIX_TIME_INVALID,
00089 REMIX_TIME_SAMPLES,
00090 REMIX_TIME_SECONDS,
00091 REMIX_TIME_BEAT24S
00092 } RemixTimeType;
00093
00094
00095 typedef enum {
00096 REMIX_ENVELOPE_LINEAR,
00097 REMIX_ENVELOPE_SPLINE
00098 } RemixEnvelopeType;
00099
00100 union _RemixTime {
00101 long TIME;
00102 RemixCount samples;
00103 float seconds;
00104 int beat24s;
00105 };
00106
00107 typedef enum {
00108 REMIX_TYPE_BOOL = 0,
00109 REMIX_TYPE_INT,
00110 REMIX_TYPE_FLOAT,
00111 REMIX_TYPE_STRING,
00112 REMIX_TYPE_BASE
00113 } RemixParameterType;
00114
00115 typedef enum {
00116 REMIX_CONSTRAINT_TYPE_NONE = 0,
00117 REMIX_CONSTRAINT_TYPE_LIST,
00118 REMIX_CONSTRAINT_TYPE_RANGE
00119 } RemixConstraintType;
00120
00121
00122 #define REMIX_RANGE_LOWER_BOUND_VALID (1<<0)
00123 #define REMIX_RANGE_UPPER_BOUND_VALID (1<<1)
00124 #define REMIX_RANGE_STEP_VALID (1<<2)
00125 #define REMIX_RANGE_ALL_VALID (REMIX_RANGE_LOWER_BOUND_VALID | \
00126 REMIX_RANGE_UPPER_BOUND_VALID | \
00127 REMIX_RANGE_STEP_VALID)
00128
00129 #define REMIX_HINT_DEFAULT (0)
00130 #define REMIX_HINT_LOG (1<<0)
00131 #define REMIX_HINT_TIME (1<<1)
00132 #define REMIX_HINT_FILENAME (1<<2)
00133
00134 #define REMIX_CONSTRAINT_EMPTY ((RemixConstraint){NULL})
00135
00136 #define REMIX_SAMPLES(x) ((RemixTime){(RemixCount)(x)})
00137 #define REMIX_SECONDS(x) ((RemixTime){(float)(x)})
00138 #define REMIX_BEAT24S(x) ((RemixTime){(int)(x)})
00139
00140
00141 #if (defined(__REMIX__) || defined(__REMIX_PLUGIN__))
00142 #include <remix/remix_plugin.h>
00143 #else
00144 typedef RemixOpaque RemixEnv;
00145 typedef RemixOpaque RemixPoint;
00146 typedef RemixOpaque RemixEnvelope;
00147 typedef RemixOpaque RemixChunk;
00148 typedef RemixOpaque RemixChannel;
00149 typedef RemixOpaque RemixStream;
00150 typedef RemixOpaque RemixDeck;
00151 typedef RemixOpaque RemixTrack;
00152 typedef RemixOpaque RemixLayer;
00153 typedef RemixOpaque RemixSound;
00154 typedef RemixOpaque RemixMetaAuthor;
00155 typedef RemixOpaque RemixMetaText;
00156 typedef RemixOpaque RemixPlugin;
00157 typedef RemixOpaque RemixSquareTone;
00158 typedef RemixOpaque RemixMonitor;
00159 #endif
00160
00161 #if defined(__cplusplus)
00162 }
00163 #endif
00164
00165 #endif