Files
qController/qController.Standard/Classes/Cell/QSelectedCueOptionsCell.cs
T

127 lines
4.1 KiB
C#

using System;
using Newtonsoft.Json.Linq;
using Xamarin.Forms;
namespace qController
{
public class QSelectedCueOptionsCell : Frame
{
void AudioLevelsUpdated(object source, AudioLevelArgs args)
{
Device.BeginInvokeOnMainThread(() => {
levels = args.levels;
if (mainSlider != null)
{
mainSlider.Value = (double)levels[0];
}
if (leftSlider != null)
{
leftSlider.Value = (double)levels[1];
}
if (rightSlider != null)
{
rightSlider.Value = (double)levels[2];
}
});
}
Label type;
JToken levels;
Slider mainSlider;
Slider leftSlider;
Slider rightSlider;
public QSelectedCueOptionsCell(QController qController)
{
qController.qParser.AudioLevelsUpdated += AudioLevelsUpdated;
Padding = new Thickness(5);
CornerRadius = 20;
BackgroundColor = Color.FromHex("D8D8D8");
Grid 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)},
new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)},
new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)}
}
};
type = new Label { Text = "" };
mainSlider = new Slider
{
Minimum = -60,
Maximum = 12
};
mainSlider.ValueChanged += (sender, args) =>
{
qController.qSender.sendArgs("/cue/selected/sliderLevel/0", (float)args.NewValue);
};
leftSlider = new Slider
{
Minimum = -60,
Maximum = 12
};
leftSlider.ValueChanged += (sender, args) =>
{
qController.qSender.sendArgs("/cue/selected/sliderLevel/1", (float)args.NewValue);
};
rightSlider = new Slider
{
Minimum = -60,
Maximum = 12
};
rightSlider.ValueChanged += (sender, args) =>
{
qController.qSender.sendArgs("/cue/selected/sliderLevel/2", (float)args.NewValue);
};
mainG.Children.Add(mainSlider, 1, 0);
mainG.Children.Add(leftSlider, 1, 1);
mainG.Children.Add(rightSlider, 1, 2);
Grid.SetColumnSpan(mainSlider, 4);
Grid.SetColumnSpan(leftSlider, 4);
Grid.SetColumnSpan(rightSlider, 4);
Label mainLabel = new Label {
Text = "MAIN:",
VerticalTextAlignment = TextAlignment.Center,
HorizontalTextAlignment = TextAlignment.Center
};
Label leftLabel = new Label
{
Text = "LEFT:",
VerticalTextAlignment = TextAlignment.Center,
HorizontalTextAlignment = TextAlignment.Center
};
Label rightLabel = new Label
{
Text = "RIGHT:",
VerticalTextAlignment = TextAlignment.Center,
HorizontalTextAlignment = TextAlignment.Center
};
mainG.Children.Add(mainLabel, 0, 0);
mainG.Children.Add(leftLabel, 0, 1);
mainG.Children.Add(rightLabel, 0, 2);
Content = mainG;
}
public void UpdateSelectedCue(QCue cue)
{
type.Text = cue.type;
}
}
}