diff --git a/qControlMAUI/App.xaml b/qControlMAUI/App.xaml
deleted file mode 100644
index 834ff7d..0000000
--- a/qControlMAUI/App.xaml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/qControlMAUI/App.xaml.cs b/qControlMAUI/App.xaml.cs
deleted file mode 100644
index bbc5d5d..0000000
--- a/qControlMAUI/App.xaml.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-namespace qControlMAUI
-{
- public partial class App : Application
- {
- public App()
- {
- InitializeComponent();
-
- MainPage = new AppShell();
- }
- }
-}
diff --git a/qControlMAUI/AppShell.xaml b/qControlMAUI/AppShell.xaml
deleted file mode 100644
index dc75927..0000000
--- a/qControlMAUI/AppShell.xaml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
diff --git a/qControlMAUI/AppShell.xaml.cs b/qControlMAUI/AppShell.xaml.cs
deleted file mode 100644
index 50a1cf8..0000000
--- a/qControlMAUI/AppShell.xaml.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace qControlMAUI
-{
- public partial class AppShell : Shell
- {
- public AppShell()
- {
- InitializeComponent();
- }
- }
-}
diff --git a/qControlMAUI/MainPage.xaml b/qControlMAUI/MainPage.xaml
deleted file mode 100644
index 9191ba0..0000000
--- a/qControlMAUI/MainPage.xaml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/qControlMAUI/MainPage.xaml.cs b/qControlMAUI/MainPage.xaml.cs
deleted file mode 100644
index b85d80a..0000000
--- a/qControlMAUI/MainPage.xaml.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-namespace qControlMAUI
-{
- public partial class MainPage : ContentPage
- {
- int count = 0;
-
- public MainPage()
- {
- InitializeComponent();
- }
-
- private void OnCounterClicked(object sender, EventArgs e)
- {
- count++;
-
- if (count == 1)
- CounterBtn.Text = $"Clicked {count} time";
- else
- CounterBtn.Text = $"Clicked {count} times";
-
- SemanticScreenReader.Announce(CounterBtn.Text);
- }
- }
-
-}
diff --git a/qControlMAUI/MauiProgram.cs b/qControlMAUI/MauiProgram.cs
deleted file mode 100644
index 26309b0..0000000
--- a/qControlMAUI/MauiProgram.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using Microsoft.Extensions.Logging;
-
-namespace qControlMAUI
-{
- public static class MauiProgram
- {
- public static MauiApp CreateMauiApp()
- {
- var builder = MauiApp.CreateBuilder();
- builder
- .UseMauiApp()
- .ConfigureFonts(fonts =>
- {
- fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
- fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
- });
-
-#if DEBUG
- builder.Logging.AddDebug();
-#endif
-
- return builder.Build();
- }
- }
-}
diff --git a/qControlMAUI/Platforms/Android/AndroidManifest.xml b/qControlMAUI/Platforms/Android/AndroidManifest.xml
deleted file mode 100644
index bdec9b5..0000000
--- a/qControlMAUI/Platforms/Android/AndroidManifest.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/qControlMAUI/Platforms/Android/MainActivity.cs b/qControlMAUI/Platforms/Android/MainActivity.cs
deleted file mode 100644
index 92b545f..0000000
--- a/qControlMAUI/Platforms/Android/MainActivity.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using Android.App;
-using Android.Content.PM;
-using Android.OS;
-
-namespace qControlMAUI
-{
- [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTop, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
- public class MainActivity : MauiAppCompatActivity
- {
- }
-}
diff --git a/qControlMAUI/Platforms/Android/MainApplication.cs b/qControlMAUI/Platforms/Android/MainApplication.cs
deleted file mode 100644
index 122fb06..0000000
--- a/qControlMAUI/Platforms/Android/MainApplication.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using Android.App;
-using Android.Runtime;
-
-namespace qControlMAUI
-{
- [Application]
- public class MainApplication : MauiApplication
- {
- public MainApplication(IntPtr handle, JniHandleOwnership ownership)
- : base(handle, ownership)
- {
- }
-
- protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
- }
-}
diff --git a/qControlMAUI/Platforms/Android/Resources/values/colors.xml b/qControlMAUI/Platforms/Android/Resources/values/colors.xml
deleted file mode 100644
index 5cd1604..0000000
--- a/qControlMAUI/Platforms/Android/Resources/values/colors.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- #512BD4
- #2B0B98
- #2B0B98
-
\ No newline at end of file
diff --git a/qControlMAUI/Platforms/MacCatalyst/AppDelegate.cs b/qControlMAUI/Platforms/MacCatalyst/AppDelegate.cs
deleted file mode 100644
index d8dbcee..0000000
--- a/qControlMAUI/Platforms/MacCatalyst/AppDelegate.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using Foundation;
-
-namespace qControlMAUI
-{
- [Register("AppDelegate")]
- public class AppDelegate : MauiUIApplicationDelegate
- {
- protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
- }
-}
diff --git a/qControlMAUI/Platforms/MacCatalyst/Entitlements.plist b/qControlMAUI/Platforms/MacCatalyst/Entitlements.plist
deleted file mode 100644
index 8e87c0c..0000000
--- a/qControlMAUI/Platforms/MacCatalyst/Entitlements.plist
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
- com.apple.security.app-sandbox
-
-
- com.apple.security.network.client
-
-
-
-
diff --git a/qControlMAUI/Platforms/MacCatalyst/Info.plist b/qControlMAUI/Platforms/MacCatalyst/Info.plist
deleted file mode 100644
index f24aacc..0000000
--- a/qControlMAUI/Platforms/MacCatalyst/Info.plist
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- UIDeviceFamily
-
- 2
-
- UIRequiredDeviceCapabilities
-
- arm64
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UISupportedInterfaceOrientations~ipad
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- XSAppIconAssets
- Assets.xcassets/appicon.appiconset
-
-
diff --git a/qControlMAUI/Platforms/MacCatalyst/Program.cs b/qControlMAUI/Platforms/MacCatalyst/Program.cs
deleted file mode 100644
index 928699a..0000000
--- a/qControlMAUI/Platforms/MacCatalyst/Program.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using ObjCRuntime;
-using UIKit;
-
-namespace qControlMAUI
-{
- public class Program
- {
- // This is the main entry point of the application.
- static void Main(string[] args)
- {
- // if you want to use a different Application Delegate class from "AppDelegate"
- // you can specify it here.
- UIApplication.Main(args, null, typeof(AppDelegate));
- }
- }
-}
diff --git a/qControlMAUI/Platforms/Tizen/Main.cs b/qControlMAUI/Platforms/Tizen/Main.cs
deleted file mode 100644
index 1542da9..0000000
--- a/qControlMAUI/Platforms/Tizen/Main.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using Microsoft.Maui;
-using Microsoft.Maui.Hosting;
-using System;
-
-namespace qControlMAUI
-{
- internal class Program : MauiApplication
- {
- protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
-
- static void Main(string[] args)
- {
- var app = new Program();
- app.Run(args);
- }
- }
-}
diff --git a/qControlMAUI/Platforms/Tizen/tizen-manifest.xml b/qControlMAUI/Platforms/Tizen/tizen-manifest.xml
deleted file mode 100644
index afd4797..0000000
--- a/qControlMAUI/Platforms/Tizen/tizen-manifest.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- maui-appicon-placeholder
-
-
-
-
- http://tizen.org/privilege/internet
-
-
-
-
\ No newline at end of file
diff --git a/qControlMAUI/Platforms/Windows/App.xaml b/qControlMAUI/Platforms/Windows/App.xaml
deleted file mode 100644
index 182153b..0000000
--- a/qControlMAUI/Platforms/Windows/App.xaml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
diff --git a/qControlMAUI/Platforms/Windows/App.xaml.cs b/qControlMAUI/Platforms/Windows/App.xaml.cs
deleted file mode 100644
index 5058fbe..0000000
--- a/qControlMAUI/Platforms/Windows/App.xaml.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using Microsoft.UI.Xaml;
-
-// To learn more about WinUI, the WinUI project structure,
-// and more about our project templates, see: http://aka.ms/winui-project-info.
-
-namespace qControlMAUI.WinUI
-{
- ///
- /// Provides application-specific behavior to supplement the default Application class.
- ///
- public partial class App : MauiWinUIApplication
- {
- ///
- /// Initializes the singleton application object. This is the first line of authored code
- /// executed, and as such is the logical equivalent of main() or WinMain().
- ///
- public App()
- {
- this.InitializeComponent();
- }
-
- protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
- }
-
-}
diff --git a/qControlMAUI/Platforms/Windows/Package.appxmanifest b/qControlMAUI/Platforms/Windows/Package.appxmanifest
deleted file mode 100644
index 8885db3..0000000
--- a/qControlMAUI/Platforms/Windows/Package.appxmanifest
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
-
-
-
- $placeholder$
- User Name
- $placeholder$.png
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/qControlMAUI/Platforms/Windows/app.manifest b/qControlMAUI/Platforms/Windows/app.manifest
deleted file mode 100644
index 41f9349..0000000
--- a/qControlMAUI/Platforms/Windows/app.manifest
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
- true/PM
- PerMonitorV2, PerMonitor
-
-
-
diff --git a/qControlMAUI/Platforms/iOS/AppDelegate.cs b/qControlMAUI/Platforms/iOS/AppDelegate.cs
deleted file mode 100644
index d8dbcee..0000000
--- a/qControlMAUI/Platforms/iOS/AppDelegate.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using Foundation;
-
-namespace qControlMAUI
-{
- [Register("AppDelegate")]
- public class AppDelegate : MauiUIApplicationDelegate
- {
- protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
- }
-}
diff --git a/qControlMAUI/Platforms/iOS/Info.plist b/qControlMAUI/Platforms/iOS/Info.plist
deleted file mode 100644
index 358337b..0000000
--- a/qControlMAUI/Platforms/iOS/Info.plist
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
- LSRequiresIPhoneOS
-
- UIDeviceFamily
-
- 1
- 2
-
- UIRequiredDeviceCapabilities
-
- arm64
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UISupportedInterfaceOrientations~ipad
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- XSAppIconAssets
- Assets.xcassets/appicon.appiconset
-
-
diff --git a/qControlMAUI/Platforms/iOS/Program.cs b/qControlMAUI/Platforms/iOS/Program.cs
deleted file mode 100644
index 928699a..0000000
--- a/qControlMAUI/Platforms/iOS/Program.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using ObjCRuntime;
-using UIKit;
-
-namespace qControlMAUI
-{
- public class Program
- {
- // This is the main entry point of the application.
- static void Main(string[] args)
- {
- // if you want to use a different Application Delegate class from "AppDelegate"
- // you can specify it here.
- UIApplication.Main(args, null, typeof(AppDelegate));
- }
- }
-}
diff --git a/qControlMAUI/Platforms/iOS/Resources/PrivacyInfo.xcprivacy b/qControlMAUI/Platforms/iOS/Resources/PrivacyInfo.xcprivacy
deleted file mode 100644
index 1ea3a5d..0000000
--- a/qControlMAUI/Platforms/iOS/Resources/PrivacyInfo.xcprivacy
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
- NSPrivacyAccessedAPITypes
-
-
- NSPrivacyAccessedAPIType
- NSPrivacyAccessedAPICategoryFileTimestamp
- NSPrivacyAccessedAPITypeReasons
-
- C617.1
-
-
-
- NSPrivacyAccessedAPIType
- NSPrivacyAccessedAPICategorySystemBootTime
- NSPrivacyAccessedAPITypeReasons
-
- 35F9.1
-
-
-
- NSPrivacyAccessedAPIType
- NSPrivacyAccessedAPICategoryDiskSpace
- NSPrivacyAccessedAPITypeReasons
-
- E174.1
-
-
-
-
-
-
diff --git a/qControlMAUI/Properties/launchSettings.json b/qControlMAUI/Properties/launchSettings.json
deleted file mode 100644
index c16206a..0000000
--- a/qControlMAUI/Properties/launchSettings.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "profiles": {
- "Windows Machine": {
- "commandName": "MsixPackage",
- "nativeDebugging": false
- }
- }
-}
\ No newline at end of file
diff --git a/qControlMAUI/Resources/AppIcon/appicon.svg b/qControlMAUI/Resources/AppIcon/appicon.svg
deleted file mode 100644
index 5f04fcf..0000000
--- a/qControlMAUI/Resources/AppIcon/appicon.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
\ No newline at end of file
diff --git a/qControlMAUI/Resources/AppIcon/appiconfg.svg b/qControlMAUI/Resources/AppIcon/appiconfg.svg
deleted file mode 100644
index 62d66d7..0000000
--- a/qControlMAUI/Resources/AppIcon/appiconfg.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/qControlMAUI/Resources/Fonts/OpenSans-Regular.ttf b/qControlMAUI/Resources/Fonts/OpenSans-Regular.ttf
deleted file mode 100644
index ee3f28f..0000000
Binary files a/qControlMAUI/Resources/Fonts/OpenSans-Regular.ttf and /dev/null differ
diff --git a/qControlMAUI/Resources/Fonts/OpenSans-Semibold.ttf b/qControlMAUI/Resources/Fonts/OpenSans-Semibold.ttf
deleted file mode 100644
index bc81019..0000000
Binary files a/qControlMAUI/Resources/Fonts/OpenSans-Semibold.ttf and /dev/null differ
diff --git a/qControlMAUI/Resources/Images/dotnet_bot.png b/qControlMAUI/Resources/Images/dotnet_bot.png
deleted file mode 100644
index f93ce02..0000000
Binary files a/qControlMAUI/Resources/Images/dotnet_bot.png and /dev/null differ
diff --git a/qControlMAUI/Resources/Raw/AboutAssets.txt b/qControlMAUI/Resources/Raw/AboutAssets.txt
deleted file mode 100644
index f22d3bf..0000000
--- a/qControlMAUI/Resources/Raw/AboutAssets.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Any raw assets you want to be deployed with your application can be placed in
-this directory (and child directories). Deployment of the asset to your application
-is automatically handled by the following `MauiAsset` Build Action within your `.csproj`.
-
-
-
-These files will be deployed with your package and will be accessible using Essentials:
-
- async Task LoadMauiAsset()
- {
- using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt");
- using var reader = new StreamReader(stream);
-
- var contents = reader.ReadToEnd();
- }
diff --git a/qControlMAUI/Resources/Splash/splash.svg b/qControlMAUI/Resources/Splash/splash.svg
deleted file mode 100644
index 62d66d7..0000000
--- a/qControlMAUI/Resources/Splash/splash.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/qControlMAUI/Resources/Styles/Colors.xaml b/qControlMAUI/Resources/Styles/Colors.xaml
deleted file mode 100644
index 22f0a67..0000000
--- a/qControlMAUI/Resources/Styles/Colors.xaml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
- #512BD4
- #ac99ea
- #242424
- #DFD8F7
- #9880e5
- #2B0B98
-
- White
- Black
- #D600AA
- #190649
- #1f1f1f
-
- #E1E1E1
- #C8C8C8
- #ACACAC
- #919191
- #6E6E6E
- #404040
- #212121
- #141414
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/qControlMAUI/Resources/Styles/Styles.xaml b/qControlMAUI/Resources/Styles/Styles.xaml
deleted file mode 100644
index d600a7f..0000000
--- a/qControlMAUI/Resources/Styles/Styles.xaml
+++ /dev/null
@@ -1,427 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/qControlMAUI/qControlMAUI.csproj b/qControlMAUI/qControlMAUI.csproj
deleted file mode 100644
index 9717071..0000000
--- a/qControlMAUI/qControlMAUI.csproj
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
- net8.0-android;net8.0-ios;net8.0-maccatalyst
- $(TargetFrameworks);net8.0-windows10.0.19041.0
-
-
-
-
-
-
- Exe
- qControlMAUI
- true
- true
- enable
- enable
-
-
- qControlMAUI
-
-
- com.companyname.qcontrolmaui
-
-
- 1.0
- 1
-
- 11.0
- 13.1
- 21.0
- 10.0.17763.0
- 10.0.17763.0
- 6.5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/qControllerCore/Classes/Buttons/QButton.cs b/qControllerCore/Classes/Buttons/QButton.cs
deleted file mode 100644
index 907f138..0000000
--- a/qControllerCore/Classes/Buttons/QButton.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using Microsoft.Maui.Graphics;
-using Microsoft.Maui.Controls.Compatibility;
-using Microsoft.Maui.Controls;
-using Microsoft.Maui;
-
-namespace qController
-{
- public class QButton : Button
- {
- public QCommand qCommand
- {
- get;
- set;
- }
-
- public QButton(QCommand command)
- {
-
- qCommand = command;
- Text = qCommand.text;
- TextColor = Colors.Black;
- FontSize = App.WidthUnit * 5;
- if (qCommand.osc.Contains("go"))
- {
- BackgroundColor = Colors.SeaGreen;
- // TODO Xamarin.Forms.Device.RuntimePlatform is no longer supported. Use Microsoft.Maui.Devices.DeviceInfo.Platform instead. For more details see https://learn.microsoft.com/en-us/dotnet/maui/migration/forms-projects#device-changes
- switch (Device.RuntimePlatform)
- {
- case Device.iOS:
- FontSize = App.HeightUnit * 4;
- FontAttributes = FontAttributes.Bold;
- break;
- case Device.Android:
- FontSize = App.HeightUnit * 4;
- FontAttributes = FontAttributes.Bold;
- break;
- }
- }
- else if (qCommand.osc.Contains("panic"))
- {
- BackgroundColor = Colors.IndianRed;
- }
- else
- {
- BackgroundColor = Color.FromArgb("D8D8D8");
- }
- }
- }
-}
diff --git a/qControllerCore/Classes/Buttons/QLevelsButton.cs b/qControllerCore/Classes/Buttons/QLevelsButton.cs
deleted file mode 100644
index b725060..0000000
--- a/qControllerCore/Classes/Buttons/QLevelsButton.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using Microsoft.Maui.Graphics;
-using Microsoft.Maui.Controls.Compatibility;
-using Microsoft.Maui.Controls;
-using Microsoft.Maui;
-namespace qController
-{
- public class QLevelsButton : ShadowButton
- {
- public Button button;
- public QLevelsButton()
- {
- button = new Button
- {
- Text = QIcon.SLIDERS,
- TextColor = Colors.Black,
- FontFamily = App.QFont,
- FontSize = App.HeightUnit * 4,
- VerticalOptions = LayoutOptions.FillAndExpand,
- HorizontalOptions = LayoutOptions.FillAndExpand,
- HeightRequest = App.HeightUnit * 8,
- WidthRequest = App.HeightUnit * 8,
- CornerRadius = (int)(App.HeightUnit * 4),
- BackgroundColor = Colors.LightBlue
- };
-
- HeightRequest = button.Height;
- WidthRequest = button.Width;
- CornerRadius = button.CornerRadius;
- Content = button;
- }
- }
-}
diff --git a/qControllerCore/Classes/Buttons/ShadowButton.cs b/qControllerCore/Classes/Buttons/ShadowButton.cs
deleted file mode 100644
index 92f2f0b..0000000
--- a/qControllerCore/Classes/Buttons/ShadowButton.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using Microsoft.Maui.Graphics;
-using Microsoft.Maui.Controls.Compatibility;
-using Microsoft.Maui.Controls;
-using Microsoft.Maui;
-
-namespace qController
-{
- public class ShadowButton : Frame
- {
- public ShadowButton(Button b)
- {
- //Content = b;
- HeightRequest = b.Height;
- WidthRequest = b.Width;
- CornerRadius = b.CornerRadius;
- Padding = new Thickness(0);
- Content = b;
- HasShadow = true;
- BorderColor = Colors.Black;
- IsVisible = false;
- }
-
- public ShadowButton()
- {
- HasShadow = true;
- BorderColor = Colors.Black;
- IsVisible = false;
- Padding = new Thickness(0);
- }
- }
-}
diff --git a/qControllerCore/Classes/Cell/QControlsBlock.cs b/qControllerCore/Classes/Cell/QControlsBlock.cs
deleted file mode 100644
index dd4f865..0000000
--- a/qControllerCore/Classes/Cell/QControlsBlock.cs
+++ /dev/null
@@ -1,131 +0,0 @@
-using System;
-using System.Collections.Generic;
-using qController.Communication;
-using Microsoft.Maui.Graphics;
-using Microsoft.Maui.Controls.Compatibility;
-using Microsoft.Maui.Controls;
-using Microsoft.Maui;
-
-namespace qController.Cell
-{
- public class QControlsBlock : Frame
- {
- Microsoft.Maui.Controls.Compatibility.Grid mainG;
-
- EventHandler callback;
-
- public QControlsBlock(EventHandler callback)
- {
- this.callback = callback;
-
- Margin = new Thickness(10);
- Padding = new Thickness(0);
- IsVisible = true;
-
-
- BackgroundColor = Colors.Transparent;
- //highlight Button Grid
- //BackgroundColor = Color.FromHex("FF0000");
-
- List commands = new List();
- commands.Add(QCommands.PREVIOUS);
- commands.Add(QCommands.PAUSE);
- commands.Add(QCommands.NEXT);
- commands.Add(QCommands.PREVIEW);
- commands.Add(QCommands.PANIC);
- commands.Add(QCommands.RESUME);
- //setCustomButtons(commands);
- setDefaultButtons();
-
- }
-
- void setDefaultButtons()
- {
- List buttons = new List();
-
- buttons.Add(new QButton(QCommands.PREVIOUS));
- buttons.Add(new QButton(QCommands.PANIC));
- buttons.Add(new QButton(QCommands.NEXT));
- buttons.Add(new QButton(QCommands.PREVIEW));
- buttons.Add(new QButton(QCommands.PAUSE));
- buttons.Add(new QButton(QCommands.RESUME));
-
- mainG = new Microsoft.Maui.Controls.Compatibility.Grid
- {
- Padding = new Thickness(0),
- RowDefinitions = {
- 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)}
- },
- Margin = new Thickness(0)
- };
-
- int row = 0;
- int column = 0;
- for (int i = 0; i < buttons.Count; i++)
- {
- QButton b = buttons[i];
- b.Clicked += callback;
- mainG.Children.Add(b, column, row);
- row++;
- if (row == 3)
- {
- row = 0;
- column = 2;
- }
- }
-
- QButton goButton = new QButton(QCommands.GO);
- goButton.Clicked += callback;
- mainG.Children.Add(goButton, 1, 0);
- Microsoft.Maui.Controls.Compatibility.Grid.SetRowSpan(goButton, 3);
- Content = mainG;
- }
-
- public void setCustomButtons(List commands)
- {
- mainG = new Microsoft.Maui.Controls.Compatibility.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)}
- },
- Margin = new Thickness(0)
- };
-
- int row = 0;
- int column = 0;
- for (int i = 0; i < commands.Count; i++)
- {
- QButton b = new QButton(commands[i]);
- b.Clicked += callback;
- mainG.Children.Add(b, column, row);
- row++;
- if (row == 3)
- {
- row = 0;
- column = 2;
- }
- }
-
- QButton goButton = new QButton(QCommands.GO);
- goButton.Clicked += callback;
- mainG.Children.Add(goButton, 1, 0);
- Microsoft.Maui.Controls.Compatibility.Grid.SetRowSpan(goButton, 3);
- Content = mainG;
- }
- }
-}
diff --git a/qControllerCore/Classes/Cell/QCueListCell.cs b/qControllerCore/Classes/Cell/QCueListCell.cs
deleted file mode 100644
index 7a7035f..0000000
--- a/qControllerCore/Classes/Cell/QCueListCell.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-using System.Collections.ObjectModel;
-using qController.QItems;
-using Microsoft.Maui.Controls.Compatibility;
-
-namespace qController.Cell
-{
- public class QCueListCell : Frame
- {
- public ListView cueListView;
- public Button closeButton;
- public ObservableCollection items;
- public QCueListCell(QCueList qCueList)
- {
- // TODO Xamarin.Forms.Device.RuntimePlatform is no longer supported. Use Microsoft.Maui.Devices.DeviceInfo.Platform instead. For more details see https://learn.microsoft.com/en-us/dotnet/maui/migration/forms-projects#device-changes
- switch (Device.RuntimePlatform)
- {
- case Device.iOS:
- Margin = new Thickness(10, 30, 10, 10);
- break;
- case Device.Android:
- Margin = new Thickness(10, 10, 10, 10);
- break;
- }
- Padding = new Thickness(10);
- items = new ObservableCollection();
-
- cueListView = new ListView
- {
- ItemsSource = items,
- RowHeight = (int)(App.HeightUnit * 6),
- ItemTemplate = new DataTemplate(() =>
- {
- var grid = new Microsoft.Maui.Controls.Compatibility.Grid { Padding = new Thickness(5, 10) };
- grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(30) });
- grid.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Star });
-
-
- var icon = new Label();
-
- icon.FontFamily = App.QFont;
- icon.SetBinding(Label.TextProperty, "Icon");
- icon.HorizontalTextAlignment = TextAlignment.Center;
- icon.VerticalTextAlignment = TextAlignment.Center;
- icon.FontSize = App.HeightUnit * 3;
- var label = new Label { VerticalOptions = LayoutOptions.FillAndExpand };
- label.SetBinding(Label.TextProperty, "Text");
- if (label.Text == "Disconnect")
- {
- label.TextColor = Colors.DarkRed;
- }
- // TODO Xamarin.Forms.Device.RuntimePlatform is no longer supported. Use Microsoft.Maui.Devices.DeviceInfo.Platform instead. For more details see https://learn.microsoft.com/en-us/dotnet/maui/migration/forms-projects#device-changes
- switch (Device.RuntimePlatform)
- {
- case Device.iOS:
- label.FontSize = App.HeightUnit * 3;
- break;
- case Device.Android:
- label.FontSize = App.HeightUnit * 2.2;
- break;
- }
- grid.Children.Add(icon);
- grid.Children.Add(label, 1, 0);
- return new ViewCell { View = grid };
-
- })
- };
- Microsoft.Maui.Controls.Compatibility.StackLayout layout = new Microsoft.Maui.Controls.Compatibility.StackLayout();
- closeButton = new Button
- {
- BackgroundColor = Colors.Gray,
- Text = "Close",
- TextColor = Colors.White
- };
-
- layout.Children.Add(closeButton);
- layout.Children.Add(cueListView);
- Content = layout;
-
- for(int j=0; j < qCueList.cues.Count; j++)
- {
- var cue = qCueList.cues[j];
- AddSubCues(cue, 0);
- }
-
- }
-
- public void AddSubCues(QCue cue, int level)
- {
- var cueIcon = cue.getIconString();
- var cueTitle = "";
- for (int i = 0; i < level; i++)
- {
- cueTitle += " ";
- }
- if (cue.number != "")
- {
- cueTitle += cue.number + " - " + cue.listName;
- }
- else
- {
- cueTitle += cue.listName;
- }
-
- if (cue.cues != null)
- {
- items.Add(new OSCListItem
- {
- Text = cueTitle,
- Icon = cueIcon,
- Command = "/select_id/" + cue.uniqueID
- });
-
- //uncomment to load nested group cues
- for (int i = 0; i < cue.cues.Count; i++)
- {
- var sub_cue = cue.cues[i];
- AddSubCues(sub_cue, level + 1);
- }
- }
- else
- {
- items.Add(new OSCListItem
- {
- Text = cueTitle,
- Icon = cueIcon,
- Command = "/select_id/" + cue.uniqueID
- });
- }
- }
-
- }
-}
diff --git a/qControllerCore/Classes/Cell/QInstanceCell.cs b/qControllerCore/Classes/Cell/QInstanceCell.cs
deleted file mode 100644
index 25fd158..0000000
--- a/qControllerCore/Classes/Cell/QInstanceCell.cs
+++ /dev/null
@@ -1,121 +0,0 @@
-using System;
-using Serilog;
-using Microsoft.Maui.Graphics;
-using Microsoft.Maui.Controls.Compatibility;
-using Microsoft.Maui.Controls;
-using Microsoft.Maui;
-
-namespace qController.Cell
-{
- public class QInstanceCell : ViewCell
- {
- public QInstanceCell()
- {
-
-
- Label nameLabel = new Label();
- Label addressLabel = new Label();
-
- Label connectLabel = new Label();
- Label deleteLabel = new Label();
-
- var connectTapGesture = new TapGestureRecognizer();
- var deleteTapGesture = new TapGestureRecognizer();
-
- connectTapGesture.Tapped += Connect;
- connectLabel.GestureRecognizers.Add(connectTapGesture);
-
-
- deleteTapGesture.Tapped += Delete;
- deleteLabel.GestureRecognizers.Add(deleteTapGesture);
-
- InitItems();
-
-
- //SET BINDINGS
- nameLabel.SetBinding(Label.TextProperty, new Binding("name"));
- addressLabel.SetBinding(Label.TextProperty,new Binding("address"));
-
- Microsoft.Maui.Controls.Compatibility.Grid mainG = new Microsoft.Maui.Controls.Compatibility.Grid
- {
- //Padding = new Thickness(10),
- RowDefinitions = {
- new RowDefinition{Height = GridLength.Auto},
- new RowDefinition{Height = GridLength.Auto}
- },
- ColumnDefinitions = {
- new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)},
- new ColumnDefinition{Width = new GridLength(4,GridUnitType.Star)},
- new ColumnDefinition{Width = new GridLength(1,GridUnitType.Star)}
- }
- };
-
- mainG.Children.Add(nameLabel, 1, 0);
- mainG.Children.Add(addressLabel,1,1);
-
- mainG.Children.Add(connectLabel,2,0);
- Microsoft.Maui.Controls.Compatibility.Grid.SetRowSpan(connectLabel,2);
- mainG.Children.Add(deleteLabel, 0, 0);
- Microsoft.Maui.Controls.Compatibility.Grid.SetRowSpan(deleteLabel,2);
-
- Frame f = new Frame
- {
- Content = mainG,
- BorderColor = Colors.Black,
- VerticalOptions = LayoutOptions.CenterAndExpand,
- HorizontalOptions = LayoutOptions.FillAndExpand,
- Padding = 0,
- Margin = new Thickness(10,10,10,10),
- CornerRadius=20,
- BackgroundColor = Color.FromArgb("D8D8D8")
- };
- View = f;
-
-
- void InitItems()
- {
-
- nameLabel.HorizontalTextAlignment = TextAlignment.Center;
- nameLabel.VerticalTextAlignment = TextAlignment.End;
- nameLabel.FontAttributes = FontAttributes.Bold;
- nameLabel.FontSize = App.HeightUnit * 3;
- nameLabel.Margin = new Thickness(0, 20, 0, 0);
-
- addressLabel.HorizontalTextAlignment = TextAlignment.Center;
- addressLabel.VerticalTextAlignment = TextAlignment.Start;
- addressLabel.FontSize = App.HeightUnit * 2.5;
- addressLabel.Margin = new Thickness(0, 0, 0, 20);
-
- connectLabel.HorizontalOptions = LayoutOptions.StartAndExpand;
- connectLabel.VerticalOptions = LayoutOptions.CenterAndExpand;
- connectLabel.Text = QIcon.WIFI;
- connectLabel.FontSize = App.HeightUnit * 5;
- connectLabel.TextColor = Colors.LimeGreen;
-
- deleteLabel.HorizontalOptions = LayoutOptions.CenterAndExpand;
- deleteLabel.VerticalOptions = LayoutOptions.CenterAndExpand;
- deleteLabel.Text = QIcon.TRASH_EMPTY;
- deleteLabel.FontSize = App.HeightUnit * 5;
- deleteLabel.TextColor = Colors.Red;
-
- connectLabel.FontFamily = App.QFont;
- deleteLabel.FontFamily = App.QFont;
- }
-
-
- void Delete(object sender, EventArgs e)
- {
-
- Log.Debug("QINSTANCECELL - Delete " + nameLabel.Text + "," + addressLabel.Text + " Pressed");
- QStorage.RemoveInstance(nameLabel.Text,addressLabel.Text);
-
- }
-
- void Connect(object sender, EventArgs e)
- {
- App.rootPage.Detail.Navigation.PushAsync(new ControlPage(nameLabel.Text, addressLabel.Text));
- Log.Debug("QINSTANCECELL - Connect To " + nameLabel.Text + " Pressed");
- }
- }
- }
-}
diff --git a/qControllerCore/Classes/Cell/QLevelsCell.cs b/qControllerCore/Classes/Cell/QLevelsCell.cs
deleted file mode 100644
index 13bb90d..0000000
--- a/qControllerCore/Classes/Cell/QLevelsCell.cs
+++ /dev/null
@@ -1,124 +0,0 @@
-using System.Collections.Generic;
-using Microsoft.Maui.Graphics;
-using Microsoft.Maui.Controls.Compatibility;
-using Microsoft.Maui.Controls;
-using Microsoft.Maui;
-
-namespace qController.Cell
-{
- public class QLevelsCell : Frame
- {
-
- public List levels;
- public string activeCue;
- public Slider mainSlider;
- public Slider leftSlider;
- public Slider rightSlider;
- public Label mainLabel;
- public Label rightLabel;
- public Label leftLabel;
- public QLevelsCell()
- {
- Padding = new Thickness(5);
- CornerRadius = 20;
- BorderColor = Colors.Black;
- HasShadow = true;
- BackgroundColor = Color.FromArgb("D8D8D8");
- IsVisible = false;
- //highlight for testing
- //BackgroundColor = Color.Red;
-
-
- Microsoft.Maui.Controls.Compatibility.Grid mainG = new Microsoft.Maui.Controls.Compatibility.Grid
- {
- Padding = new Thickness(0),
- RowDefinitions = {
- 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)}
- }
- };
-
- mainSlider = new Slider
- {
- Minimum = -60,
- Maximum = 12
- };
-
-
- leftSlider = new Slider
- {
- Minimum = -60,
- Maximum = 12
- };
-
-
- rightSlider = new Slider
- {
- Minimum = -60,
- Maximum = 12
- };
-
-
- mainLabel = new Label
- {
- Text = "MAIN:",
- 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
- };
-
- mainG.Children.Add(mainSlider, 1, 0);
- mainG.Children.Add(leftSlider, 1, 1);
- mainG.Children.Add(rightSlider, 1, 2);
-
- Microsoft.Maui.Controls.Compatibility.Grid.SetColumnSpan(mainSlider, 4);
- Microsoft.Maui.Controls.Compatibility.Grid.SetColumnSpan(leftSlider, 4);
- Microsoft.Maui.Controls.Compatibility.Grid.SetColumnSpan(rightSlider, 4);
-
- mainG.Children.Add(mainLabel, 0, 0);
- mainG.Children.Add(leftLabel, 0, 1);
- mainG.Children.Add(rightLabel, 0, 2);
-
- Content = mainG;
- Margin = new Thickness(10);
- }
-
- public void UpdateLevels(List 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];
- }
- }
- }
-}
\ No newline at end of file
diff --git a/qControllerCore/Classes/Cell/QSelectedCueCell.cs b/qControllerCore/Classes/Cell/QSelectedCueCell.cs
deleted file mode 100644
index 1072c43..0000000
--- a/qControllerCore/Classes/Cell/QSelectedCueCell.cs
+++ /dev/null
@@ -1,237 +0,0 @@
-using System;
-using Acr.UserDialogs;
-using qController.QItems;
-using Microsoft.Maui.Controls.Compatibility;
-using Microsoft.Maui.Controls;
-using Microsoft.Maui;
-
-namespace qController.Cell
-{
- public class CueEditArgs : EventArgs
- {
- public string CueID
- {
- get;
- set;
- }
- public string Property
- {
- get;
- set;
- }
- public string NewValue
- {
- get;
- set;
- }
- }
-
- public class QSelectedCueCell : Frame
- {
- public delegate void SelectedCueEditedHandler(object source, CueEditArgs args);
- public event SelectedCueEditedHandler SelectedCueEdited;
-
- Label name;
- Label number;
- Label type;
- public Label notes;
- public QCue activeCue;
- public QSelectedCueCell()
- {
-
- Microsoft.Maui.Controls.Compatibility.Grid mainG = new Microsoft.Maui.Controls.Compatibility.Grid
- {
- Padding = new Thickness(0),
- RowDefinitions =
- {
- new RowDefinition{Height = GridLength.Star},
- new RowDefinition{Height = new GridLength(2, GridUnitType.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)}
- }
- };
- Microsoft.Maui.Controls.Compatibility.Grid topGrid = new Microsoft.Maui.Controls.Compatibility.Grid
- {
- Padding = new Thickness(0),
- RowDefinitions =
- {
- 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)}
- }
- };
- Microsoft.Maui.Controls.Compatibility.Grid bottomGrid = new Microsoft.Maui.Controls.Compatibility.Grid
- {
- Padding = new Thickness(0),
- RowDefinitions =
- {
- new RowDefinition{Height = new GridLength(1,GridUnitType.Star)},
- new RowDefinition{Height = new GridLength(2,GridUnitType.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)}
- }
- };
-
- number = new Label {
- Text = "",
- FontAttributes = FontAttributes.Bold,
- FontSize = App.HeightUnit * 5
- };
-
- name = new Label {
- Text = "Loading Workspace....",
- FontAttributes = FontAttributes.Bold,
- HorizontalTextAlignment = TextAlignment.Center,
- FontSize = App.HeightUnit * 3.5,
- Margin = new Thickness(0)
- };
-
- type = new Label {
- Text = QIcon.SPIN3,
- FontFamily = App.QFont,
- VerticalTextAlignment = TextAlignment.Center,
- HorizontalTextAlignment = TextAlignment.End,
- FontSize = App.HeightUnit * 5
- };
-
- notes = new Label {
- Text = "Loading Cue Lists and Playhead Position",
- HorizontalTextAlignment = TextAlignment.Center,
- Margin = new Thickness(0,0,0,10),
- VerticalOptions = LayoutOptions.FillAndExpand,
- HorizontalOptions = LayoutOptions.FillAndExpand
- };
-
- //BACKGROUND COLORS FOR TESTING ONLY
- //notes.BackgroundColor = Color.Red;
- //number.BackgroundColor = Color.Red;
- //name.BackgroundColor = Color.Red;
- //type.BackgroundColor = Color.Red;
- //topGrid.BackgroundColor = Color.Green;
- //bottomGrid.BackgroundColor = Color.Green;
-
- topGrid.Children.Add(number, 0, 0);
- topGrid.Children.Add(type, 4, 0);
- Microsoft.Maui.Controls.Compatibility.Grid.SetColumnSpan(number, 3);
- Microsoft.Maui.Controls.Compatibility.Grid.SetColumnSpan(type, 1);
-
- bottomGrid.Children.Add(name, 0, 0);
- bottomGrid.Children.Add(notes, 0, 1);
- Microsoft.Maui.Controls.Compatibility.Grid.SetColumnSpan(name, 5);
- Microsoft.Maui.Controls.Compatibility.Grid.SetColumnSpan(notes,5);
-
- mainG.Children.Add(topGrid, 0, 0);
- Microsoft.Maui.Controls.Compatibility.Grid.SetColumnSpan(topGrid, 5);
-
- mainG.Children.Add(bottomGrid, 0, 1);
- Microsoft.Maui.Controls.Compatibility.Grid.SetColumnSpan(bottomGrid, 5);
-
- CornerRadius = 20;
- BackgroundColor = Color.FromArgb("D8D8D8");
- HeightRequest = App.HeightUnit * 25;
- Margin = new Thickness(10);
- Content = mainG;
-
- SetupDoubleTapEdit();
- }
-
- void SetupDoubleTapEdit()
- {
- var notesDoubleTap = new TapGestureRecognizer();
- var nameDoubleTap = new TapGestureRecognizer();
- var numberDoubleTap = new TapGestureRecognizer();
-
- notesDoubleTap.NumberOfTapsRequired = 2;
- nameDoubleTap.NumberOfTapsRequired = 2;
- numberDoubleTap.NumberOfTapsRequired = 2;
-
- notesDoubleTap.Tapped += (s, e) =>
- {
- UserDialogs.Instance.Prompt(new PromptConfig
- {
- Title = "Update Notes",
- Message = "Changes notes to update",
- OkText = "Update",
- Text = notes.Text,
- OnAction = (qNotes) =>
- {
- if (!qNotes.Ok)
- return;
- OnSelectedCueEdited("notes", qNotes.Text);
-
-
- }
- });
- };
-
- nameDoubleTap.Tapped += (s, e) =>
- {
- UserDialogs.Instance.Prompt(new PromptConfig
- {
- Title = "Update Name",
- Message = "Change name to update",
- OkText = "Update",
- Text = name.Text,
- OnAction = (qName) =>
- {
- if (!qName.Ok)
- return;
- OnSelectedCueEdited("name", qName.Text);
- }
- });
- };
-
- numberDoubleTap.Tapped += (s, e) =>
- {
- UserDialogs.Instance.Prompt(new PromptConfig
- {
- Title = "Update Number",
- Message = "Change number to update",
- OkText = "Update",
- Text = number.Text,
- OnAction = (qNumber) =>
- {
- if (!qNumber.Ok)
- return;
- OnSelectedCueEdited("number", qNumber.Text);
- }
- });
- };
- notes.GestureRecognizers.Add(notesDoubleTap);
- name.GestureRecognizers.Add(nameDoubleTap);
- number.GestureRecognizers.Add(numberDoubleTap);
- }
-
- public void UpdateSelectedCue(QCue cue)
- {
- activeCue = cue;
- name.Text = cue.listName;
- number.Text = cue.number;
- type.Text = cue.getIconString();
- notes.Text = cue.notes;
- }
-
- protected virtual void OnSelectedCueEdited(string prop, string value)
- {
- SelectedCueEdited?.Invoke(this, new CueEditArgs() { CueID = activeCue.uniqueID, Property = prop, NewValue = value });
- }
- }
-}
diff --git a/qControllerCore/Classes/Communication/Events/QEventArgs.cs b/qControllerCore/Classes/Communication/Events/QEventArgs.cs
deleted file mode 100644
index 3e234cf..0000000
--- a/qControllerCore/Classes/Communication/Events/QEventArgs.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using System;
-using System.Collections.Generic;
-using qController.QItems;
-
-namespace qController.Communication
-{
- public class CueEventArgs : EventArgs
- {
- public QCue Cue
- {
- get;
- set;
- }
- }
-
- public class WorkspaceEventArgs : EventArgs
- {
- public QWorkspace UpdatedWorkspace
- {
- get;
- set;
- }
- }
-
- public class PlaybackPositionArgs : EventArgs
- {
- public string PlaybackPosition
- {
- get;
- set;
- }
- }
-
- public class ConnectEventArgs : EventArgs
- {
- public string Status
- {
- get;
- set;
- }
-
- public string WorkspaceId
- {
- get;
- set;
- }
- }
-
- public class WorkspaceInfoArgs : EventArgs
- {
- public List WorkspaceInfo
- {
- get;
- set;
- }
- }
-
- public class ChildrenEventArgs : EventArgs
- {
- public string cue_id
- {
- get;
- set;
- }
- public List children
- {
- get;
- set;
- }
- }
-}
diff --git a/qControllerCore/Classes/Communication/Events/QEventHandlers.cs b/qControllerCore/Classes/Communication/Events/QEventHandlers.cs
deleted file mode 100644
index a7f43d6..0000000
--- a/qControllerCore/Classes/Communication/Events/QEventHandlers.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace qController.Communication
-{
- public delegate void SelectedCueUpdatedHandler(object source, CueEventArgs args);
- public delegate void WorkspaceUpdatedHandler(object source, WorkspaceEventArgs args);
- public delegate void CueInfoUpdatedHandler(object source, CueEventArgs args);
- public delegate void PlaybackPositionUpdatedHandler(object source, PlaybackPositionArgs args);
- public delegate void ConnectionStatusHandler(object source, ConnectEventArgs args);
- public delegate void ChildrenUpdateHandler(object source, ChildrenEventArgs args);
- public delegate void WorkspaceDisconnectHandler(object source, EventArgs args);
- public delegate void WorkspaceInfoHandler(object source, WorkspaceInfoArgs args);
- public delegate void WorkspaceLoadErrorHandler(object source, WorkspaceEventArgs args);
-}
diff --git a/qControllerCore/Classes/Communication/IPHelper.cs b/qControllerCore/Classes/Communication/IPHelper.cs
deleted file mode 100644
index 65cef36..0000000
--- a/qControllerCore/Classes/Communication/IPHelper.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-//IP Address verification
-//IMPLEMENT A ISREACHABLE METHOD TO BE ABLE TO DISPLAY ONLINE QINSTANCES
-using System.Net;
-
-namespace qController.Communication
-{
- public class IPHelper
- {
- public IPHelper()
- {
- }
-
- public static bool IsValidAddress(string ipString){
- if ((ipString.Split('.').Length - 1) != 3) return false;
- IPAddress address;
- return IPAddress.TryParse(ipString, out address);
- }
- }
-}
diff --git a/qControllerCore/Classes/Communication/QClient.cs b/qControllerCore/Classes/Communication/QClient.cs
deleted file mode 100644
index 3b1a2e7..0000000
--- a/qControllerCore/Classes/Communication/QClient.cs
+++ /dev/null
@@ -1,109 +0,0 @@
-//Class used to facilitate communication with a QInstance
-//Listens for incoming messages via qReceiver (UDP) and tcpClient (TCP)
-//TODO: WEIRD MESSAGE PARSING RULES NEED FIXED
-using System;
-using SharpOSC;
-using Serilog;
-
-namespace qController.Communication
-{
- public class QClient
- {
- private TCPClient tcpClient;
- public QParser qParser;
- string Address;
- int Port;
- public bool connected;
-
- public QClient(string address, int port)
- {
- Address = address;
- Port = port;
- qParser = new QParser();
- tcpClient = new TCPClient(Address, Port);
- connected = tcpClient.Connect();
- tcpClient.MessageReceived += OnMessageReceived;
-
- }
-
- //one method for messages received whether from TCP or UDP (SAME MSG FORMAT)
- private void OnMessageReceived(object source, MessageEventArgs args)
- {
- Log.Debug("QCLIENT - Message Received: " + args.Message.Address);
-
-
- //TODO: find a better filtering process
- if (!args.Message.Address.Contains("update"))
- qParser.ParseMessage(args.Message);
- else if (args.Message.Address.Contains("playbackPosition") || args.Message.Address.Contains("cueList") || args.Message.Address.Contains("dashboard"))
- qParser.ParseMessage(args.Message);
- else if (args.Message.Address.Contains("cue_id"))
- {
- var parts = args.Message.Address.Split('/');
- UpdateSpecificCue(parts[3], parts[5]);
- }
- else
- ProcessUpdate(args.Message);
- }
-
- public void sendTCP(string address)
- {
- //Log.Debug($"QCLIENT - TCP Sent with address: {address}");
- try
- {
- tcpClient.Send(new OscMessage(address));
- }
- catch (Exception ex)
- {
- Log.Debug("QCLIENT - Send and Receive Exception: " + ex.Message);
- }
- }
-
- public void sendTCP(string address, params object[] args)
- {
- //Log.Debug($"QCLIENT - TCP Sent with address: {address}");
- try
- {
- tcpClient.Send(new OscMessage(address, args));
- }
- catch (Exception ex)
- {
- Log.Debug("QCLIENT - Send and Receive w/Args Exception: " + ex.Message);
- }
- }
-
-
- public void ProcessUpdate(OscMessage msg)
- {
- Log.Debug("QCLIENT - Process Update: " + msg.Address);
- if (msg.Address.Contains("workspace"))
- {
- UpdateWorkspace("not yet implemented");
- }
- }
-
- 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 address = "/workspace/" + workspace_id + "/cue_id/" + cue_id + "/valuesForKeys";
- sendTCP(address, valuesForKeys);
- }
-
- 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 address = "/workspace/" + workspace_id + "/cue/selected/valuesForKeys";
- sendTCP(address, valuesForKeys);
- }
-
- public void UpdateWorkspace(string ws_id)
- {
- Log.Debug("QCLIENT - Workspace needs to be updated: " + ws_id);
- }
-
- public void Close()
- {
- tcpClient.Close();
- }
- }
-}
diff --git a/qControllerCore/Classes/Communication/QController.cs b/qControllerCore/Classes/Communication/QController.cs
deleted file mode 100644
index 7987901..0000000
--- a/qControllerCore/Classes/Communication/QController.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-//Class used for overall Workspace control (ONLY REPRESENTS ONE WORKSPACE)
-//Contains all necessary items to facilitate communication (sending, receiving) to a QLab workspace
-//Also contains the local QWorkspace object which stores all the information that is used in displaying
-//TODO: STILL NEED TO WORK ON PASSWORD PROTECTED WORKSPACES
-using Serilog;
-using qController.QItems;
-
-namespace qController.Communication
-{
- public class QController
- {
-
- public QUpdater qUpdater;
- public QClient qClient;
- public QWorkspace qWorkspace;
- public string playbackPosition;
- private string ipAddress;
- private int port;
-
- public QController(string address, int port)
- {
- this.port = port;
- this.ipAddress = address;
- qClient = new QClient(ipAddress, port);
- qUpdater = new QUpdater(this);
-
- }
-
- public void Connect(string workspace_id)
- {
- Log.Debug($"QCONTROLLER - Connect Called: {workspace_id}");
- qWorkspace = new QWorkspace(workspace_id);
- qClient.sendTCP("/workspace/"+workspace_id+"/connect");
- }
-
- public void Connect(string workspace_id, string passcode)
- {
- Log.Debug($"QCONTROLLER - Connect with Passcode Called: {workspace_id}:{passcode}");
- qWorkspace = new QWorkspace(workspace_id);
- qClient.sendTCP("/workspace/" + workspace_id + "/connect", passcode);
-
- }
-
- public void Connect(QWorkspace workspace)
- {
- if(workspace.passcode != null)
- Connect(workspace.workspace_id, workspace.passcode);
- else
- Connect(workspace.workspace_id);
-
- }
-
- public void KickOff()
- {
- Log.Debug($"QCONTROLLER - Searching for workspaces on: {ipAddress}");
- qClient.sendTCP("/workspaces");
- }
-
- public void Disconnect()
- {
- Log.Debug($"QCONTROLLER - Disconnecting from: {qWorkspace.workspace_id}");
- qClient.sendTCP("/workspace/"+qWorkspace.workspace_id+"/disconnect");
- }
-
- public void Resume()
- {
- //qClient = new QClient(ipAddress, port);
- //qUpdater = new QUpdater(this);
- if(qWorkspace != null)
- {
- Log.Debug($"QCONTROLLER - Resuming: {qWorkspace.workspace_id}");
- }
- }
-
- public void Kill(){
- Log.Debug("QCONTROLLER - Killing");
- if (qClient != null)
- qClient.Close();
- }
- }
-}
diff --git a/qControllerCore/Classes/Communication/QFinder.cs b/qControllerCore/Classes/Communication/QFinder.cs
deleted file mode 100644
index 0a8c53a..0000000
--- a/qControllerCore/Classes/Communication/QFinder.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-//Currently unused would like to reimplement eventually
-//Currently being done in qConnectionPage.xaml.cs Scan() method
-//TODO: Implement this along with a way of getting active Instances and # of workspaces for an instance
-using Serilog;
-using System.Collections.Generic;
-using Zeroconf;
-
-namespace qController.Communication
-{
- public class QFinder
- {
- public QFinder()
- {
- }
-
- public async void SearchForWorkspaces()
- {
- Log.Debug("QFINDER - Scanning Started");
- IReadOnlyList results = await ZeroconfResolver.ResolveAsync("_qlab._tcp.local.");
- Log.Debug("QFINDER - Scanning Done");
- }
- }
-}
diff --git a/qControllerCore/Classes/Communication/QParser.cs b/qControllerCore/Classes/Communication/QParser.cs
deleted file mode 100644
index 7941aa9..0000000
--- a/qControllerCore/Classes/Communication/QParser.cs
+++ /dev/null
@@ -1,184 +0,0 @@
-using System;
-using SharpOSC;
-using Newtonsoft.Json.Linq;
-using Newtonsoft.Json;
-using System.Collections.Generic;
-using qController.QItems;
-using Serilog;
-
-namespace qController.Communication
-{
-
-
- public class QParser
- {
- public QParser()
- {
-
- }
-
-
- public event WorkspaceLoadErrorHandler WorkspaceLoadError;
- public event WorkspaceInfoHandler WorkspaceInfoReceived;
- public event WorkspaceDisconnectHandler WorkspaceDisconnect;
- public event ChildrenUpdateHandler ChildrenUpdated;
- public event ConnectionStatusHandler ConnectionStatusChanged;
- public event SelectedCueUpdatedHandler SelectedCueUpdated;
- public event WorkspaceUpdatedHandler WorkspaceUpdated;
- public event CueInfoUpdatedHandler CueInfoUpdated;
- public event PlaybackPositionUpdatedHandler PlaybackPositionUpdated;
-
- public void ParseMessage(OscMessage msg){
- if (!msg.Address.Contains("null"))
- {
- if (msg.Address.Contains("valuesForKeys"))
- {
- ParseCueUpdateInfo(msg);
- }
- else if (msg.Address.Contains("cueLists"))
- ParseWorkspaceInfo(msg);
- else if (msg.Address.Contains("playbackPosition"))
- ParsePositionUpdateInfo(msg);
- else if (msg.Address.Contains("thump"))
- Log.Debug("QPARSER - Heartbeat Received");
- else if (msg.Address.Contains("disconnect"))
- OnWorkspaceDisconnect();
- else if (msg.Address.Contains("connect"))
- ParseConnectInfo(msg);
- else if (msg.Address.Contains("children"))
- ParseChildrenInfo(msg);
- else if (msg.Address.Contains("workspaces"))
- ParseQInfo(msg);
- else
- {
- Log.Debug("QPARSER - Unkown message type: " + msg.Address);
- foreach (var item in msg.Arguments)
- {
- Log.Debug(item.ToString());
- }
- }
- }
- }
-
- public void ParseConnectInfo(OscMessage msg)
- {
- if (msg.Arguments.Count > 0)
- {
- JToken connectStatus = OSC2JSON(msg);
- ;
- OnConnectionStatusChanged(connectStatus.ToString(), msg.Address.Split('/')[3]);
- }
- }
-
- public void ParsePositionUpdateInfo(OscMessage msg)
- {
- if(msg.Arguments.Count > 0)
- {
- OnPlaybackPositionUpdated(msg.Arguments[0].ToString());
- }
- }
-
- public void ParseCueUpdateInfo(OscMessage msg)
- {
- JToken cueUpdate = OSC2JSON(msg);
- QCue cue = JsonConvert.DeserializeObject(cueUpdate.ToString());
- OnCueInfoUpdated(cue);
- }
-
- public void ParseSelectedCueInfo(OscMessage msg){
- JToken selectedCue = OSC2JSON(msg);
- QCue cue = JsonConvert.DeserializeObject(selectedCue.ToString());
- OnSelectedCueUpdated(cue);
- }
-
- public void ParseQInfo(OscMessage msg)
- {
- JToken qInfo = OSC2JSON(msg);
- List qWorkspaceInfo = JsonConvert.DeserializeObject>(qInfo.ToString());
- OnWorkspaceInfoReceived(qWorkspaceInfo);
- }
-
- public void ParseWorkspaceInfo(OscMessage msg)
- {
- if (msg.Arguments.Count > 0)
- {
- var parts = msg.Address.Split('/');
- string id = parts[3];
-
- if (msg.Arguments[0].ToString() != "")
- {
- try
- {
- QWorkspace workspace = JsonConvert.DeserializeObject(msg.Arguments[0].ToString());
- OnWorkspaceUpdated(workspace);
- }
- catch (Exception ex)
- {
- Log.Debug($"QPARSER - Workspace Load Error: {ex.ToString()}");
- OnWorkspaceLoadError(id);
- }
- }
- else
- {
- OnWorkspaceLoadError(id);
- }
- }
- }
-
- public void ParseChildrenInfo(OscMessage msg)
- {
- if (msg.Arguments.Count > 0)
- {
- string cue_id = msg.Address.Split('/')[3];
- JToken children_obj = OSC2JSON(msg);
- List children = JsonConvert.DeserializeObject>(children_obj.ToString());
- OnChildrenUpdated(cue_id, children);
- }
- }
-
- public JToken OSC2JSON(OscMessage Msg){
- JObject json = JObject.Parse(Msg.Arguments.ToArray()[0].ToString());
- return json.GetValue("data");
- }
-
- protected virtual void OnWorkspaceUpdated(QWorkspace workspace)
- {
- WorkspaceUpdated?.Invoke(this, new WorkspaceEventArgs() { UpdatedWorkspace = workspace });
- }
- protected virtual void OnSelectedCueUpdated(QCue cue)
- {
- SelectedCueUpdated?.Invoke(this, new CueEventArgs() { Cue = cue });
- }
-
- protected virtual void OnCueInfoUpdated(QCue cue)
- {
- CueInfoUpdated?.Invoke(this, new CueEventArgs() { Cue = cue });
- }
-
- protected virtual void OnPlaybackPositionUpdated(string id)
- {
- PlaybackPositionUpdated?.Invoke(this, new PlaybackPositionArgs() { PlaybackPosition = id });
- }
- protected virtual void OnConnectionStatusChanged(string status, string workspace_id)
- {
- ConnectionStatusChanged?.Invoke(this, new ConnectEventArgs() { Status = status, WorkspaceId = workspace_id });
- }
- protected virtual void OnChildrenUpdated(string id, List cues)
- {
- ChildrenUpdated?.Invoke(this, new ChildrenEventArgs() { cue_id = id, children = cues });
- }
- protected virtual void OnWorkspaceDisconnect()
- {
- WorkspaceDisconnect?.Invoke(this, new EventArgs());
- }
- protected virtual void OnWorkspaceInfoReceived(List workspaces)
- {
- WorkspaceInfoReceived?.Invoke(this, new WorkspaceInfoArgs() { WorkspaceInfo = workspaces });
- }
- protected virtual void OnWorkspaceLoadError(string id)
- {
- WorkspaceLoadError?.Invoke(this, new WorkspaceEventArgs { UpdatedWorkspace = new QWorkspace(id) });
- }
-
- }
-}
diff --git a/qControllerCore/Classes/Communication/QUpdater.cs b/qControllerCore/Classes/Communication/QUpdater.cs
deleted file mode 100644
index 15a3183..0000000
--- a/qControllerCore/Classes/Communication/QUpdater.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-//Class used for updating local "copy" of workspace info, cue-lists, cues, etc.
-using Serilog;
-
-namespace qController.Communication
-{
- public class QUpdater
- {
- private QController qController;
-
- public QUpdater(QController controller)
- {
- qController = controller;
- qController.qClient.qParser.CueInfoUpdated += OnCueUpdateReceived;
- qController.qClient.qParser.WorkspaceUpdated += OnWorkspaceUpdated;
- qController.qClient.qParser.PlaybackPositionUpdated += OnPlaybackPositionUpdated;
- qController.qClient.qParser.WorkspaceLoadError += OnWorkspaceLoadError;
- qController.qClient.qParser.ConnectionStatusChanged += OnConnectionStatusChanged;
-
- }
-
- private void OnConnectionStatusChanged(object source, ConnectEventArgs args)
- {
- Log.Debug("QUPDATER - Connection Status Changed: " + args.Status);
-
- if (args.Status.Contains("ok"))
- {
- //new sort of connect format for QLab 5 ok:view|control|edit is connection good
- if(args.Status.Contains(":") && !args.Status.Contains("view"))
- {
- return;
- }
- qController.qClient.sendTCP("/workspace/" + qController.qWorkspace.workspace_id + "/updates", 1);
- qController.qClient.sendTCP("/workspace/" + qController.qWorkspace.workspace_id + "/cueLists");
- }
- }
-
- private void OnWorkspaceLoadError(object source, WorkspaceEventArgs args)
- {
- Log.Debug("QUPDATER - Loading cuelists has failed for some reason retrying");
- }
-
- public void OnCueUpdateReceived(object source, CueEventArgs args)
- {
- qController.qWorkspace.UpdateCue(args.Cue);
-
- if (args.Cue.type == "Group")
- {
- //Log.Debug("QUpdater/Updated cue was group cue, sending children request");
- qController.qClient.sendTCP("/workspace/"+qController.qWorkspace.workspace_id+"/cue_id/" + args.Cue.uniqueID + "/children");
- }
- }
-
- public void OnWorkspaceUpdated(object source, WorkspaceEventArgs args)
- {
- qController.qWorkspace = args.UpdatedWorkspace;
- qController.playbackPosition = null;
- qController.qWorkspace.CheckPopulated();
- if (qController.qWorkspace.IsPopulated)
- {
- Log.Debug("QUPDATER - Workspace group cues are already populated");
- App.showToast("Workspace cues have been loaded....");
- //get selected cue
- qController.qClient.UpdateSelectedCue(qController.qWorkspace.workspace_id);
- return;
- }
- }
-
- public void OnPlaybackPositionUpdated(object source, PlaybackPositionArgs args)
- {
- qController.playbackPosition = args.PlaybackPosition;
- Log.Debug("QUPDATER - Update Specific Cue Called because of Playback Position Updated");
- qController.qClient.UpdateSpecificCue(qController.qWorkspace.workspace_id,args.PlaybackPosition);
- }
- }
-}
diff --git a/qControllerCore/Classes/Communication/SharpOSC/Extensions.cs b/qControllerCore/Classes/Communication/SharpOSC/Extensions.cs
deleted file mode 100644
index 18a2ccd..0000000
--- a/qControllerCore/Classes/Communication/SharpOSC/Extensions.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-namespace SharpOSC
-{
- internal static class Extensions
- {
- public static int FirstIndexAfter(this IEnumerable items, int start, Func predicate)
- {
- if (items == null) throw new ArgumentNullException("items");
- if (predicate == null) throw new ArgumentNullException("predicate");
- if (start >= items.Count()) throw new ArgumentOutOfRangeException("start");
-
- int retVal = 0;
- foreach (var item in items)
- {
- if (retVal >= start && predicate(item)) return retVal;
- retVal++;
- }
- return -1;
- }
-
- public static List> Split(this IEnumerable data, Func predicate)
- {
- var output = new List>();
- var curr = new List();
- output.Add(curr);
- foreach (var x in data)
- {
- if (predicate(x))
- {
- curr = new List();
- output.Add(curr);
- }
- else
- curr.Add(x);
- }
-
- return output;
- }
-
-
-
- public static T[] SubArray(this T[] data, int index, int length)
- {
- T[] result = new T[length];
- Array.Copy(data, index, result, 0, length);
- return result;
- }
- }
-}
diff --git a/qControllerCore/Classes/Communication/SharpOSC/Midi.cs b/qControllerCore/Classes/Communication/SharpOSC/Midi.cs
deleted file mode 100644
index d494112..0000000
--- a/qControllerCore/Classes/Communication/SharpOSC/Midi.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SharpOSC
-{
- public struct Midi
- {
- public byte Port;
- public byte Status;
- public byte Data1;
- public byte Data2;
-
- public Midi(byte port, byte status, byte data1, byte data2)
- {
- this.Port = port;
- this.Status = status;
- this.Data1 = data1;
- this.Data2 = data2;
- }
-
- public override bool Equals(System.Object obj)
- {
- if (obj.GetType() == typeof(Midi))
- {
- if (this.Port == ((Midi)obj).Port && this.Status == ((Midi)obj).Status && this.Data1 == ((Midi)obj).Data1 && this.Data2 == ((Midi)obj).Data2)
- return true;
- else
- return false;
- }
- else if (obj.GetType() == typeof(byte[]))
- {
- if (this.Port == ((byte[])obj)[0] && this.Status == ((byte[])obj)[1] && this.Data1 == ((byte[])obj)[2] && this.Data2 == ((byte[])obj)[3])
- return true;
- else
- return false;
- }
- else
- return false;
- }
-
- public static bool operator ==(Midi a, Midi b)
- {
- if (a.Equals(b))
- return true;
- else
- return false;
- }
-
- public static bool operator !=(Midi a, Midi b)
- {
- if (!a.Equals(b))
- return true;
- else
- return false;
- }
-
- public override int GetHashCode()
- {
- return (Port << 24) + (Status << 16) + (Data1 << 8) + (Data2);
- }
- }
-}
diff --git a/qControllerCore/Classes/Communication/SharpOSC/OscBundle.cs b/qControllerCore/Classes/Communication/SharpOSC/OscBundle.cs
deleted file mode 100644
index 1f1fe40..0000000
--- a/qControllerCore/Classes/Communication/SharpOSC/OscBundle.cs
+++ /dev/null
@@ -1,68 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SharpOSC
-{
- public class OscBundle : OscPacket
- {
- Timetag _timetag;
-
- public UInt64 Timetag
- {
- get { return _timetag.Tag; }
- set { _timetag.Tag = value; }
- }
-
- public DateTime Timestamp
- {
- get { return _timetag.Timestamp; }
- set { _timetag.Timestamp = value; }
- }
-
- public List Messages;
-
- public OscBundle(UInt64 timetag, params OscMessage[] args)
- {
- _timetag = new Timetag(timetag);
- Messages = new List();
- Messages.AddRange(args);
- }
-
- public override byte[] GetBytes()
- {
- string bundle = "#bundle";
- int bundleTagLen = Utils.AlignedStringLength(bundle);
- byte[] tag = setULong(_timetag.Tag);
-
- List outMessages = new List();
- foreach (OscMessage msg in Messages)
- {
- outMessages.Add(msg.GetBytes());
- }
-
- int len = bundleTagLen + tag.Length + outMessages.Sum(x => x.Length + 4);
-
- int i = 0;
- byte[] output = new byte[len];
- Encoding.UTF8.GetBytes(bundle).CopyTo(output, i);
- i += bundleTagLen;
- tag.CopyTo(output, i);
- i += tag.Length;
-
- foreach (byte[] msg in outMessages)
- {
- var size = setInt(msg.Length);
- size.CopyTo(output, i);
- i += size.Length;
-
- msg.CopyTo(output, i);
- i += msg.Length; // msg size is always a multiple of 4
- }
-
- return output;
- }
-
- }
-}
diff --git a/qControllerCore/Classes/Communication/SharpOSC/OscMessage.cs b/qControllerCore/Classes/Communication/SharpOSC/OscMessage.cs
deleted file mode 100644
index f34eced..0000000
--- a/qControllerCore/Classes/Communication/SharpOSC/OscMessage.cs
+++ /dev/null
@@ -1,160 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SharpOSC
-{
- public class OscMessage : OscPacket
- {
- public string Address;
- public List