22 #ifndef MEDIASTATION_MEDIASCRIPT_SCRIPTVALUE_H 23 #define MEDIASTATION_MEDIASCRIPT_SCRIPTVALUE_H 25 #include "common/str.h" 27 #include "mediastation/datafile.h" 28 #include "mediastation/mediascript/scriptconstants.h" 29 #include "mediastation/mediascript/collection.h" 37 ScriptValue() : _type(kScriptValueTypeEmpty), _collection(
nullptr) {}
42 ScriptValueType getType()
const {
return _type; }
44 void setToFloat(uint i);
45 void setToFloat(
int i);
46 void setToFloat(
double d);
47 double asFloat()
const;
50 double asFloatOrTime()
const;
52 void setToBool(
bool b);
55 void setToTime(
double d);
56 double asTime()
const;
58 void setToParamToken(uint paramToken);
59 uint asParamToken()
const;
61 void setToActorId(uint actorId);
62 uint asActorId()
const;
70 void setToFunctionId(uint functionId);
71 uint asFunctionId()
const;
73 void setToMethodId(BuiltInMethod methodId);
74 BuiltInMethod asMethodId()
const;
98 ScriptValueType _type = kScriptValueTypeEmpty;
105 BuiltInMethod methodId;
109 void clearCollection();
113 static bool compareEmptyValues(Opcode op);
115 static bool compare(Opcode op, uint left, uint right);
116 static bool compare(Opcode op,
bool left,
bool right);
117 static bool compare(Opcode op,
double left,
double right);
121 static double binaryMathOperation(Opcode op,
double left,
double right);