mirror of
https://github.com/jwetzell/qController.git
synced 2026-08-21 23:19:17 +00:00
* ControlPage.xaml.cs:
* QLevelsCell.cs: Add more levels sliders * QBrowserPage.xaml.cs: * QBrowserViewModel.cs: Switch off browser updating when connected
This commit is contained in:
@@ -9,11 +9,15 @@ namespace qController.UI.Cells
|
|||||||
public List<double> levels;
|
public List<double> levels;
|
||||||
public string activeCue;
|
public string activeCue;
|
||||||
public Slider mainSlider;
|
public Slider mainSlider;
|
||||||
public Slider leftSlider;
|
//public Slider leftSlider;
|
||||||
public Slider rightSlider;
|
//public Slider rightSlider;
|
||||||
public Label mainLabel;
|
public Label mainLabel;
|
||||||
public Label rightLabel;
|
//public Label rightLabel;
|
||||||
public Label leftLabel;
|
//public Label leftLabel;
|
||||||
|
|
||||||
|
public List<Slider> sliders = new List<Slider>();
|
||||||
|
public List<Label> sliderLabels = new List<Label>();
|
||||||
|
|
||||||
public QLevelsCell()
|
public QLevelsCell()
|
||||||
{
|
{
|
||||||
Padding = new Thickness(5);
|
Padding = new Thickness(5);
|
||||||
@@ -22,6 +26,8 @@ namespace qController.UI.Cells
|
|||||||
HasShadow = true;
|
HasShadow = true;
|
||||||
BackgroundColor = Color.FromHex("D8D8D8");
|
BackgroundColor = Color.FromHex("D8D8D8");
|
||||||
IsVisible = false;
|
IsVisible = false;
|
||||||
|
|
||||||
|
int numberOfChannelsVisible = 6;
|
||||||
//highlight for testing
|
//highlight for testing
|
||||||
//BackgroundColor = Color.Red;
|
//BackgroundColor = Color.Red;
|
||||||
|
|
||||||
@@ -31,14 +37,15 @@ namespace qController.UI.Cells
|
|||||||
Padding = new Thickness(0),
|
Padding = new Thickness(0),
|
||||||
RowDefinitions = {
|
RowDefinitions = {
|
||||||
new RowDefinition{Height = GridLength.Star},
|
new RowDefinition{Height = GridLength.Star},
|
||||||
new RowDefinition{Height = GridLength.Star},
|
//new RowDefinition{Height = GridLength.Star},
|
||||||
new RowDefinition{Height = GridLength.Star}
|
//new RowDefinition{Height = GridLength.Star}
|
||||||
},
|
},
|
||||||
ColumnDefinitions = {
|
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)},
|
new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)},
|
||||||
new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)},
|
new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)},
|
||||||
new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)},
|
new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)},
|
||||||
|
new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)},
|
||||||
new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)}
|
new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -50,52 +57,86 @@ namespace qController.UI.Cells
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
leftSlider = new Slider
|
for(int i = 0; i< numberOfChannelsVisible; i++)
|
||||||
{
|
{
|
||||||
Minimum = -60,
|
var sliderToAdd = new Slider
|
||||||
Maximum = 12
|
{
|
||||||
};
|
Minimum = -60,
|
||||||
|
Maximum = 12
|
||||||
|
};
|
||||||
|
|
||||||
|
var labelToAdd = new Label
|
||||||
|
{
|
||||||
|
Text = $"{i+1}:",
|
||||||
|
VerticalTextAlignment = TextAlignment.Center,
|
||||||
|
HorizontalTextAlignment = TextAlignment.Center
|
||||||
|
};
|
||||||
|
|
||||||
|
var valueLabelToAdd = new Label
|
||||||
|
{
|
||||||
|
Text = "",
|
||||||
|
VerticalTextAlignment = TextAlignment.Center,
|
||||||
|
HorizontalTextAlignment = TextAlignment.Center
|
||||||
|
};
|
||||||
|
|
||||||
|
mainG.RowDefinitions.Add(new RowDefinition { Height = GridLength.Star });
|
||||||
|
mainG.Children.Add(sliderToAdd, 1, i+1);
|
||||||
|
Grid.SetColumnSpan(sliderToAdd, 4);
|
||||||
|
mainG.Children.Add(labelToAdd, 0, i+1);
|
||||||
|
mainG.Children.Add(valueLabelToAdd, 5, i+1);
|
||||||
|
|
||||||
|
sliders.Add(sliderToAdd);
|
||||||
|
sliderLabels.Add(valueLabelToAdd);
|
||||||
|
}
|
||||||
|
|
||||||
|
//leftSlider = new Slider
|
||||||
|
//{
|
||||||
|
// Minimum = -60,
|
||||||
|
// Maximum = 12
|
||||||
|
//};
|
||||||
|
|
||||||
|
|
||||||
rightSlider = new Slider
|
//rightSlider = new Slider
|
||||||
{
|
//{
|
||||||
Minimum = -60,
|
// Minimum = -60,
|
||||||
Maximum = 12
|
// Maximum = 12
|
||||||
};
|
//};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mainLabel = new Label
|
mainLabel = new Label
|
||||||
{
|
{
|
||||||
Text = "MAIN:",
|
Text = "M:",
|
||||||
VerticalTextAlignment = TextAlignment.Center,
|
VerticalTextAlignment = TextAlignment.Center,
|
||||||
HorizontalTextAlignment = TextAlignment.Center
|
HorizontalTextAlignment = TextAlignment.Center
|
||||||
};
|
};
|
||||||
|
|
||||||
leftLabel = new Label
|
//leftLabel = new Label
|
||||||
{
|
//{
|
||||||
Text = "1:",
|
// Text = "1:",
|
||||||
VerticalTextAlignment = TextAlignment.Center,
|
// VerticalTextAlignment = TextAlignment.Center,
|
||||||
HorizontalTextAlignment = TextAlignment.Center
|
// HorizontalTextAlignment = TextAlignment.Center
|
||||||
};
|
//};
|
||||||
|
|
||||||
rightLabel = new Label
|
//rightLabel = new Label
|
||||||
{
|
//{
|
||||||
Text = "2:",
|
// Text = "2:",
|
||||||
VerticalTextAlignment = TextAlignment.Center,
|
// VerticalTextAlignment = TextAlignment.Center,
|
||||||
HorizontalTextAlignment = TextAlignment.Center
|
// HorizontalTextAlignment = TextAlignment.Center
|
||||||
};
|
//};
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
Grid.SetColumnSpan(mainSlider, 4);
|
Grid.SetColumnSpan(mainSlider, 4);
|
||||||
Grid.SetColumnSpan(leftSlider, 4);
|
//Grid.SetColumnSpan(leftSlider, 4);
|
||||||
Grid.SetColumnSpan(rightSlider, 4);
|
//Grid.SetColumnSpan(rightSlider, 4);
|
||||||
|
|
||||||
mainG.Children.Add(mainLabel, 0, 0);
|
mainG.Children.Add(mainLabel, 0, 0);
|
||||||
mainG.Children.Add(leftLabel, 0, 1);
|
//mainG.Children.Add(leftLabel, 0, 1);
|
||||||
mainG.Children.Add(rightLabel, 0, 2);
|
//mainG.Children.Add(rightLabel, 0, 2);
|
||||||
|
|
||||||
Content = mainG;
|
Content = mainG;
|
||||||
Margin = new Thickness(10);
|
Margin = new Thickness(10);
|
||||||
@@ -108,14 +149,21 @@ namespace qController.UI.Cells
|
|||||||
{
|
{
|
||||||
mainSlider.Value = levels[0];
|
mainSlider.Value = levels[0];
|
||||||
}
|
}
|
||||||
if (leftSlider != null)
|
for(int i = 0; i < sliders.Count; i++)
|
||||||
{
|
{
|
||||||
leftSlider.Value = levels[1];
|
Slider slider = sliders[i];
|
||||||
}
|
Label label = sliderLabels[i];
|
||||||
if (rightSlider != null)
|
slider.Value = levels[i + 1];
|
||||||
{
|
label.Text = $"{levels[i + 1]}";
|
||||||
rightSlider.Value = levels[2];
|
|
||||||
}
|
}
|
||||||
|
//if (leftSlider != null)
|
||||||
|
//{
|
||||||
|
// leftSlider.Value = levels[1];
|
||||||
|
//}
|
||||||
|
//if (rightSlider != null)
|
||||||
|
//{
|
||||||
|
// rightSlider.Value = levels[2];
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ namespace qController.ViewModels
|
|||||||
public class QBrowserViewModel : INotifyPropertyChanged
|
public class QBrowserViewModel : INotifyPropertyChanged
|
||||||
{
|
{
|
||||||
QBrowser browser;
|
QBrowser browser;
|
||||||
|
|
||||||
public event PropertyChangedEventHandler PropertyChanged;
|
public event PropertyChangedEventHandler PropertyChanged;
|
||||||
|
public bool autoUpdate = false;
|
||||||
public ObservableCollection<QServerViewModel> ServersGrouped { get; set; }
|
public ObservableCollection<QServerViewModel> ServersGrouped { get; set; }
|
||||||
public QBrowserViewModel(QBrowser browser)
|
public QBrowserViewModel(QBrowser browser)
|
||||||
{
|
{
|
||||||
@@ -24,17 +24,18 @@ namespace qController.ViewModels
|
|||||||
|
|
||||||
this.browser.ServerFound += OnServerFound;
|
this.browser.ServerFound += OnServerFound;
|
||||||
this.browser.ServerLost += OnServerLost;
|
this.browser.ServerLost += OnServerLost;
|
||||||
|
|
||||||
Device.StartTimer(TimeSpan.FromSeconds(4), () =>
|
Device.StartTimer(TimeSpan.FromSeconds(4), () =>
|
||||||
{
|
{
|
||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
{
|
{
|
||||||
this.browser.ProbeForQLabInstances();
|
if(autoUpdate)
|
||||||
// do something with time...
|
this.browser.ProbeForQLabInstances();
|
||||||
});
|
});
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnServerFound(object source, QServerFoundArgs args)
|
private void OnServerFound(object source, QServerFoundArgs args)
|
||||||
|
|||||||
@@ -179,14 +179,26 @@ namespace qController
|
|||||||
{
|
{
|
||||||
qController.qClient.sendTCP(workspace_prefix + "/cue_id/" + qLevelsCell.activeCue + "/sliderLevel/0", (float)args.NewValue);
|
qController.qClient.sendTCP(workspace_prefix + "/cue_id/" + qLevelsCell.activeCue + "/sliderLevel/0", (float)args.NewValue);
|
||||||
};
|
};
|
||||||
qLevelsCell.leftSlider.ValueChanged += (sender, args) =>
|
|
||||||
|
for(int i = 0; i < qLevelsCell.sliders.Count; i++)
|
||||||
{
|
{
|
||||||
qController.qClient.sendTCP(workspace_prefix + "/cue_id/" + qLevelsCell.activeCue + "/sliderLevel/1", (float)args.NewValue);
|
var channel = i + 1;
|
||||||
};
|
Log.Debug("Setting value changed for channel: " + channel);
|
||||||
qLevelsCell.rightSlider.ValueChanged += (sender, args) =>
|
qLevelsCell.sliders[i].ValueChanged += (sender, args) =>
|
||||||
{
|
{
|
||||||
qController.qClient.sendTCP(workspace_prefix + "/cue_id/" + qLevelsCell.activeCue + "/sliderLevel/2", (float)args.NewValue);
|
qLevelsCell.sliderLabels[channel-1].Text = $"{args.NewValue}";
|
||||||
};
|
qController.qClient.sendTCP(workspace_prefix + "/cue_id/" + qLevelsCell.activeCue + "/sliderLevel/" + channel, (float)args.NewValue);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
//qLevelsCell.leftSlider.ValueChanged += (sender, args) =>
|
||||||
|
//{
|
||||||
|
// qController.qClient.sendTCP(workspace_prefix + "/cue_id/" + qLevelsCell.activeCue + "/sliderLevel/1", (float)args.NewValue);
|
||||||
|
//};
|
||||||
|
//qLevelsCell.rightSlider.ValueChanged += (sender, args) =>
|
||||||
|
//{
|
||||||
|
// qController.qClient.sendTCP(workspace_prefix + "/cue_id/" + qLevelsCell.activeCue + "/sliderLevel/2", (float)args.NewValue);
|
||||||
|
//};
|
||||||
|
|
||||||
|
|
||||||
showLevelsButton = new QLevelsButton();
|
showLevelsButton = new QLevelsButton();
|
||||||
@@ -203,12 +215,12 @@ namespace qController
|
|||||||
{
|
{
|
||||||
case Device.iOS:
|
case Device.iOS:
|
||||||
AbsoluteLayout.SetLayoutBounds(qControlsBlock, new Rectangle(0, 0.53, 1, 0.25));
|
AbsoluteLayout.SetLayoutBounds(qControlsBlock, new Rectangle(0, 0.53, 1, 0.25));
|
||||||
AbsoluteLayout.SetLayoutBounds(qLevelsCell, new Rectangle(0.9, 0.40, 0.8, 0.25));
|
AbsoluteLayout.SetLayoutBounds(qLevelsCell, new Rectangle(0, 0.53, 1, 0.25));
|
||||||
AbsoluteLayout.SetLayoutBounds(showLevelsButton, new Rectangle(0.02, 0.34, App.HeightUnit * 8, App.HeightUnit * 8));
|
AbsoluteLayout.SetLayoutBounds(showLevelsButton, new Rectangle(0.02, 0.34, App.HeightUnit * 8, App.HeightUnit * 8));
|
||||||
break;
|
break;
|
||||||
case Device.Android:
|
case Device.Android:
|
||||||
AbsoluteLayout.SetLayoutBounds(qControlsBlock, new Rectangle(0, 0.58, 1, 0.25));
|
AbsoluteLayout.SetLayoutBounds(qControlsBlock, new Rectangle(0, 0.58, 1, 0.25));
|
||||||
AbsoluteLayout.SetLayoutBounds(qLevelsCell, new Rectangle(0.9, 0.45, 0.8, 0.25));
|
AbsoluteLayout.SetLayoutBounds(qLevelsCell, new Rectangle(0, 0.58, 1, 0.25));
|
||||||
AbsoluteLayout.SetLayoutBounds(showLevelsButton, new Rectangle(0.02, 0.39, App.HeightUnit * 8, App.HeightUnit * 8));
|
AbsoluteLayout.SetLayoutBounds(showLevelsButton, new Rectangle(0.02, 0.39, App.HeightUnit * 8, App.HeightUnit * 8));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,13 +12,15 @@ namespace qController.Pages
|
|||||||
{
|
{
|
||||||
public partial class QBrowserPage : ContentPage
|
public partial class QBrowserPage : ContentPage
|
||||||
{
|
{
|
||||||
|
private QBrowserViewModel qBrowserViewModel;
|
||||||
public QBrowserPage()
|
public QBrowserPage()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
SetupTopBar();
|
SetupTopBar();
|
||||||
|
qBrowserViewModel = new QBrowserViewModel(new QBrowser());
|
||||||
serverListView.BindingContext = new QBrowserViewModel(new QBrowser());
|
qBrowserViewModel.autoUpdate = true;
|
||||||
|
serverListView.BindingContext = qBrowserViewModel;
|
||||||
serverListView.ItemSelected += QWorkspaceSelected;
|
serverListView.ItemSelected += QWorkspaceSelected;
|
||||||
|
|
||||||
storageListView.ItemsSource = QStorage.qInstances;
|
storageListView.ItemsSource = QStorage.qInstances;
|
||||||
@@ -43,6 +45,8 @@ namespace qController.Pages
|
|||||||
{
|
{
|
||||||
if (e.SelectedItem == null)
|
if (e.SelectedItem == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
this.qBrowserViewModel.autoUpdate = false;
|
||||||
QWorkspace selectedWorkspace = (e.SelectedItem as QWorkspaceViewModel).workspace;
|
QWorkspace selectedWorkspace = (e.SelectedItem as QWorkspaceViewModel).workspace;
|
||||||
Log.Debug($"[demo] workspace: {selectedWorkspace.nameWithoutPathExtension} has been selected");
|
Log.Debug($"[demo] workspace: {selectedWorkspace.nameWithoutPathExtension} has been selected");
|
||||||
((ListView)sender).SelectedItem = null;
|
((ListView)sender).SelectedItem = null;
|
||||||
@@ -98,6 +102,12 @@ namespace qController.Pages
|
|||||||
{
|
{
|
||||||
AddWorkspace();
|
AddWorkspace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnAppearing()
|
||||||
|
{
|
||||||
|
base.OnAppearing();
|
||||||
|
this.qBrowserViewModel.autoUpdate = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user