mirror of
https://github.com/jwetzell/qController.git
synced 2026-08-19 14:14:22 +00:00
Work on multiple workspaces/password protected workspaces
This commit is contained in:
+1
-1
@@ -36,7 +36,7 @@
|
|||||||
<key>XSAppIconAssets</key>
|
<key>XSAppIconAssets</key>
|
||||||
<string>Assets.xcassets/AppIcon.appiconset</string>
|
<string>Assets.xcassets/AppIcon.appiconset</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>2.0.5</string>
|
<string>2.0.6</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1.0</string>
|
<string>1.0</string>
|
||||||
<key>ITSAppUsesNonExemptEncryption</key>
|
<key>ITSAppUsesNonExemptEncryption</key>
|
||||||
|
|||||||
@@ -105,7 +105,6 @@ namespace qController
|
|||||||
|
|
||||||
void Connect(object sender, EventArgs e)
|
void Connect(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
App.rootPage.MenuPage.ChangeToControl();
|
|
||||||
App.NavigationPage.Navigation.PushAsync(new ControlPage(nameLabel.Text,addressLabel.Text));
|
App.NavigationPage.Navigation.PushAsync(new ControlPage(nameLabel.Text,addressLabel.Text));
|
||||||
|
|
||||||
Console.WriteLine("Connect To " + nameLabel.Text + " Pressed");
|
Console.WriteLine("Connect To " + nameLabel.Text + " Pressed");
|
||||||
|
|||||||
@@ -7,37 +7,17 @@ namespace qController
|
|||||||
{
|
{
|
||||||
public class QSelectedCueOptionsCell : Frame
|
public class QSelectedCueOptionsCell : Frame
|
||||||
{
|
{
|
||||||
void OnCueInfoUpdated(object source, CueEventArgs args)
|
|
||||||
{
|
|
||||||
Device.BeginInvokeOnMainThread(() => {
|
|
||||||
activeCue = args.Cue.uniqueID;
|
|
||||||
if(args.Cue.levels != null)
|
|
||||||
{
|
|
||||||
levels = args.Cue.levels[0];
|
|
||||||
if (mainSlider != null)
|
|
||||||
{
|
|
||||||
mainSlider.Value = levels[0];
|
|
||||||
}
|
|
||||||
if (leftSlider != null)
|
|
||||||
{
|
|
||||||
leftSlider.Value = levels[1];
|
|
||||||
}
|
|
||||||
if (rightSlider != null)
|
|
||||||
{
|
|
||||||
rightSlider.Value = levels[2];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
List<double> levels;
|
public List<double> levels;
|
||||||
string activeCue;
|
public string activeCue;
|
||||||
Slider mainSlider;
|
public Slider mainSlider;
|
||||||
Slider leftSlider;
|
public Slider leftSlider;
|
||||||
Slider rightSlider;
|
public Slider rightSlider;
|
||||||
public QSelectedCueOptionsCell(QController qController)
|
public Label mainLabel;
|
||||||
|
public Label rightLabel;
|
||||||
|
public Label leftLabel;
|
||||||
|
public QSelectedCueOptionsCell()
|
||||||
{
|
{
|
||||||
qController.qClient.qParser.CueInfoUpdated += OnCueInfoUpdated;
|
|
||||||
Padding = new Thickness(5);
|
Padding = new Thickness(5);
|
||||||
CornerRadius = 20;
|
CornerRadius = 20;
|
||||||
BackgroundColor = Color.FromHex("D8D8D8");
|
BackgroundColor = Color.FromHex("D8D8D8");
|
||||||
@@ -63,30 +43,21 @@ namespace qController
|
|||||||
Minimum = -60,
|
Minimum = -60,
|
||||||
Maximum = 12
|
Maximum = 12
|
||||||
};
|
};
|
||||||
mainSlider.ValueChanged += (sender, args) =>
|
|
||||||
{
|
|
||||||
qController.qClient.sendArgs("/cue_id/" + activeCue + "/sliderLevel/0", (float)args.NewValue);
|
|
||||||
};
|
|
||||||
|
|
||||||
leftSlider = new Slider
|
leftSlider = new Slider
|
||||||
{
|
{
|
||||||
Minimum = -60,
|
Minimum = -60,
|
||||||
Maximum = 12
|
Maximum = 12
|
||||||
};
|
};
|
||||||
leftSlider.ValueChanged += (sender, args) =>
|
|
||||||
{
|
|
||||||
qController.qClient.sendArgs("/cue_id/" + activeCue + "/sliderLevel/1", (float)args.NewValue);
|
|
||||||
};
|
|
||||||
|
|
||||||
rightSlider = new Slider
|
rightSlider = new Slider
|
||||||
{
|
{
|
||||||
Minimum = -60,
|
Minimum = -60,
|
||||||
Maximum = 12
|
Maximum = 12
|
||||||
};
|
};
|
||||||
rightSlider.ValueChanged += (sender, args) =>
|
|
||||||
{
|
|
||||||
qController.qClient.sendArgs("/cue_id/" + activeCue + "/sliderLevel/2", (float)args.NewValue);
|
|
||||||
};
|
|
||||||
mainG.Children.Add(mainSlider, 1, 0);
|
mainG.Children.Add(mainSlider, 1, 0);
|
||||||
mainG.Children.Add(leftSlider, 1, 1);
|
mainG.Children.Add(leftSlider, 1, 1);
|
||||||
mainG.Children.Add(rightSlider, 1, 2);
|
mainG.Children.Add(rightSlider, 1, 2);
|
||||||
@@ -94,21 +65,20 @@ namespace qController
|
|||||||
Grid.SetColumnSpan(mainSlider, 4);
|
Grid.SetColumnSpan(mainSlider, 4);
|
||||||
Grid.SetColumnSpan(leftSlider, 4);
|
Grid.SetColumnSpan(leftSlider, 4);
|
||||||
Grid.SetColumnSpan(rightSlider, 4);
|
Grid.SetColumnSpan(rightSlider, 4);
|
||||||
|
mainLabel = new Label {
|
||||||
Label mainLabel = new Label {
|
|
||||||
Text = "MAIN:",
|
Text = "MAIN:",
|
||||||
VerticalTextAlignment = TextAlignment.Center,
|
VerticalTextAlignment = TextAlignment.Center,
|
||||||
HorizontalTextAlignment = TextAlignment.Center
|
HorizontalTextAlignment = TextAlignment.Center
|
||||||
};
|
};
|
||||||
|
|
||||||
Label leftLabel = new Label
|
leftLabel = new Label
|
||||||
{
|
{
|
||||||
Text = "LEFT:",
|
Text = "LEFT:",
|
||||||
VerticalTextAlignment = TextAlignment.Center,
|
VerticalTextAlignment = TextAlignment.Center,
|
||||||
HorizontalTextAlignment = TextAlignment.Center
|
HorizontalTextAlignment = TextAlignment.Center
|
||||||
};
|
};
|
||||||
|
|
||||||
Label rightLabel = new Label
|
rightLabel = new Label
|
||||||
{
|
{
|
||||||
Text = "RIGHT:",
|
Text = "RIGHT:",
|
||||||
VerticalTextAlignment = TextAlignment.Center,
|
VerticalTextAlignment = TextAlignment.Center,
|
||||||
@@ -122,5 +92,22 @@ namespace qController
|
|||||||
Content = mainG;
|
Content = mainG;
|
||||||
Margin = new Thickness(10);
|
Margin = new Thickness(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void UpdateLevels(List<double> lin_levels)
|
||||||
|
{
|
||||||
|
levels = lin_levels;
|
||||||
|
if (mainSlider != null)
|
||||||
|
{
|
||||||
|
mainSlider.Value = levels[0];
|
||||||
|
}
|
||||||
|
if (leftSlider != null)
|
||||||
|
{
|
||||||
|
leftSlider.Value = levels[1];
|
||||||
|
}
|
||||||
|
if (rightSlider != null)
|
||||||
|
{
|
||||||
|
rightSlider.Value = levels[2];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -125,17 +125,18 @@ namespace qController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateSpecificCue(string cue_id)
|
public void UpdateSpecificCue(string workspace_id,string cue_id)
|
||||||
{
|
{
|
||||||
string valuesForKeys = "[\"number\",\"uniqueID\",\"flagged\",\"listName\",\"type\",\"colorName\",\"name\",\"armed\",\"displayName\",\"isBroken\",\"isLoaded\",\"isPaused\",\"isRunning\",\"preWait\",\"duration\",\"postWait\",\"translationX\",\"translationY\",\"opacity\",\"scaleX\",\"scaleY\",\"notes\",\"levels\"]";
|
string valuesForKeys = "[\"number\",\"uniqueID\",\"flagged\",\"listName\",\"type\",\"colorName\",\"name\",\"armed\",\"displayName\",\"isBroken\",\"isLoaded\",\"isPaused\",\"isRunning\",\"preWait\",\"duration\",\"postWait\",\"translationX\",\"translationY\",\"opacity\",\"scaleX\",\"scaleY\",\"notes\",\"levels\"]";
|
||||||
string address = "/cue_id/" + cue_id + "/valuesForKeys";
|
string address = "/workspace/" + workspace_id + "/cue_id/" + cue_id + "/valuesForKeys";
|
||||||
sendAndReceiveStringArgs(address, valuesForKeys);
|
sendAndReceiveStringArgs(address, valuesForKeys);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateSelectedCue()
|
public void UpdateSelectedCue(string workspace_id)
|
||||||
{
|
{
|
||||||
string valuesForKeys = "[\"number\",\"uniqueID\",\"flagged\",\"listName\",\"type\",\"colorName\",\"name\",\"armed\",\"displayName\",\"isBroken\",\"isLoaded\",\"isPaused\",\"isRunning\",\"preWait\",\"duration\",\"postWait\",\"translationX\",\"translationY\",\"opacity\",\"scaleX\",\"scaleY\",\"notes\",\"levels\"]";
|
string valuesForKeys = "[\"number\",\"uniqueID\",\"flagged\",\"listName\",\"type\",\"colorName\",\"name\",\"armed\",\"displayName\",\"isBroken\",\"isLoaded\",\"isPaused\",\"isRunning\",\"preWait\",\"duration\",\"postWait\",\"translationX\",\"translationY\",\"opacity\",\"scaleX\",\"scaleY\",\"notes\",\"levels\"]";
|
||||||
sendAndReceiveStringArgs("/cue/selected/valuesForKeys", valuesForKeys);
|
string address = "/workspace/" + workspace_id + "/cue/selected/valuesForKeys";
|
||||||
|
sendAndReceiveStringArgs(address, valuesForKeys);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateWorkspace(string ws_id)
|
public void UpdateWorkspace(string ws_id)
|
||||||
|
|||||||
@@ -20,18 +20,19 @@ namespace qController
|
|||||||
qUpdater = new QUpdater(this);
|
qUpdater = new QUpdater(this);
|
||||||
qUpdater.Start();
|
qUpdater.Start();
|
||||||
//Connect();
|
//Connect();
|
||||||
|
//Connect();
|
||||||
Connect();
|
//KickOff();
|
||||||
KickOff();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Connect()
|
public void Connect(string workspace_id)
|
||||||
{
|
{
|
||||||
Console.WriteLine("QCONTROLLER CONNECT CALLED");
|
Console.WriteLine("QCONTROLLER CONNECT CALLED: " + workspace_id);
|
||||||
|
qWorkspace = new QWorkSpace();
|
||||||
|
qWorkspace.workspace_id = workspace_id;
|
||||||
//qClient.sendStringUDP("/connect");
|
//qClient.sendStringUDP("/connect");
|
||||||
qClient.sendArgsUDP("/updates", 1);
|
qClient.sendArgsUDP("/workspace/"+workspace_id+"/updates", 1);
|
||||||
qClient.sendAndReceiveString("/cueLists");
|
qClient.sendAndReceiveString("/workspace/"+workspace_id+"/cueLists");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void KickOff()
|
public void KickOff()
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ namespace qController
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
qController.qClient.UpdateSelectedCue();
|
qController.qClient.UpdateSelectedCue(qController.qWorkspace.workspace_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ namespace qController
|
|||||||
{
|
{
|
||||||
Console.WriteLine("Workspace group cues are already populated");
|
Console.WriteLine("Workspace group cues are already populated");
|
||||||
App.showToast("Workspace cues have been loaded....");
|
App.showToast("Workspace cues have been loaded....");
|
||||||
qController.qClient.UpdateSelectedCue();
|
qController.qClient.UpdateSelectedCue(qController.qWorkspace.workspace_id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//RefreshGroupCues();
|
//RefreshGroupCues();
|
||||||
@@ -82,7 +82,7 @@ namespace qController
|
|||||||
public void OnPlaybackPositionUpdated(object source, PlaybackPositionArgs args)
|
public void OnPlaybackPositionUpdated(object source, PlaybackPositionArgs args)
|
||||||
{
|
{
|
||||||
qController.playbackPosition = args.PlaybackPosition;
|
qController.playbackPosition = args.PlaybackPosition;
|
||||||
qController.qClient.UpdateSpecificCue(args.PlaybackPosition);
|
qController.qClient.UpdateSpecificCue(qController.qWorkspace.workspace_id,args.PlaybackPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RefreshGroupCues()
|
public void RefreshGroupCues()
|
||||||
@@ -95,7 +95,7 @@ namespace qController
|
|||||||
if (cue.type == "Group")
|
if (cue.type == "Group")
|
||||||
{
|
{
|
||||||
Console.WriteLine("First Group Cue Found");
|
Console.WriteLine("First Group Cue Found");
|
||||||
qController.qClient.sendStringUDP("/cue_id/" + cue.uniqueID + "/children");
|
qController.qClient.sendStringUDP("/workspace/" + qController.qWorkspace.workspace_id + "/cue_id/" + cue.uniqueID + "/children");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -104,7 +104,7 @@ namespace qController
|
|||||||
|
|
||||||
public void SendThump()
|
public void SendThump()
|
||||||
{
|
{
|
||||||
qController.qClient.sendStringUDP("/thump");
|
qController.qClient.sendStringUDP("/workspace/" + qController.qWorkspace.workspace_id + "/thump");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Kill(){
|
public void Kill(){
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using Acr.UserDialogs;
|
||||||
namespace qController
|
namespace qController
|
||||||
{
|
{
|
||||||
public partial class ControlPage : ContentPage
|
public partial class ControlPage : ContentPage
|
||||||
@@ -29,7 +29,7 @@ namespace qController
|
|||||||
|
|
||||||
InitGUI();
|
InitGUI();
|
||||||
|
|
||||||
|
qController.KickOff();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WorkspaceInfoReceived(object source, WorkspaceInfoArgs args)
|
private void WorkspaceInfoReceived(object source, WorkspaceInfoArgs args)
|
||||||
@@ -37,17 +37,41 @@ namespace qController
|
|||||||
if(args.WorkspaceInfo.Count > 1)
|
if(args.WorkspaceInfo.Count > 1)
|
||||||
{
|
{
|
||||||
Console.WriteLine("MULTIPLE WORKSPACES ON SELECTED COMPUTER");
|
Console.WriteLine("MULTIPLE WORKSPACES ON SELECTED COMPUTER");
|
||||||
|
PromptForWorkspace(args.WorkspaceInfo);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Console.WriteLine("ONLY ONE WORKSPACE ON SELECTED COMPUTER");
|
Console.WriteLine("ONLY ONE WORKSPACE ON SELECTED COMPUTER");
|
||||||
//qController.Connect();
|
qController.Connect(args.WorkspaceInfo[0].uniqueID);
|
||||||
|
|
||||||
|
Device.BeginInvokeOnMainThread(() => {
|
||||||
|
FinishUI();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void PromptForWorkspace(List<QInfo> workspaces)
|
||||||
|
{
|
||||||
|
ActionSheetConfig config = new ActionSheetConfig();
|
||||||
|
config.SetTitle("Select Workspace");
|
||||||
|
for (int i = 0; i < workspaces.Count; i++)
|
||||||
|
{
|
||||||
|
QInfo workspace = workspaces[i];
|
||||||
|
config.Add(workspace.displayName, new Action(() => {
|
||||||
|
Console.WriteLine("Workspace Selected: " + workspace.displayName);
|
||||||
|
qController.Connect(workspace.uniqueID);
|
||||||
|
Device.BeginInvokeOnMainThread(() =>
|
||||||
|
{
|
||||||
|
FinishUI();
|
||||||
|
});
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
UserDialogs.Instance.ActionSheet(config);
|
||||||
|
}
|
||||||
|
|
||||||
private void InitGUI()
|
private void InitGUI()
|
||||||
{
|
{
|
||||||
|
App.rootPage.MenuPage.ChangeToControl();
|
||||||
NavigationPage.SetHasNavigationBar(this, false);
|
NavigationPage.SetHasNavigationBar(this, false);
|
||||||
instanceName.HorizontalTextAlignment = TextAlignment.Center;
|
instanceName.HorizontalTextAlignment = TextAlignment.Center;
|
||||||
instanceName.HorizontalOptions = LayoutOptions.CenterAndExpand;
|
instanceName.HorizontalOptions = LayoutOptions.CenterAndExpand;
|
||||||
@@ -65,16 +89,6 @@ namespace qController
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
List<QButton> buttons = new List<QButton>();
|
|
||||||
|
|
||||||
buttons.Add(new QButton("Previous", "/select/previous"));
|
|
||||||
buttons.Add(new QButton("Panic", "/panic"));
|
|
||||||
buttons.Add(new QButton("Next", "/select/next"));
|
|
||||||
buttons.Add(new QButton("Preview", "/preview"));
|
|
||||||
buttons.Add(new QButton("Pause", "/pause"));
|
|
||||||
buttons.Add(new QButton("Resume", "/resume"));
|
|
||||||
|
|
||||||
var menuButtonGesture = new TapGestureRecognizer();
|
var menuButtonGesture = new TapGestureRecognizer();
|
||||||
|
|
||||||
menuButtonGesture.Tapped += ShowMenu;
|
menuButtonGesture.Tapped += ShowMenu;
|
||||||
@@ -82,9 +96,37 @@ namespace qController
|
|||||||
|
|
||||||
|
|
||||||
qCell = new QSelectedCueCell();
|
qCell = new QSelectedCueCell();
|
||||||
qSelectedCueOptions = new QSelectedCueOptionsCell(qController);
|
|
||||||
|
|
||||||
sLayout.Children.Add(qCell);
|
sLayout.Children.Add(qCell);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FinishUI()
|
||||||
|
{
|
||||||
|
string workspace_prefix = "/workspace/" + qController.qWorkspace.workspace_id;
|
||||||
|
List <QButton> buttons = new List<QButton>();
|
||||||
|
|
||||||
|
buttons.Add(new QButton("Previous", workspace_prefix + "/select/previous"));
|
||||||
|
buttons.Add(new QButton("Panic", workspace_prefix + "/panic"));
|
||||||
|
buttons.Add(new QButton("Next", workspace_prefix + "/select/next"));
|
||||||
|
buttons.Add(new QButton("Preview", "/preview"));
|
||||||
|
buttons.Add(new QButton("Pause", "/pause"));
|
||||||
|
buttons.Add(new QButton("Resume", "/resume"));
|
||||||
|
|
||||||
|
|
||||||
|
qSelectedCueOptions = new QSelectedCueOptionsCell();
|
||||||
|
|
||||||
|
qSelectedCueOptions.mainSlider.ValueChanged += (sender, args) =>
|
||||||
|
{
|
||||||
|
qController.qClient.sendArgs(workspace_prefix + "/cue_id/" + qSelectedCueOptions.activeCue + "/sliderLevel/0", (float)args.NewValue);
|
||||||
|
};
|
||||||
|
qSelectedCueOptions.leftSlider.ValueChanged += (sender, args) =>
|
||||||
|
{
|
||||||
|
qController.qClient.sendArgs(workspace_prefix + "/cue_id/" + qSelectedCueOptions.activeCue + "/sliderLevel/1", (float)args.NewValue);
|
||||||
|
};
|
||||||
|
qSelectedCueOptions.rightSlider.ValueChanged += (sender, args) =>
|
||||||
|
{
|
||||||
|
qController.qClient.sendArgs(workspace_prefix + "/cue_id/" + qSelectedCueOptions.activeCue + "/sliderLevel/2", (float)args.NewValue);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mainG = new Grid
|
mainG = new Grid
|
||||||
@@ -110,7 +152,7 @@ namespace qController
|
|||||||
foreach (var b in buttons)
|
foreach (var b in buttons)
|
||||||
{
|
{
|
||||||
b.Clicked += sendOSC;
|
b.Clicked += sendOSC;
|
||||||
if(b.Text=="Panic")
|
if (b.Text == "Panic")
|
||||||
{
|
{
|
||||||
b.BackgroundColor = Color.IndianRed;
|
b.BackgroundColor = Color.IndianRed;
|
||||||
}
|
}
|
||||||
@@ -119,23 +161,23 @@ namespace qController
|
|||||||
b.BackgroundColor = Color.FromHex("D8D8D8");
|
b.BackgroundColor = Color.FromHex("D8D8D8");
|
||||||
}
|
}
|
||||||
b.TextColor = Color.Black;
|
b.TextColor = Color.Black;
|
||||||
mainG.Children.Add(b,column,row);
|
mainG.Children.Add(b, column, row);
|
||||||
row++;
|
row++;
|
||||||
if(row == 3){
|
if (row == 3)
|
||||||
|
{
|
||||||
row = 0;
|
row = 0;
|
||||||
column = 2;
|
column = 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QButton goButton = new QButton("GO","/go");
|
QButton goButton = new QButton("GO", workspace_prefix+"/go");
|
||||||
goButton.Clicked += sendOSC;
|
goButton.Clicked += sendOSC;
|
||||||
goButton.BackgroundColor = Color.SeaGreen;
|
goButton.BackgroundColor = Color.SeaGreen;
|
||||||
goButton.TextColor = Color.Black;
|
goButton.TextColor = Color.Black;
|
||||||
mainG.Children.Add(goButton,1,0);
|
mainG.Children.Add(goButton, 1, 0);
|
||||||
Grid.SetRowSpan(goButton,3);
|
Grid.SetRowSpan(goButton, 3);
|
||||||
|
|
||||||
sLayout.Children.Add(mainG);
|
sLayout.Children.Add(mainG);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void sendOSC(object sender, EventArgs e)
|
void sendOSC(object sender, EventArgs e)
|
||||||
@@ -176,6 +218,7 @@ namespace qController
|
|||||||
noSelect.number = "!";
|
noSelect.number = "!";
|
||||||
qCell.UpdateSelectedCue(noSelect);
|
qCell.UpdateSelectedCue(noSelect);
|
||||||
});
|
});
|
||||||
|
qController.qClient.UpdateSelectedCue(qController.qWorkspace.workspace_id);
|
||||||
}
|
}
|
||||||
Console.WriteLine("Workspace updated in ControlPage: " + qController.qWorkspace.workspace_id);
|
Console.WriteLine("Workspace updated in ControlPage: " + qController.qWorkspace.workspace_id);
|
||||||
}
|
}
|
||||||
@@ -214,6 +257,14 @@ namespace qController
|
|||||||
qCell.UpdateSelectedCue(args.Cue);
|
qCell.UpdateSelectedCue(args.Cue);
|
||||||
if (!mainG.IsVisible)
|
if (!mainG.IsVisible)
|
||||||
mainG.IsVisible = true;
|
mainG.IsVisible = true;
|
||||||
|
if(qSelectedCueOptions != null)
|
||||||
|
{
|
||||||
|
qSelectedCueOptions.activeCue = args.Cue.uniqueID;
|
||||||
|
if (args.Cue.levels != null)
|
||||||
|
{
|
||||||
|
qSelectedCueOptions.UpdateLevels(args.Cue.levels[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -236,7 +287,7 @@ namespace qController
|
|||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
qController.qClient.UpdateSelectedCue();
|
qController.qClient.UpdateSelectedCue(qController.qWorkspace.workspace_id);
|
||||||
App.showToast("Workspace cues loaded...");
|
App.showToast("Workspace cues loaded...");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,19 +82,21 @@ namespace qController
|
|||||||
}
|
}
|
||||||
public void ChangeToWorkspace(QWorkSpace workspace)
|
public void ChangeToWorkspace(QWorkSpace workspace)
|
||||||
{
|
{
|
||||||
ChangeToControl();
|
for(int i = 0; i < workspace.data.Count; i++)
|
||||||
foreach (var cueList in workspace.data)
|
|
||||||
{
|
{
|
||||||
|
var cueList = workspace.data[i];
|
||||||
items.Add(new MenuPageItem
|
items.Add(new MenuPageItem
|
||||||
{
|
{
|
||||||
Title = cueList.listName,
|
Title = cueList.listName,
|
||||||
Icon = "",
|
Icon = "",
|
||||||
Command = ""
|
Command = ""
|
||||||
});
|
});
|
||||||
foreach (var cue in cueList.cues)
|
for (int j = 0; j < cueList.cues.Count; j++)
|
||||||
{
|
{
|
||||||
|
var cue = cueList.cues[j];
|
||||||
AddSubCues(cue, 0);
|
AddSubCues(cue, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,9 +127,10 @@ namespace qController
|
|||||||
});
|
});
|
||||||
|
|
||||||
//uncomment to load nested group cues
|
//uncomment to load nested group cues
|
||||||
foreach (var sub_cue in cue.cues)
|
for (int i = 0; i < cue.cues.Count; i++)
|
||||||
{
|
{
|
||||||
AddSubCues(sub_cue,level + 1);
|
var sub_cue = cue.cues[i];
|
||||||
|
AddSubCues(sub_cue, level + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -45,9 +45,6 @@
|
|||||||
<Compile Remove="Pages\HomePage.xaml.cs" />
|
<Compile Remove="Pages\HomePage.xaml.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Update="App.xaml.cs">
|
|
||||||
<DependentUpon>*.xaml</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Condition=" '$(EnableDefaultCompileItems)' == 'true' " Update="Pages\ControlPage.xaml.cs">
|
<Compile Condition=" '$(EnableDefaultCompileItems)' == 'true' " Update="Pages\ControlPage.xaml.cs">
|
||||||
<DependentUpon>*.xaml</DependentUpon>
|
<DependentUpon>*.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|||||||
Reference in New Issue
Block a user