mirror of
https://github.com/jwetzell/QControlKit.git
synced 2026-08-01 21:47:57 +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
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master # Default release branch
|
||||
release:
|
||||
types:
|
||||
- created # When a release is made
|
||||
jobs:
|
||||
publish:
|
||||
name: build, pack & publish
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
public const string Cue = "Cue";
|
||||
public const string CueList = "Cue List";
|
||||
public const string Cart = "Cart";
|
||||
public const string CueCart = "Cue Cart";
|
||||
public const string Group = "Group";
|
||||
public const string Audio = "";
|
||||
public const string Mic = "Mic";
|
||||
@@ -46,73 +47,231 @@
|
||||
|
||||
public static class QOSCKey
|
||||
{
|
||||
public const string UID = "uniqueID";
|
||||
public const string Type = "type";
|
||||
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 ActionElapsed = "actionElapsed";
|
||||
public const string AllowsEditingDuration = "allowsEditingDuration";
|
||||
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 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 PostWait = "postWait";
|
||||
public const string CurrentDuration = "currentDuration";
|
||||
public const string PercentPreWaitElapsed = "percentPreWaitElapsed";
|
||||
public const string PercentPostWaitElapsed = "percentPostWaitElapsed";
|
||||
public const string PercentActionElapsed = "percentActionElapsed";
|
||||
public const string PreWaitElapsed = "preWaitElapsed";
|
||||
public const string Parent = "parent";
|
||||
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 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
|
||||
public const string Duration = "duration";
|
||||
public const string FullScreen = "fullScreen";
|
||||
public const string FullScreen = "fullScreen"; //Implement on Video Cue
|
||||
|
||||
}
|
||||
|
||||
public static class QIdentifiers
|
||||
@@ -143,16 +302,191 @@
|
||||
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,
|
||||
Relative = 1
|
||||
}
|
||||
|
||||
enum QContinueMode
|
||||
public enum QContinueMode
|
||||
{
|
||||
NoContinue = 0,
|
||||
AutoContinue = 1,
|
||||
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>
|
||||
<Version>1.0.0-devel</Version>
|
||||
<PackOnBuild>true</PackOnBuild>
|
||||
<PackageVersion>0.0.17</PackageVersion>
|
||||
<PackageVersion>0.0.19</PackageVersion>
|
||||
<PackageId>QControlKit</PackageId>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<Summary>Unofficial C# port of Figure53's QLabKit.objc</Summary>
|
||||
@@ -17,9 +17,13 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Serilog" Version="2.10.0" />
|
||||
<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>
|
||||
<Folder Include="Constants\" />
|
||||
<Folder Include="Cue\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Remove="Cue\" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
+3
-4
@@ -186,7 +186,7 @@ namespace QControlKit
|
||||
childCues.Add(cue);
|
||||
childCuesUIDMap.Add(uid, cue);
|
||||
//some sorting of the childCues needs to be done? //TODO
|
||||
//reset sorting index
|
||||
//reset sorting index?
|
||||
}
|
||||
|
||||
public void removeChildCue(QCue cue) {
|
||||
@@ -730,7 +730,8 @@ namespace QControlKit
|
||||
|
||||
if (needsSortChildCues)
|
||||
{
|
||||
//something about cues needing to be sorted?
|
||||
childCues.Sort((q1, q2)=> q1.sortIndex.CompareTo(q2.sortIndex));
|
||||
needsSortChildCues = false;
|
||||
}
|
||||
|
||||
return needsNotifyCueUpdated;
|
||||
@@ -873,8 +874,6 @@ namespace QControlKit
|
||||
else
|
||||
cueData.Remove(key);
|
||||
|
||||
//TODO: Cuelistchangedplaybackpositionid?
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -129,19 +129,14 @@ namespace QControlKit
|
||||
{
|
||||
get
|
||||
{
|
||||
if (IsCueUpdate)
|
||||
{
|
||||
if (IsCueUpdate) {
|
||||
return AddressParts[4];
|
||||
}else if (IsPlaybackPositionUpdate)
|
||||
{
|
||||
} else if (IsPlaybackPositionUpdate) {
|
||||
//TODO: check string cast
|
||||
return arguments.Count > 0 ? (string)arguments[0] : null;
|
||||
}else if (IsReplyFromCue)
|
||||
{
|
||||
} else if (IsReplyFromCue) {
|
||||
return AddressParts[2];
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
//TODO: workspace connection error handlers
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json;
|
||||
using Serilog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -79,7 +78,7 @@ namespace QControlKit
|
||||
client.CueUpdated += OnCueUpdated;
|
||||
|
||||
this.server = server;
|
||||
Log.Debug($"[workspace] <{name}> on {server.name} initialized.");
|
||||
Log.Debug($"[workspace] <{name}> on <{server.name}> initialized.");
|
||||
}
|
||||
|
||||
//updateWithDictionary
|
||||
@@ -160,7 +159,7 @@ namespace QControlKit
|
||||
|
||||
public List<QCue> cueLists { get { return root.cues; } }
|
||||
public string fullNameWithCueList(QCue cueList) { return ""; }
|
||||
//TODO other convenience methods
|
||||
|
||||
public string[] versionParts { get { return version.Split('.'); } }
|
||||
public bool connectedToQLab3 { get { return versionParts[0] == "3"; } }
|
||||
|
||||
@@ -180,6 +179,7 @@ namespace QControlKit
|
||||
if (!client.connect())
|
||||
{
|
||||
Log.Error($"[workspace] *** couldn't connect to server client is not connected.");
|
||||
OnWorkspaceConnectionError(this, new QWorkspaceConnectionErrorArgs { status = "unreachable" });
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -193,10 +193,9 @@ namespace QControlKit
|
||||
|
||||
private void finishConnection()
|
||||
{
|
||||
//TODO
|
||||
connected = true;
|
||||
startReceivingUpdates();
|
||||
//fetchQLabVersion();
|
||||
//fetchQLabVersion(); //this is not needed since the version is loaded from the workspace info call
|
||||
fetchCueLists();
|
||||
|
||||
}
|
||||
@@ -210,7 +209,6 @@ namespace QControlKit
|
||||
else
|
||||
connect();
|
||||
|
||||
//todo
|
||||
}
|
||||
|
||||
public void disconnect()
|
||||
@@ -225,9 +223,6 @@ namespace QControlKit
|
||||
|
||||
connected = false;
|
||||
client.disconnect();
|
||||
|
||||
//TODO
|
||||
//root.removeAllChildCues();
|
||||
|
||||
}
|
||||
|
||||
@@ -256,8 +251,8 @@ namespace QControlKit
|
||||
public void stopReceivingUpdates() { client.sendMessage($"{workspacePrefix}/updates", 0); }
|
||||
public void enableAlwaysReply() { client.sendMessage($"{workspacePrefix}/alwaysReply", 1); }
|
||||
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 fetchCueLists() { client.sendMessage($"{workspacePrefix}/cueLists"); } //TODO: EventHandler for CueListUpdated
|
||||
public void fetchQLabVersion() { client.sendMessage($"{workspacePrefix}/version"); }
|
||||
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 go() { client.sendMessage($"{workspacePrefix}/go"); }
|
||||
public void save() { client.sendMessage($"{workspacePrefix}/save"); }
|
||||
@@ -356,8 +351,6 @@ namespace QControlKit
|
||||
#endregion
|
||||
|
||||
#region Property Fetching
|
||||
//TODO
|
||||
|
||||
|
||||
public void fetchDefaultPropertiesForCue(QCue cue)
|
||||
{
|
||||
@@ -435,7 +428,7 @@ namespace QControlKit
|
||||
}
|
||||
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 });
|
||||
@@ -536,7 +529,6 @@ namespace QControlKit
|
||||
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}>");
|
||||
CueListChangedPlaybackPosition?.Invoke(this, new QCueListChangedPlaybackPositionArgs { cueListID = args.cueListID, cueID = args.cueID });
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?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">
|
||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
|
||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
|
||||
<application android:label="QControlKitXamDemo.Android"></application>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
</manifest>
|
||||
@@ -16,7 +16,7 @@
|
||||
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
||||
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
|
||||
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
|
||||
<TargetFrameworkVersion>v9.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v10.0</TargetFrameworkVersion>
|
||||
<AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
|
||||
<AndroidUseAapt2>true</AndroidUseAapt2>
|
||||
<AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
|
||||
@@ -32,6 +32,7 @@
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AndroidLinkMode>None</AndroidLinkMode>
|
||||
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -56,8 +57,8 @@
|
||||
<PackageReference Include="Serilog.Sinks.Xamarin">
|
||||
<Version>0.2.0.64</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2012" />
|
||||
<PackageReference Include="Xamarin.Essentials" Version="1.6.1" />
|
||||
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
|
||||
<PackageReference Include="Xamarin.Essentials" Version="1.7.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="MainActivity.cs" />
|
||||
|
||||
@@ -130,8 +130,8 @@
|
||||
<PackageReference Include="Serilog.Sinks.Xamarin">
|
||||
<Version>0.2.0.64</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2012" />
|
||||
<PackageReference Include="Xamarin.Essentials" Version="1.6.1" />
|
||||
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
|
||||
<PackageReference Include="Xamarin.Essentials" Version="1.7.0" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
|
||||
@@ -51,12 +51,15 @@ namespace QControlKitXamDemo
|
||||
Device.BeginInvokeOnMainThread(() =>
|
||||
{
|
||||
QCue selectedCue = connectedWorkspace.cueWithID(args.cueID);
|
||||
connectedWorkspace.fetchDefaultPropertiesForCue(selectedCue);
|
||||
selectedCueGrid.BindingContext = new QCueViewModel(selectedCue, false);
|
||||
if (cueGridDict.ContainsKey(args.cueID))
|
||||
if(selectedCue != null) //TODO: I think this being null is the result of a race condition?
|
||||
{
|
||||
var cueGrid = cueGridDict[args.cueID]; //element to scroll to
|
||||
cueListScrollView.ScrollToAsync(cueGrid, ScrollToPosition.Center, true);
|
||||
connectedWorkspace.fetchDefaultPropertiesForCue(selectedCue);
|
||||
selectedCueGrid.BindingContext = new QCueViewModel(selectedCue, false);
|
||||
if (cueGridDict.ContainsKey(args.cueID))
|
||||
{
|
||||
var cueGrid = cueGridDict[args.cueID]; //element to scroll to
|
||||
cueListScrollView.ScrollToAsync(cueGrid, ScrollToPosition.Center, true);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Serilog" Version="2.10.0" />
|
||||
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2012" />
|
||||
<PackageReference Include="Xamarin.Essentials" Version="1.6.1" />
|
||||
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
|
||||
<PackageReference Include="Xamarin.Essentials" Version="1.7.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user