mirror of
https://github.com/jwetzell/qController.git
synced 2026-08-05 07:27:56 +00:00
162 lines
5.0 KiB
C#
162 lines
5.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Xamarin.Forms;
|
|
using Rug.Osc;
|
|
using System.Collections;
|
|
|
|
namespace qController
|
|
{
|
|
public partial class ControlPage : ContentPage
|
|
{
|
|
QController qController;
|
|
Label instanceName = new Label();
|
|
QSelectedCueCell qCell;
|
|
QSelectedCueOptionsCell qSelectedCueOptions;
|
|
Grid mainG;
|
|
public ControlPage(string name, string address)
|
|
{
|
|
InitializeComponent();
|
|
|
|
qController = new QController(address, 53000);
|
|
qController.qParser.SelectedCueUpdated += SelectedCueUpdated;
|
|
NavigationPage.SetHasNavigationBar(this, false);
|
|
instanceName.Text = name;
|
|
|
|
|
|
InitGUI();
|
|
|
|
}
|
|
|
|
private void InitGUI()
|
|
{
|
|
|
|
|
|
instanceName.HorizontalTextAlignment = TextAlignment.Center;
|
|
instanceName.HorizontalOptions = LayoutOptions.CenterAndExpand;
|
|
instanceName.VerticalOptions = LayoutOptions.CenterAndExpand;
|
|
topBar.Children.Add(instanceName, 1, 0);
|
|
topBar.BackgroundColor = Color.FromHex("71AEFF");
|
|
|
|
BackgroundColor = Color.FromHex("4A4A4A");
|
|
backButton.Source = ImageSource.FromFile("back");
|
|
switch (Device.RuntimePlatform)
|
|
{
|
|
case Device.iOS:
|
|
backButton.Margin = new Thickness(20, 45, 20, 10);
|
|
instanceName.Margin = new Thickness(20, 45, 20, 10);
|
|
break;
|
|
|
|
}
|
|
|
|
Hashtable cmds = new Hashtable();
|
|
|
|
var backButtonGesture = new TapGestureRecognizer();
|
|
|
|
backButtonGesture.Tapped += Back;
|
|
backButton.GestureRecognizers.Add(backButtonGesture);
|
|
|
|
|
|
cmds.Add("Pause", "/pause");
|
|
cmds.Add("Resume", "/resume");
|
|
cmds.Add("Panic", "/panic");
|
|
cmds.Add("Next", "/select/next");
|
|
cmds.Add("Previous", "/select/previous");
|
|
cmds.Add("Preview", "/preview");
|
|
|
|
qCell = new QSelectedCueCell();
|
|
qSelectedCueOptions = new QSelectedCueOptionsCell(qController);
|
|
|
|
sLayout.Children.Add(qCell);
|
|
|
|
|
|
mainG = new Grid
|
|
{
|
|
Padding = new Thickness(0),
|
|
RowDefinitions = {
|
|
new RowDefinition{Height = GridLength.Auto},
|
|
new RowDefinition{Height = GridLength.Auto},
|
|
new RowDefinition{Height = GridLength.Auto}
|
|
},
|
|
ColumnDefinitions = {
|
|
new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)},
|
|
new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)},
|
|
new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)}
|
|
}
|
|
};
|
|
|
|
|
|
int row = 0;
|
|
int column = 0;
|
|
foreach (string cmd in cmds.Keys)
|
|
{
|
|
QButton b = new QButton(cmd,(string)cmds[cmd]);
|
|
b.Clicked += sendOSC;
|
|
if(cmd=="Panic")
|
|
{
|
|
b.BackgroundColor = Color.IndianRed;
|
|
}
|
|
else
|
|
{
|
|
b.BackgroundColor = Color.FromHex("D8D8D8");
|
|
}
|
|
b.TextColor = Color.Black;
|
|
mainG.Children.Add(b,column,row);
|
|
row++;
|
|
if(row == 3){
|
|
row = 0;
|
|
column = 2;
|
|
}
|
|
|
|
}
|
|
|
|
QButton goButton = new QButton("GO","/go");
|
|
goButton.Clicked += sendOSC;
|
|
goButton.BackgroundColor = Color.SeaGreen;
|
|
goButton.TextColor = Color.Black;
|
|
mainG.Children.Add(goButton,1,0);
|
|
Grid.SetRowSpan(goButton,3);
|
|
|
|
sLayout.Children.Add(mainG);
|
|
|
|
}
|
|
|
|
void sendOSC(object sender, EventArgs e)
|
|
{
|
|
qController.sendCommand(((QButton)sender).OSCCommand);
|
|
}
|
|
|
|
void Back(object sender, EventArgs e)
|
|
{
|
|
App.iNav.PopModalAsync();
|
|
}
|
|
|
|
public void SelectedCueUpdated(object sender, CueEventArgs e){
|
|
Device.BeginInvokeOnMainThread(()=>{
|
|
if (e.SelectedCue.type.Equals("Audio"))
|
|
{
|
|
//Console.WriteLine("CUE IS AN AUDIO CUE");
|
|
sLayout.Children.Add(qSelectedCueOptions);
|
|
}
|
|
else
|
|
{
|
|
//Console.WriteLine("CUE IS NOT AN AUDIO CUE");
|
|
sLayout.Children.Remove(qSelectedCueOptions);
|
|
}
|
|
qCell.UpdateSelectedCue(e.SelectedCue);
|
|
});
|
|
}
|
|
|
|
protected override void OnDisappearing()
|
|
{
|
|
base.OnDisappearing();
|
|
Console.WriteLine("Disappeared");
|
|
qController.Kill();
|
|
}
|
|
protected override void OnAppearing()
|
|
{
|
|
base.OnAppearing();
|
|
Console.WriteLine("Appeared");
|
|
}
|
|
}
|
|
}
|