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