mirror of
https://github.com/jwetzell/QControlKit.git
synced 2026-08-17 21:24:07 +00:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bd099a2162 | |||
| effd9d3f92 | |||
| e7f60ba782 | |||
| cd6115bfbc | |||
| e455b42b72 | |||
| 6f683ba6e8 | |||
| 3656a9f9b7 | |||
| c750297cf5 | |||
| b639dc401f | |||
| 96adbadbd7 |
@@ -1,8 +1,8 @@
|
|||||||
name: Publish to NuGet
|
name: Publish to NuGet
|
||||||
on:
|
on:
|
||||||
push:
|
release:
|
||||||
branches:
|
types:
|
||||||
- master # Default release branch
|
- created # When a release is made
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
publish:
|
||||||
name: build, pack & publish
|
name: build, pack & publish
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
public const string Cue = "Cue";
|
public const string Cue = "Cue";
|
||||||
public const string CueList = "Cue List";
|
public const string CueList = "Cue List";
|
||||||
public const string Cart = "Cart";
|
public const string Cart = "Cart";
|
||||||
|
public const string CueCart = "Cue Cart";
|
||||||
public const string Group = "Group";
|
public const string Group = "Group";
|
||||||
public const string Audio = "";
|
public const string Audio = "";
|
||||||
public const string Mic = "Mic";
|
public const string Mic = "Mic";
|
||||||
@@ -46,73 +47,231 @@
|
|||||||
|
|
||||||
public static class QOSCKey
|
public static class QOSCKey
|
||||||
{
|
{
|
||||||
public const string UID = "uniqueID";
|
public const string ActionElapsed = "actionElapsed";
|
||||||
public const string Type = "type";
|
public const string AllowsEditingDuration = "allowsEditingDuration";
|
||||||
public const string Parent = "parent";
|
|
||||||
public const string Name = "name";
|
|
||||||
public const string Number = "number";
|
|
||||||
public const string Notes = "notes";
|
|
||||||
public const string FileTarget = "fileTarget";
|
|
||||||
public const string CueTargetNumber = "cueTargetNumber";
|
|
||||||
public const string CurrentCueTarget = "currentCueTarget";
|
|
||||||
public const string ColorName = "colorName";
|
|
||||||
public const string Flagged = "flagged";
|
|
||||||
public const string Armed = "armed";
|
public const string Armed = "armed";
|
||||||
|
public const string AutoLoad = "autoLoad"; //implement on QCue
|
||||||
|
|
||||||
|
public const string CartPosition = "cartPosition";
|
||||||
|
public const string ColorName = "colorName";
|
||||||
|
public const string Cues = "cues";
|
||||||
|
public const string CueTargetNumber = "cueTargetNumber";
|
||||||
|
public const string CueTargetId = "cueTargetId"; //implement on QCue
|
||||||
|
|
||||||
|
public const string CurrentCueTarget = "currentCueTarget";
|
||||||
|
public const string CurrentFileTime = "currentFileTime"; //implement on QCue
|
||||||
public const string ContinueMode = "continueMode";
|
public const string ContinueMode = "continueMode";
|
||||||
|
public const string CurrentDuration = "currentDuration";
|
||||||
|
|
||||||
|
public const string DefaultName = "defaultName"; //implement on QCue
|
||||||
|
public const string DisplayName = "displayName"; //implement on QCue
|
||||||
|
public const string DuckLevel = "duckLevel"; //implement on QCue
|
||||||
|
public const string DuckOthers = "duckOthers"; //implement on QCue
|
||||||
|
public const string DuckTime = "duckTime"; //implement on QCue
|
||||||
|
|
||||||
|
|
||||||
|
public const string FileTarget = "fileTarget";
|
||||||
|
public const string Flagged = "flagged";
|
||||||
|
public const string FadeAndStopOthers = "fadeAndStopOthers"; //implement on QCue
|
||||||
|
public const string FadeAndStopOthersTime = "fadeAndStopOthersTime"; //implement on QCue
|
||||||
|
|
||||||
|
|
||||||
|
public const string HasFileTargets = "hasFileTargets";
|
||||||
|
public const string HasCueTargets = "hasCueTargets";
|
||||||
|
|
||||||
|
public const string IsActionRunning = "isActionRunning"; //implement on QCue
|
||||||
|
public const string IsBroken = "isBroken";
|
||||||
|
public const string IsLoaded = "isLoaded";
|
||||||
|
public const string IsOverridden = "isOverridden";
|
||||||
|
public const string IsPanicking = "isPanicking";
|
||||||
|
public const string IsPaused = "isPaused";
|
||||||
|
public const string IsRunning = "isRunning";
|
||||||
|
public const string IsTailingOut = "isTailingOut";
|
||||||
|
|
||||||
|
public const string ListName = "listName";
|
||||||
|
public const string LoadAt = "loadAt"; //implement on QCue
|
||||||
|
public const string LoadActionAt = "loadActionAt"; //implement on QCue
|
||||||
|
|
||||||
|
public const string MaxTimeInCueSequence = "maxTimeInCueSequence"; //implement on QCue
|
||||||
|
|
||||||
|
|
||||||
|
public const string Name = "name";
|
||||||
|
public const string Notes = "notes";
|
||||||
|
public const string Number = "number";
|
||||||
|
|
||||||
|
public const string PanicInTime = "panicInTime"; //implement on QCue
|
||||||
public const string PreWait = "preWait";
|
public const string PreWait = "preWait";
|
||||||
public const string PostWait = "postWait";
|
public const string PostWait = "postWait";
|
||||||
public const string CurrentDuration = "currentDuration";
|
|
||||||
public const string PercentPreWaitElapsed = "percentPreWaitElapsed";
|
public const string PercentPreWaitElapsed = "percentPreWaitElapsed";
|
||||||
public const string PercentPostWaitElapsed = "percentPostWaitElapsed";
|
public const string PercentPostWaitElapsed = "percentPostWaitElapsed";
|
||||||
public const string PercentActionElapsed = "percentActionElapsed";
|
public const string PercentActionElapsed = "percentActionElapsed";
|
||||||
public const string PreWaitElapsed = "preWaitElapsed";
|
public const string PreWaitElapsed = "preWaitElapsed";
|
||||||
|
public const string Parent = "parent";
|
||||||
public const string PostWaitElapsed = "postWaitElapsed";
|
public const string PostWaitElapsed = "postWaitElapsed";
|
||||||
public const string ActionElapsed = "actionElapsed";
|
|
||||||
public const string GroupMode = "mode";
|
|
||||||
public const string CartPosition = "cartPosition";
|
|
||||||
public const string CartRows = "cartRows";
|
|
||||||
public const string CartColumns = "cartColumns";
|
|
||||||
public const string HasFileTargets = "hasFileTargets";
|
|
||||||
public const string HasCueTargets = "hasCueTargets";
|
|
||||||
public const string AllowsEditingDuration = "allowsEditingDuration";
|
|
||||||
public const string IsPanicking = "isPanicking";
|
|
||||||
public const string IsTailingOut = "isTailingOut";
|
|
||||||
public const string IsRunning = "isRunning";
|
|
||||||
public const string IsLoaded = "isLoaded";
|
|
||||||
public const string IsPaused = "isPaused";
|
|
||||||
public const string IsBroken = "isBroken";
|
|
||||||
public const string IsOverridden = "isOverridden";
|
|
||||||
public const string TranslationX = "translationX";
|
|
||||||
public const string TranslationY = "translationY";
|
|
||||||
public const string ScaleX = "scaleX";
|
|
||||||
public const string ScaleY = "scaleY";
|
|
||||||
public const string OriginX = "originX";
|
|
||||||
public const string OriginY = "originY";
|
|
||||||
public const string Quaternion = "quaternion";
|
|
||||||
public const string SurfaceSize = "surfaceSize";
|
|
||||||
public const string CueSize = "cueSize";
|
|
||||||
public const string PreserveAspectRatio = "preserveAspectRatio";
|
|
||||||
public const string Layer = "layer";
|
|
||||||
public const string Patch = "patch";
|
|
||||||
public const string PatchList = "patchList";
|
|
||||||
public const string SurfaceList = "surfaceList";
|
|
||||||
public const string Cues = "cues";
|
|
||||||
public const string Children = "children";
|
|
||||||
public const string ListName = "listName";
|
|
||||||
public const string SurfaceID = "surfaceID";
|
|
||||||
public const string FullSurface = "fullSurface";
|
|
||||||
public const string Opacity = "opacity";
|
|
||||||
public const string RotationZ = "rotationZ";
|
|
||||||
public const string RotationY = "rotationY";
|
|
||||||
public const string RotationX = "rotationX";
|
|
||||||
public const string PlaybackPositionId = "playbackPositionId";
|
|
||||||
public const string StartNextCueWhenSliceEnds = "startNextCueWhenSliceEnds";
|
public const string StartNextCueWhenSliceEnds = "startNextCueWhenSliceEnds";
|
||||||
public const string StopTargetWhenSliceEnds = "stopTargetWhenSliceEnds";
|
public const string StopTargetWhenSliceEnds = "stopTargetWhenSliceEnds";
|
||||||
public const string SliderLevel = "sliderLevel";
|
public const string SecondTriggerAction = "secondTriggerAction"; //implement on QCue
|
||||||
|
public const string SecondTriggerOnRelease = "secondTriggerOnRelease"; //implement on QCue
|
||||||
|
public const string SoloCueInTime = "soloCueInTime"; //implement on QCue
|
||||||
|
|
||||||
|
|
||||||
|
public const string TempCueTargetNumber = "tempCueTargetNumber"; //implement on QCue
|
||||||
|
public const string TempCueTargetId = "tempCueTargetId"; //implement on QCue
|
||||||
|
public const string TempDuration = "tempDuration"; //implement on QCue
|
||||||
|
public const string Type = "type";
|
||||||
|
|
||||||
|
public const string UID = "uniqueID";
|
||||||
|
public const string UniqueID = "uniqueID";
|
||||||
|
public const string ValuesForKeys = "valuesForKeys";
|
||||||
|
public const string ValuesForKeysWithArguments = "valuesForKeysWithArguments";
|
||||||
|
|
||||||
|
//Group Cue Keys
|
||||||
|
public const string CartColumns = "cartColumns";
|
||||||
|
public const string CartRows = "cartRows";
|
||||||
|
public const string Children = "children";
|
||||||
|
public const string Go = "go";
|
||||||
|
public const string Mode = "mode";
|
||||||
|
public const string MoveCartCue = "moveCartCue";
|
||||||
|
public const string PlaybackPositionId = "playbackPositionId";
|
||||||
|
public const string PlaybackPosition = "playbackPosition"; //Implement on Group Cue
|
||||||
|
public const string PlayheadId = "playheadId"; //Implement on Group Cue
|
||||||
|
public const string Playhead = "playhead"; //Implement on Group Cue
|
||||||
|
|
||||||
|
//Audio Cue Keys
|
||||||
|
public const string DoFade = "doFade"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string DoPitchShift = "doPitchShift"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string EndTime = "endTime"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string Gang = "gang"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string InfiniteLoop = "infiniteLoop"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string Level = "level"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string Levels = "levels"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string LiveAverageLevel = "liveAverageLevel"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string LockFadeToCue = "lockFadeToCue"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string NumChannelsIn = "numChannelsIn"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string PatchList = "patchList"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string PlayCount = "playCount"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string LiveRate = "liveRate"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string SliceMarkers = "sliceMarkers"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string SliceMarker = "sliceMarker"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string Time = "time"; //Implement on Audio Cue related to slicemarker and Video Cue
|
||||||
|
public const string LastSlicePlayCount = "lastSlicePlayCount"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string LastSliceInfiniteLoop = "lastSliceInfiniteLoop"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string SliderLevel = "sliderLevel"; // Implement on Video Cue
|
||||||
|
public const string SliderLevels = "sliderLevels"; //Implement on Audio Cue and Video Cue
|
||||||
|
public const string StartTime = "startTime"; // Implement on Audio Cue and Video Cue
|
||||||
|
|
||||||
|
//Mic Cue Keys
|
||||||
|
public const string ChannelOffset = "channelOffset"; //Implement on Mic Cue
|
||||||
|
public const string Channels = "channels"; //Implement on Mic Cue
|
||||||
|
|
||||||
|
//Video Cue Keys
|
||||||
|
public const string CueSize = "cueSize"; //Implement on Video Cue
|
||||||
|
public const string DoEffect = "doEffect"; //Implement on Video Cue
|
||||||
|
public const string EffectIndex = "effectIndex"; //Implement on Video Cue
|
||||||
|
public const string EffectSet = "effectSet"; //Implement on Video Cue
|
||||||
|
public const string liveEffectSet = "liveEffectSet"; //Implement on Video Cue
|
||||||
|
public const string FullSurface = "fullSurface"; //Implement on Video Cue
|
||||||
|
public const string HoldLastFrame = "holdLastFrame"; //Implement on Video Cue
|
||||||
|
public const string Layer = "layer"; //Implement on Video Cue
|
||||||
|
public const string Opacity = "opacity"; //Implement on Video Cue
|
||||||
|
public const string OriginX = "originX"; //Implement on Video Cue
|
||||||
|
public const string OriginY = "originY"; //Implement on Video Cue
|
||||||
|
public const string Origin = "origin"; //Implement on Video Cue
|
||||||
|
public const string PreserveAspectRatio = "preserveAspectRatio"; //Implement on Video Cue
|
||||||
|
public const string Quaternion = "quaternion"; //Implement on Video Cue
|
||||||
|
public const string RotateZ = "rotateZ"; //Implement on Video Cue
|
||||||
|
public const string RotateY = "rotateY"; //Implement on Video Cue
|
||||||
|
public const string RotateX = "rotateX"; //Implement on Video Cue
|
||||||
|
public const string LiveRotation = "liveRotation"; //Implement on Video Cue
|
||||||
|
public const string XAxis = "Xaxis"; //Implement on Video Cue
|
||||||
|
public const string YAxis = "Yaxis"; //Implement on Video Cue
|
||||||
|
public const string ZAxis = "Zaxis"; //Implement on Video Cue
|
||||||
|
public const string X = "x"; //Implement on Video Cue
|
||||||
|
public const string Y = "y"; //Implement on Video Cue
|
||||||
|
public const string Z = "z"; //Implement on Video Cue
|
||||||
|
public const string ScaleX = "scaleX"; //Implement on Video Cue
|
||||||
|
public const string LiveScaleX = "liveScaleX"; //Implement on Video Cue
|
||||||
|
public const string ScaleY = "scaleY"; //Implement on Video Cue
|
||||||
|
public const string LiveScaleY = "liveScaleY"; //Implement on Video Cue
|
||||||
|
public const string Scale = "scale"; //Implement on Video Cue
|
||||||
|
public const string LiveScale = "liveScale"; //Implement on Video Cue
|
||||||
|
public const string SurfaceID = "surfaceID"; //Implement on Video Cue
|
||||||
|
public const string SurfaceList = "surfaceList"; //Implement on Video Cue
|
||||||
|
public const string SurfaceName = "surfaceName"; //Implement on Video Cue
|
||||||
|
public const string SurfaceSize = "surfaceSize"; //Implement on Video Cue
|
||||||
|
public const string TranslationX = "translationX";
|
||||||
|
public const string LiveTranslationX = "liveTranslationX"; //Implement on Video Cue
|
||||||
|
public const string TranslationY = "translationY";
|
||||||
|
public const string LiveTranslationY = "liveTranslationY"; //Implement on Video Cue
|
||||||
|
public const string Translation = "translation"; //Implement on Video Cue
|
||||||
|
public const string LiveTranslation = "liveTranslation"; //Implement on Video Cue
|
||||||
|
|
||||||
|
//Camera Cue Keys (Extension of Video Cue
|
||||||
|
public const string CameraPatch = "cameraPatch";
|
||||||
|
|
||||||
|
//Text Cue Keys
|
||||||
|
public const string FixedWidth = "fixedWidth"; //Implement on Text Cue
|
||||||
|
public const string Text = "text"; //Implement on Text Cue
|
||||||
|
public const string LiveText = "liveText"; //Implement on Text Cue
|
||||||
|
public const string Format = "format"; //Implement on Text Cue
|
||||||
|
public const string Alignment = "alignment"; //Implement on Text Cue
|
||||||
|
public const string FontFamily = "fontFamily"; //Implement on Text Cue
|
||||||
|
public const string FontStyle = "fontStyle"; //Implement on Text Cue
|
||||||
|
public const string FontFamilyAndStyle = "fontFamilyAndStyle"; //Implement on Text Cue
|
||||||
|
public const string FontName = "fontName"; //Implement on Text Cue
|
||||||
|
public const string FontSize = "fontSize"; //Implement on Text Cue
|
||||||
|
public const string LineSpacing = "lineSpacing"; //Implement on Text Cue
|
||||||
|
public const string Color = "color"; //Implement on Text Cue
|
||||||
|
public const string BackgroundColor = "backgroundColor"; //Implement on Text Cue
|
||||||
|
public const string StrikethroughColor = "strikethroughColor"; //Implement on Text Cue
|
||||||
|
public const string UnderlineColor = "underlineColor"; //Implement on Text Cue
|
||||||
|
public const string StrikethroughStyle = "strikethroughStyle"; //Implement on Text Cue
|
||||||
|
public const string UnderlineStyle = "underlineStyle"; //Implement on Text Cue
|
||||||
|
public const string OutputSize = "outputSize"; //Implement on Text Cue
|
||||||
|
|
||||||
|
//Light Cue Keys
|
||||||
|
public const string AlwaysCollate = "alwaysCollate";
|
||||||
|
public const string CollateAndStart = "collateAndStart";
|
||||||
|
public const string LightCommandText = "lightCommandText";
|
||||||
|
public const string Prune = "prune";
|
||||||
|
public const string PruneCommands = "pruneCommands";
|
||||||
|
public const string RemoveLightCommandsMatching = "removeLightCommandsMatching";
|
||||||
|
public const string ReplaceLightCommand = "replaceLightCommand";
|
||||||
|
public const string SafeSort = "safeSort";
|
||||||
|
public const string SafeSortCommands = "safeSortCommands";
|
||||||
|
public const string SetLight = "setLight";
|
||||||
|
public const string UpdateLightCommand = "updateLightCommand";
|
||||||
|
|
||||||
|
//Fade Cue Keys
|
||||||
|
//Network Cue Keys
|
||||||
|
public const string CustomString = "customString";
|
||||||
|
public const string MessageType = "messageType";
|
||||||
|
public const string QLabCommand = "qlabCommand";
|
||||||
|
public const string QLabCueNumber = "qlabCueNumber";
|
||||||
|
public const string QLabCueParameters = "qlabCueParameters";
|
||||||
|
public const string RawString = "rawString";
|
||||||
|
public const string UdpString = "udpString";
|
||||||
|
|
||||||
|
//MIDI Cue Keys
|
||||||
|
|
||||||
|
//Midi File Cue Keys
|
||||||
|
public const string Patch = "patch"; //Implement on Audio Cue and Video Cue and Network Cue
|
||||||
|
public const string Rate = "rate"; //Implement on Audio Cue and Video Cue
|
||||||
|
|
||||||
|
//Devamp Cue Keys
|
||||||
|
public const string startNextCueWhenSliceEnds = "startNextCueWhenSliceEnds";
|
||||||
|
public const string stopTargetWhenSliceEnds = "stopTargetWhenSliceEnds";
|
||||||
|
|
||||||
|
//Script Cue Keys
|
||||||
|
public const string ScriptSource = "scriptSource";
|
||||||
|
|
||||||
|
|
||||||
// v3
|
// v3
|
||||||
public const string Duration = "duration";
|
public const string Duration = "duration";
|
||||||
public const string FullScreen = "fullScreen";
|
public const string FullScreen = "fullScreen"; //Implement on Video Cue
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class QIdentifiers
|
public static class QIdentifiers
|
||||||
@@ -143,16 +302,191 @@
|
|||||||
public const string Default = "default"; //is this even an option?
|
public const string Default = "default"; //is this even an option?
|
||||||
}
|
}
|
||||||
|
|
||||||
enum QFadeMode
|
public enum QTriggerAction
|
||||||
|
{
|
||||||
|
Nothing = 0,
|
||||||
|
Panics = 1,
|
||||||
|
Stops = 2,
|
||||||
|
Hard_Stops = 3,
|
||||||
|
Hard_Stops_And_Restarts = 4
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum QFadeMode
|
||||||
{
|
{
|
||||||
Absolute = 0,
|
Absolute = 0,
|
||||||
Relative = 1
|
Relative = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
enum QContinueMode
|
public enum QContinueMode
|
||||||
{
|
{
|
||||||
NoContinue = 0,
|
NoContinue = 0,
|
||||||
AutoContinue = 1,
|
AutoContinue = 1,
|
||||||
AutoFollow = 2
|
AutoFollow = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum QMSCCommand
|
||||||
|
{
|
||||||
|
GO = 1,
|
||||||
|
STOP = 2,
|
||||||
|
RESUME = 3,
|
||||||
|
TIMED_GO = 4,
|
||||||
|
LOAD = 5,
|
||||||
|
SET = 6,
|
||||||
|
FIRE = 7,
|
||||||
|
ALL_OFF =8,
|
||||||
|
RESTORE = 9,
|
||||||
|
RESET = 10,
|
||||||
|
GO_OFF = 11,
|
||||||
|
GO_OR_JAM_CLOCK = 16,
|
||||||
|
STANDBY_PLUSS = 17,
|
||||||
|
STANDBY_MINUS = 18,
|
||||||
|
SEQUENCE_PLUS = 19,
|
||||||
|
SEQUENCE_MINUS = 20,
|
||||||
|
START_CLOCK = 21,
|
||||||
|
STOP_CLOCK = 22,
|
||||||
|
ZERO_CLOCK = 23,
|
||||||
|
SET_CLOCK = 24,
|
||||||
|
MTC_CHASE_ON = 25,
|
||||||
|
MTC_CHASE_OFF = 26,
|
||||||
|
OPEN_CUE_LIST = 27,
|
||||||
|
CLOSE_CUE_LIST = 28,
|
||||||
|
OPEN_CUE_PATH = 29,
|
||||||
|
CLOSE_CUE_PATH = 30,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum QMSCCommandFormat
|
||||||
|
{
|
||||||
|
All_Types = 127,
|
||||||
|
Lighting_General = 1,
|
||||||
|
Moving_Lights = 2,
|
||||||
|
Color_Changers = 3,
|
||||||
|
Strobes = 4,
|
||||||
|
Lasers = 5,
|
||||||
|
Chasers = 6,
|
||||||
|
Sound_General = 16,
|
||||||
|
Music = 17,
|
||||||
|
CD_Players = 18,
|
||||||
|
EPROM_Playback = 19,
|
||||||
|
Audio_Tape_Machines = 20,
|
||||||
|
Intercoms = 21,
|
||||||
|
Amplifiers = 22,
|
||||||
|
Audio_Effects_Devices = 23,
|
||||||
|
Equalizers = 24,
|
||||||
|
Machinery_General = 32,
|
||||||
|
Rigging = 33,
|
||||||
|
Flys = 34,
|
||||||
|
Lifts = 35,
|
||||||
|
Turntables = 36,
|
||||||
|
Trusses = 37,
|
||||||
|
Robots = 38,
|
||||||
|
Animation = 39,
|
||||||
|
Floats = 40,
|
||||||
|
Breakaways = 41,
|
||||||
|
Barges = 42,
|
||||||
|
Video_General = 48,
|
||||||
|
Video_Tape_Machines = 49,
|
||||||
|
Video_Cassette_Machines = 50,
|
||||||
|
Video_Disc_Players = 51,
|
||||||
|
Video_Switchers = 52,
|
||||||
|
Video_Effects = 53,
|
||||||
|
Video_Character_Generators = 54,
|
||||||
|
Video_Still_Stores = 55,
|
||||||
|
Video_Monitors = 56,
|
||||||
|
Projection_General = 64,
|
||||||
|
Film_Projectors = 65,
|
||||||
|
Slide_Projectors = 66,
|
||||||
|
Video_Projectors = 67,
|
||||||
|
Dissolvers = 68,
|
||||||
|
Shutter_Controls = 69,
|
||||||
|
Process_Control_General = 80,
|
||||||
|
Hydraulic_Oil = 81,
|
||||||
|
H2O = 82,
|
||||||
|
CO2 = 83,
|
||||||
|
Compressed_Air = 84,
|
||||||
|
Natural_Gas = 85,
|
||||||
|
Fog = 86,
|
||||||
|
Smoke = 87,
|
||||||
|
Cracked_Haze = 88,
|
||||||
|
Pyrotechnics_General = 96,
|
||||||
|
Fireworks = 97,
|
||||||
|
Explosions = 98,
|
||||||
|
Flame = 99,
|
||||||
|
Smoke_Pots = 100
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum QNetworkMessageType
|
||||||
|
{
|
||||||
|
QLAB = 1,
|
||||||
|
OSC = 2,
|
||||||
|
UDP = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum QNetworkQLabCommand
|
||||||
|
{
|
||||||
|
start = 1,
|
||||||
|
stop = 2,
|
||||||
|
hardStop = 3,
|
||||||
|
pause = 4,
|
||||||
|
resume = 5,
|
||||||
|
togglePause = 6,
|
||||||
|
load = 7,
|
||||||
|
preview = 8,
|
||||||
|
reset = 9,
|
||||||
|
panic = 10,
|
||||||
|
number = 11,
|
||||||
|
name = 12,
|
||||||
|
notes = 13,
|
||||||
|
cueTargetNumber = 14,
|
||||||
|
preWait = 15,
|
||||||
|
duration = 16,
|
||||||
|
postWait = 17,
|
||||||
|
continueMode = 18,
|
||||||
|
flagged = 19,
|
||||||
|
armed = 20,
|
||||||
|
colorName = 21
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum QRotationType
|
||||||
|
{
|
||||||
|
THREE_D = 0,
|
||||||
|
X = 1,
|
||||||
|
Y = 2,
|
||||||
|
Z = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum QVideoEffect
|
||||||
|
{
|
||||||
|
Color_Controls = 1,
|
||||||
|
Exposure = 2,
|
||||||
|
Gamma = 3,
|
||||||
|
Sepia_Monochrome = 4,
|
||||||
|
Min_Max_Invert = 5,
|
||||||
|
White_point = 6,
|
||||||
|
Box_Disc_Gaussian_Blurs = 7,
|
||||||
|
Motion_Blur = 8,
|
||||||
|
Sharpen_Luminance = 9,
|
||||||
|
Unsharp_Mask = 10,
|
||||||
|
Zoom_Blur = 11,
|
||||||
|
Pixellation = 12,
|
||||||
|
Screen = 13,
|
||||||
|
Bloom_and_Gloom = 14,
|
||||||
|
CMYK_Halftone = 15,
|
||||||
|
Color_Posterize = 16,
|
||||||
|
Crystallize_and_Pointillize = 17,
|
||||||
|
Edge_Work = 18,
|
||||||
|
Kaleidoscope = 1,
|
||||||
|
Median_and_Comic_Effect = 19,
|
||||||
|
Noise_Reduction = 20,
|
||||||
|
Circle_Splash_Hole_Distortion = 21,
|
||||||
|
Pinch_Bump_Distortion = 22,
|
||||||
|
Torus_Lens_Distortion = 23,
|
||||||
|
Twirl_Circular_Wrap_Vortex = 24,
|
||||||
|
Glass_Lozenge = 25,
|
||||||
|
Op_Tile = 26,
|
||||||
|
Perspective_Tile = 27,
|
||||||
|
Quad_Tiles = 28,
|
||||||
|
Reflected_Tiles = 29,
|
||||||
|
Rotated_Tiles = 30,
|
||||||
|
Titles = 31
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
using QControlKit.Constants;
|
||||||
|
|
||||||
|
namespace QControlKit.Cue
|
||||||
|
{
|
||||||
|
public class QDevampCue : QCue
|
||||||
|
{
|
||||||
|
public bool startNextCueWhenSliceEnds
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (bool)propertyForKey(QOSCKey.startNextCueWhenSliceEnds);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.startNextCueWhenSliceEnds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool stopTargetWhenSliceEnds
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (bool)propertyForKey(QOSCKey.stopTargetWhenSliceEnds);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.stopTargetWhenSliceEnds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using QControlKit.Constants;
|
||||||
|
|
||||||
|
namespace QControlKit.Cue
|
||||||
|
{
|
||||||
|
public class QGroupCue : QCue
|
||||||
|
{
|
||||||
|
public int cartColumns
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (int)propertyForKey(QOSCKey.CartColumns);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.CartColumns);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int cartRows
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (int)propertyForKey(QOSCKey.CartRows);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.CartRows);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<QCue> children
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return cues;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void go()
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/{QOSCKey.Go}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public int mode
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (int)propertyForKey(QOSCKey.Mode);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if(value > 0 && value < 5)
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.Mode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void moveCartCue(QCue cart, int row, int column)
|
||||||
|
{
|
||||||
|
if(cart.type.Equals(QCueType.CueCart) || cart.type.Equals(QCueType.Cart))
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/{QOSCKey.MoveCartCue}/{cart.uid}", row, column);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string playhead
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return propertyForKey(QOSCKey.Playhead).ToString();
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.Playhead);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string playheadId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return propertyForKey(QOSCKey.PlayheadId).ToString();
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.PlayheadId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string playbackPosition
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return propertyForKey(QOSCKey.PlaybackPosition).ToString();
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.PlaybackPosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string playbackPositionId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return propertyForKey(QOSCKey.PlaybackPositionId).ToString();
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.PlaybackPositionId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
using QControlKit.Constants;
|
||||||
|
|
||||||
|
namespace QControlKit.Cue
|
||||||
|
{
|
||||||
|
public class QLightCue : QCue
|
||||||
|
{
|
||||||
|
public bool alwaysCollate
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (bool)propertyForKey(QOSCKey.AlwaysCollate);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.AlwaysCollate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string lightCommandText
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return propertyForKey(QOSCKey.LightCommandText).ToString();
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.LightCommandText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void collateAndStart()
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/{QOSCKey.CollateAndStart}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void prune()
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/{QOSCKey.Prune}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void pruneCommands()
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/{QOSCKey.PruneCommands}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeLightCommandsMatching(string match)
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/{QOSCKey.RemoveLightCommandsMatching}", match);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void replaceLightCommand(string oldCommand, string newCommand)
|
||||||
|
{
|
||||||
|
if(this.workspace.versionParts[0] == "4" && int.Parse(this.workspace.versionParts[1]) >= 4)
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/{QOSCKey.ReplaceLightCommand}", oldCommand, newCommand);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/{QOSCKey.UpdateLightCommand}", oldCommand, newCommand);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void safeSort()
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/{QOSCKey.SafeSort}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void safeSortCommands()
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/{QOSCKey.SafeSortCommands}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLight(string light, object setting)
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/{QOSCKey.SetLight}", light, setting);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateLightCommand(string oldCommand, string newCommand)
|
||||||
|
{
|
||||||
|
if (int.Parse(this.workspace.versionParts[0]) >= 4 && int.Parse(this.workspace.versionParts[1]) >= 4)
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/{QOSCKey.ReplaceLightCommand}", oldCommand, newCommand);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/{QOSCKey.UpdateLightCommand}", oldCommand, newCommand);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
using QControlKit.Constants;
|
||||||
|
|
||||||
|
namespace QControlKit.Cue
|
||||||
|
{
|
||||||
|
public class QMicCue : QCue
|
||||||
|
{
|
||||||
|
public int channelOffset
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (int)propertyForKey(QOSCKey.ChannelOffset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int channels
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (int)propertyForKey(QOSCKey.Channels);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.Channels);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaultLevels()
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/setDefaultLevels");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSilientLevels()
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/setSilentLevels");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
using QControlKit.Constants;
|
||||||
|
|
||||||
|
namespace QControlKit.Cue
|
||||||
|
{
|
||||||
|
public class QMidiFileCue :QCue
|
||||||
|
{
|
||||||
|
public bool patch
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (bool)propertyForKey(QOSCKey.Patch);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.Patch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool rate
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (bool)propertyForKey(QOSCKey.Rate);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.Rate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
using QControlKit.Constants;
|
||||||
|
|
||||||
|
namespace QControlKit.Cue
|
||||||
|
{
|
||||||
|
public class QNetworkCue : QCue
|
||||||
|
{
|
||||||
|
public string customString
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return propertyForKey(QOSCKey.CustomString).ToString();
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.CustomString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public QNetworkMessageType messageType
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (QNetworkMessageType)propertyForKey(QOSCKey.MessageType);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.MessageType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public QNetworkQLabCommand qlabCommand
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (QNetworkQLabCommand)propertyForKey(QOSCKey.QLabCommand);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.QLabCommand);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int patch
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (int)propertyForKey(QOSCKey.Patch);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.Patch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string qlabCueNumber
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return propertyForKey(QOSCKey.QLabCueNumber).ToString();
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.QLabCueNumber);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string qlabCueParameters
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return propertyForKey(QOSCKey.QLabCueParameters).ToString();
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.QLabCueParameters);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string rawString
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return propertyForKey(QOSCKey.RawString).ToString();
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.RawString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string udpString
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return propertyForKey(QOSCKey.UdpString).ToString();
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
setProperty(value, QOSCKey.UdpString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
using QControlKit.Constants;
|
||||||
|
|
||||||
|
namespace QControlKit.Cue
|
||||||
|
{
|
||||||
|
public class QScriptCue : QCue
|
||||||
|
{
|
||||||
|
public string scriptSource
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return propertyForKey(QOSCKey.ScriptSource).ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void compileSource()
|
||||||
|
{
|
||||||
|
workspace.sendMessage($"/cue_id/{this.uid}/compileSource");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<WebPublishMethod>FileSystem</WebPublishMethod>
|
||||||
|
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
|
||||||
|
<LastUsedPlatform>AnyCPU</LastUsedPlatform>
|
||||||
|
<publishUrl>bin/Release/netstandard2.0/publish</publishUrl>
|
||||||
|
<DeleteExistingFiles>false</DeleteExistingFiles>
|
||||||
|
<TargetFramework>netstandard2.0</TargetFramework>
|
||||||
|
<SelfContained>false</SelfContained>
|
||||||
|
<_IsPortable>true</_IsPortable>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
<Authors>Joel Wetzell</Authors>
|
<Authors>Joel Wetzell</Authors>
|
||||||
<Version>1.0.0-devel</Version>
|
<Version>1.0.0-devel</Version>
|
||||||
<PackOnBuild>true</PackOnBuild>
|
<PackOnBuild>true</PackOnBuild>
|
||||||
<PackageVersion>0.0.17</PackageVersion>
|
<PackageVersion>0.0.19</PackageVersion>
|
||||||
<PackageId>QControlKit</PackageId>
|
<PackageId>QControlKit</PackageId>
|
||||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||||
<Summary>Unofficial C# port of Figure53's QLabKit.objc</Summary>
|
<Summary>Unofficial C# port of Figure53's QLabKit.objc</Summary>
|
||||||
@@ -17,9 +17,13 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Serilog" Version="2.10.0" />
|
<PackageReference Include="Serilog" Version="2.10.0" />
|
||||||
<PackageReference Include="Zeroconf" Version="3.4.2" />
|
<PackageReference Include="Zeroconf" Version="3.4.2" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Constants\" />
|
<Folder Include="Constants\" />
|
||||||
|
<Folder Include="Cue\" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Remove="Cue\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
+3
-4
@@ -186,7 +186,7 @@ namespace QControlKit
|
|||||||
childCues.Add(cue);
|
childCues.Add(cue);
|
||||||
childCuesUIDMap.Add(uid, cue);
|
childCuesUIDMap.Add(uid, cue);
|
||||||
//some sorting of the childCues needs to be done? //TODO
|
//some sorting of the childCues needs to be done? //TODO
|
||||||
//reset sorting index
|
//reset sorting index?
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeChildCue(QCue cue) {
|
public void removeChildCue(QCue cue) {
|
||||||
@@ -730,7 +730,8 @@ namespace QControlKit
|
|||||||
|
|
||||||
if (needsSortChildCues)
|
if (needsSortChildCues)
|
||||||
{
|
{
|
||||||
//something about cues needing to be sorted?
|
childCues.Sort((q1, q2)=> q1.sortIndex.CompareTo(q2.sortIndex));
|
||||||
|
needsSortChildCues = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return needsNotifyCueUpdated;
|
return needsNotifyCueUpdated;
|
||||||
@@ -873,8 +874,6 @@ namespace QControlKit
|
|||||||
else
|
else
|
||||||
cueData.Remove(key);
|
cueData.Remove(key);
|
||||||
|
|
||||||
//TODO: Cuelistchangedplaybackpositionid?
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -129,19 +129,14 @@ namespace QControlKit
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (IsCueUpdate)
|
if (IsCueUpdate) {
|
||||||
{
|
|
||||||
return AddressParts[4];
|
return AddressParts[4];
|
||||||
}else if (IsPlaybackPositionUpdate)
|
} else if (IsPlaybackPositionUpdate) {
|
||||||
{
|
|
||||||
//TODO: check string cast
|
//TODO: check string cast
|
||||||
return arguments.Count > 0 ? (string)arguments[0] : null;
|
return arguments.Count > 0 ? (string)arguments[0] : null;
|
||||||
}else if (IsReplyFromCue)
|
} else if (IsReplyFromCue) {
|
||||||
{
|
|
||||||
return AddressParts[2];
|
return AddressParts[2];
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
//TODO: workspace connection error handlers
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json;
|
|
||||||
using Serilog;
|
using Serilog;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -79,7 +78,7 @@ namespace QControlKit
|
|||||||
client.CueUpdated += OnCueUpdated;
|
client.CueUpdated += OnCueUpdated;
|
||||||
|
|
||||||
this.server = server;
|
this.server = server;
|
||||||
Log.Debug($"[workspace] <{name}> on {server.name} initialized.");
|
Log.Debug($"[workspace] <{name}> on <{server.name}> initialized.");
|
||||||
}
|
}
|
||||||
|
|
||||||
//updateWithDictionary
|
//updateWithDictionary
|
||||||
@@ -160,7 +159,7 @@ namespace QControlKit
|
|||||||
|
|
||||||
public List<QCue> cueLists { get { return root.cues; } }
|
public List<QCue> cueLists { get { return root.cues; } }
|
||||||
public string fullNameWithCueList(QCue cueList) { return ""; }
|
public string fullNameWithCueList(QCue cueList) { return ""; }
|
||||||
//TODO other convenience methods
|
|
||||||
public string[] versionParts { get { return version.Split('.'); } }
|
public string[] versionParts { get { return version.Split('.'); } }
|
||||||
public bool connectedToQLab3 { get { return versionParts[0] == "3"; } }
|
public bool connectedToQLab3 { get { return versionParts[0] == "3"; } }
|
||||||
|
|
||||||
@@ -180,6 +179,7 @@ namespace QControlKit
|
|||||||
if (!client.connect())
|
if (!client.connect())
|
||||||
{
|
{
|
||||||
Log.Error($"[workspace] *** couldn't connect to server client is not connected.");
|
Log.Error($"[workspace] *** couldn't connect to server client is not connected.");
|
||||||
|
OnWorkspaceConnectionError(this, new QWorkspaceConnectionErrorArgs { status = "unreachable" });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -193,10 +193,9 @@ namespace QControlKit
|
|||||||
|
|
||||||
private void finishConnection()
|
private void finishConnection()
|
||||||
{
|
{
|
||||||
//TODO
|
|
||||||
connected = true;
|
connected = true;
|
||||||
startReceivingUpdates();
|
startReceivingUpdates();
|
||||||
//fetchQLabVersion();
|
//fetchQLabVersion(); //this is not needed since the version is loaded from the workspace info call
|
||||||
fetchCueLists();
|
fetchCueLists();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -210,7 +209,6 @@ namespace QControlKit
|
|||||||
else
|
else
|
||||||
connect();
|
connect();
|
||||||
|
|
||||||
//todo
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void disconnect()
|
public void disconnect()
|
||||||
@@ -226,9 +224,6 @@ namespace QControlKit
|
|||||||
connected = false;
|
connected = false;
|
||||||
client.disconnect();
|
client.disconnect();
|
||||||
|
|
||||||
//TODO
|
|
||||||
//root.removeAllChildCues();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void temporarilyDisconnect()
|
public void temporarilyDisconnect()
|
||||||
@@ -256,8 +251,8 @@ namespace QControlKit
|
|||||||
public void stopReceivingUpdates() { client.sendMessage($"{workspacePrefix}/updates", 0); }
|
public void stopReceivingUpdates() { client.sendMessage($"{workspacePrefix}/updates", 0); }
|
||||||
public void enableAlwaysReply() { client.sendMessage($"{workspacePrefix}/alwaysReply", 1); }
|
public void enableAlwaysReply() { client.sendMessage($"{workspacePrefix}/alwaysReply", 1); }
|
||||||
public void disableAlwaysReply() { client.sendMessage($"{workspacePrefix}/alwaysReply", 0); }
|
public void disableAlwaysReply() { client.sendMessage($"{workspacePrefix}/alwaysReply", 0); }
|
||||||
public void fetchQLabVersion() { client.sendMessage($"{workspacePrefix}/version"); } //TODO: EventHandler for this? Is this still needed?
|
public void fetchQLabVersion() { client.sendMessage($"{workspacePrefix}/version"); }
|
||||||
public void fetchCueLists() { client.sendMessage($"{workspacePrefix}/cueLists"); } //TODO: EventHandler for CueListUpdated
|
public void fetchCueLists() { client.sendMessage($"{workspacePrefix}/cueLists"); }
|
||||||
public void fetchPlaybackPositionForCue(QCue cue) { client.sendMessage(addressForCue(cue, QOSCKey.PlaybackPositionId)); } //EventHandler for this? can I use the CueListPlaybackPosition one?
|
public void fetchPlaybackPositionForCue(QCue cue) { client.sendMessage(addressForCue(cue, QOSCKey.PlaybackPositionId)); } //EventHandler for this? can I use the CueListPlaybackPosition one?
|
||||||
public void go() { client.sendMessage($"{workspacePrefix}/go"); }
|
public void go() { client.sendMessage($"{workspacePrefix}/go"); }
|
||||||
public void save() { client.sendMessage($"{workspacePrefix}/save"); }
|
public void save() { client.sendMessage($"{workspacePrefix}/save"); }
|
||||||
@@ -356,8 +351,6 @@ namespace QControlKit
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Property Fetching
|
#region Property Fetching
|
||||||
//TODO
|
|
||||||
|
|
||||||
|
|
||||||
public void fetchDefaultPropertiesForCue(QCue cue)
|
public void fetchDefaultPropertiesForCue(QCue cue)
|
||||||
{
|
{
|
||||||
@@ -435,7 +428,7 @@ namespace QControlKit
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.Error($"[workspace] *** Unable to connect to workspace: {name} on server: {server.name}");
|
Log.Error($"[workspace] *** Unable to connect to workspace: <{name}> on server: <{server.name}>");
|
||||||
}
|
}
|
||||||
|
|
||||||
WorkspaceConnectionError?.Invoke(this, new QWorkspaceConnectionErrorArgs { status = args.status });
|
WorkspaceConnectionError?.Invoke(this, new QWorkspaceConnectionErrorArgs { status = args.status });
|
||||||
@@ -536,7 +529,6 @@ namespace QControlKit
|
|||||||
cueList.setProperty(args.cueID, QOSCKey.PlaybackPositionId, false);
|
cueList.setProperty(args.cueID, QOSCKey.PlaybackPositionId, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: need to implement when playbackposition is "none"
|
|
||||||
Log.Debug($"[workspace] cue list <{args.cueListID}> playback position changed to <{args.cueID}>");
|
Log.Debug($"[workspace] cue list <{args.cueListID}> playback position changed to <{args.cueID}>");
|
||||||
CueListChangedPlaybackPosition?.Invoke(this, new QCueListChangedPlaybackPositionArgs { cueListID = args.cueListID, cueID = args.cueID });
|
CueListChangedPlaybackPosition?.Invoke(this, new QCueListChangedPlaybackPositionArgs { cueListID = args.cueListID, cueID = args.cueID });
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.jwetzell.qcontrolkitxamdemo">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.jwetzell.qcontrolkitxamdemo">
|
||||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
|
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
|
||||||
<application android:label="QControlKitXamDemo.Android"></application>
|
<application android:label="QControlKitXamDemo.Android"></application>
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
</manifest>
|
</manifest>
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
||||||
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
|
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
|
||||||
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
|
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
|
||||||
<TargetFrameworkVersion>v9.0</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v10.0</TargetFrameworkVersion>
|
||||||
<AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
|
<AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
|
||||||
<AndroidUseAapt2>true</AndroidUseAapt2>
|
<AndroidUseAapt2>true</AndroidUseAapt2>
|
||||||
<AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
|
<AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
|
||||||
@@ -32,6 +32,7 @@
|
|||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<AndroidLinkMode>None</AndroidLinkMode>
|
<AndroidLinkMode>None</AndroidLinkMode>
|
||||||
|
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
@@ -56,8 +57,8 @@
|
|||||||
<PackageReference Include="Serilog.Sinks.Xamarin">
|
<PackageReference Include="Serilog.Sinks.Xamarin">
|
||||||
<Version>0.2.0.64</Version>
|
<Version>0.2.0.64</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2012" />
|
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
|
||||||
<PackageReference Include="Xamarin.Essentials" Version="1.6.1" />
|
<PackageReference Include="Xamarin.Essentials" Version="1.7.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="MainActivity.cs" />
|
<Compile Include="MainActivity.cs" />
|
||||||
|
|||||||
@@ -130,8 +130,8 @@
|
|||||||
<PackageReference Include="Serilog.Sinks.Xamarin">
|
<PackageReference Include="Serilog.Sinks.Xamarin">
|
||||||
<Version>0.2.0.64</Version>
|
<Version>0.2.0.64</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2012" />
|
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
|
||||||
<PackageReference Include="Xamarin.Essentials" Version="1.6.1" />
|
<PackageReference Include="Xamarin.Essentials" Version="1.7.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -51,6 +51,8 @@ namespace QControlKitXamDemo
|
|||||||
Device.BeginInvokeOnMainThread(() =>
|
Device.BeginInvokeOnMainThread(() =>
|
||||||
{
|
{
|
||||||
QCue selectedCue = connectedWorkspace.cueWithID(args.cueID);
|
QCue selectedCue = connectedWorkspace.cueWithID(args.cueID);
|
||||||
|
if(selectedCue != null) //TODO: I think this being null is the result of a race condition?
|
||||||
|
{
|
||||||
connectedWorkspace.fetchDefaultPropertiesForCue(selectedCue);
|
connectedWorkspace.fetchDefaultPropertiesForCue(selectedCue);
|
||||||
selectedCueGrid.BindingContext = new QCueViewModel(selectedCue, false);
|
selectedCueGrid.BindingContext = new QCueViewModel(selectedCue, false);
|
||||||
if (cueGridDict.ContainsKey(args.cueID))
|
if (cueGridDict.ContainsKey(args.cueID))
|
||||||
@@ -58,6 +60,7 @@ namespace QControlKitXamDemo
|
|||||||
var cueGrid = cueGridDict[args.cueID]; //element to scroll to
|
var cueGrid = cueGridDict[args.cueID]; //element to scroll to
|
||||||
cueListScrollView.ScrollToAsync(cueGrid, ScrollToPosition.Center, true);
|
cueListScrollView.ScrollToAsync(cueGrid, ScrollToPosition.Center, true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,8 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Serilog" Version="2.10.0" />
|
<PackageReference Include="Serilog" Version="2.10.0" />
|
||||||
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2012" />
|
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
|
||||||
<PackageReference Include="Xamarin.Essentials" Version="1.6.1" />
|
<PackageReference Include="Xamarin.Essentials" Version="1.7.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
Reference in New Issue
Block a user