├── .gitattributes ├── .gitignore ├── .gitignore.txt ├── Colours.xml ├── Depence2Inject ├── Class1.cs ├── Depence2Inject.csproj └── Properties │ └── AssemblyInfo.cs ├── Functions.xml.txt ├── HighPrecisionTimer ├── HighPrecisionTimer.csproj ├── MultimediaTimer.cs └── Properties │ └── AssemblyInfo.cs ├── JsonDataProvider ├── FodyWeavers.xml ├── FodyWeavers.xsd ├── JsonDataProvider.cs ├── JsonDataProvider.csproj ├── OnWidgetUI.xaml ├── OnWidgetUI.xaml.cs ├── Properties │ └── AssemblyInfo.cs ├── app.config └── packages.config ├── LTCSharp.dll ├── NDILibDotNet2 ├── AudioFrame.cs ├── Colours.xml ├── Finder.cs ├── NDILibDotNet2.csproj ├── Pinvoke │ ├── Processing.NDI.Find.Interop.cs │ ├── Processing.NDI.FrameSync.Interop.cs │ ├── Processing.NDI.Lib.Interop.cs │ ├── Processing.NDI.Recv.Interop.cs │ ├── Processing.NDI.Recv.ex.Interop.cs │ ├── Processing.NDI.Routing.Interop.cs │ ├── Processing.NDI.Send.Interop.cs │ ├── Processing.NDI.compat.Interop.cs │ ├── Processing.NDI.deprecated.Interop.cs │ ├── Processing.NDI.structs.Interop.cs │ ├── Processing.NDI.structs_deprecated.Interop.cs │ └── Processing.NDI.utilities.Interop.cs ├── Properties │ └── AssemblyInfo.cs ├── Router.cs ├── Sender.cs ├── Source.cs ├── Utilities.cs ├── VideoFrame.cs ├── WPF.ReceiveView.cs ├── Wpf.SendContainer.cs ├── app.config └── packages.config ├── NanoXML ├── NanoXML.csproj ├── Program.cs ├── Properties │ └── AssemblyInfo.cs └── Shared │ └── NanoXMLParser.cs ├── Popcron.Sheets.dll ├── Popcron.Sheets ├── BandedRange.cs ├── BandingProperties.cs ├── BasicChartAxis.cs ├── BasicChartDomain.cs ├── BasicChartSeries.cs ├── BasicChartSpec.cs ├── BasicFilter.cs ├── BooleanCondition.cs ├── BooleanRule.cs ├── Border.cs ├── Borders.cs ├── BubbleChartSpec.cs ├── CandlestickChartSpec.cs ├── CandlestickData.cs ├── CandlestickDomain.cs ├── CandlestickSeries.cs ├── CellData.cs ├── CellFormat.cs ├── ChartData.cs ├── ChartSourceRange.cs ├── ChartSpec.cs ├── Color.cs ├── ConditionValue.cs ├── ConditionalFormatRule.cs ├── DataFilter.cs ├── DataValidationRule.cs ├── DeveloperMetadata.cs ├── DeveloperMetadataLocation.cs ├── DeveloperMetadataLookup.cs ├── DimensionGroup.cs ├── DimensionProperties.cs ├── DimensionRange.cs ├── Editors.cs ├── EmbeddedChart.cs ├── EmbeddedObjectPosition.cs ├── ErrorValue.cs ├── ExtendedValue.cs ├── FilterCriteria.cs ├── FilterView.cs ├── GradientRule.cs ├── GridCoordinate.cs ├── GridData.cs ├── GridProperties.cs ├── GridRange.cs ├── HighLevel │ ├── Cell.cs │ ├── Sheet.cs │ ├── SheetsClient.cs │ ├── SheetsSerializer.cs │ └── Spreadsheet.cs ├── HistogramChartSpec.cs ├── HistogramSeries.cs ├── InterpolationPoint.cs ├── IterativeCalculationSettings.cs ├── LineStyle.cs ├── NamedRange.cs ├── NumberFormat.cs ├── OAuth │ ├── Authorization.cs │ ├── AuthorizationType.cs │ ├── OAuth.cs │ └── OAuthToken.cs ├── OrgChartSpec.cs ├── OverlayPosition.cs ├── Padding.cs ├── PieChartSpec.cs ├── PivotFilterCriteria.cs ├── PivotTable.cs ├── PivotValue.cs ├── Popcron.Sheets.csproj ├── Properties │ └── AssemblyInfo.cs ├── ProtectedRange.cs ├── Requests │ ├── AddBandingRequest.cs │ ├── AddChartRequest.cs │ ├── AddConditionalFormatRuleRequest.cs │ ├── AddDimensionGroupRequest.cs │ ├── AddFilterViewRequest.cs │ ├── AddNamedRangeRequest.cs │ ├── AddProtectedRangeRequest.cs │ ├── AddSheetRequest.cs │ ├── AppendCellsRequest.cs │ ├── AppendDimensionRequest.cs │ ├── AutoFillRequest.cs │ ├── AutoResizeDimensionsRequest.cs │ ├── ClearBasicFilterRequest.cs │ ├── CopyPasteRequest.cs │ ├── CreateDeveloperMetadataRequest.cs │ ├── CutPasteRequest.cs │ ├── DeleteBandingRequest.cs │ ├── DeleteConditionalFormatRuleRequest.cs │ ├── DeleteDeveloperMetadataRequest.cs │ ├── DeleteDimensionGroupRequest.cs │ ├── DeleteDimensionRequest.cs │ ├── DeleteEmbeddedObjectRequest.cs │ ├── DeleteFilterViewRequest.cs │ ├── DeleteNamedRangeRequest.cs │ ├── DeleteProtectedRangeRequest.cs │ ├── DeleteRangeRequest.cs │ ├── DeleteSheetRequest.cs │ ├── DuplicateFilterViewRequest.cs │ ├── DuplicateSheetRequest.cs │ ├── FindReplaceRequest.cs │ ├── InsertDimensionRequest.cs │ ├── InsertRangeRequest.cs │ ├── MergeCellsRequest.cs │ ├── MoveDimensionRequest.cs │ ├── PasteDataRequest.cs │ ├── RandomizeRangeRequest.cs │ ├── RepeatCellRequest.cs │ ├── Request.cs │ ├── RequestBatchUpdate.cs │ ├── SetBasicFilterRequest.cs │ ├── SetDataValidationRequest.cs │ ├── SortRangeRequest.cs │ ├── SourceAndDestination.cs │ ├── TextToColumnsRequest.cs │ ├── UnmergeCellsRequest.cs │ ├── UpdateBandingRequest.cs │ ├── UpdateBordersRequest.cs │ ├── UpdateCellsRequest.cs │ ├── UpdateChartSpecRequest.cs │ ├── UpdateConditionalFormatRuleRequest.cs │ ├── UpdateDeveloperMetadataRequest.cs │ ├── UpdateDimensionGroupRequest.cs │ ├── UpdateDimensionPropertiesRequest.cs │ ├── UpdateEmbeddedObjectPositionRequest.cs │ ├── UpdateFilterViewRequest.cs │ ├── UpdateNamedRangeRequest.cs │ ├── UpdateProtectedRangeRequest.cs │ ├── UpdateSheetPropertiesRequest.cs │ └── UpdateSpreadsheetPropertiesRequest.cs ├── Responses │ ├── AddBandingResponse.cs │ ├── AddChartResponse.cs │ ├── AddDimensionGroupResponse.cs │ ├── AddFilterViewResponse.cs │ ├── AddNamedRangeResponse.cs │ ├── AddProtectedRangeResponse.cs │ ├── AddSheetResponse.cs │ ├── CreateDeveloperMetadataResponse.cs │ ├── DeleteConditionalFormatRuleResponse.cs │ ├── DeleteDeveloperMetadataResponse.cs │ ├── DeleteDimensionGroupResponse.cs │ ├── DuplicateFilterViewResponse.cs │ ├── DuplicateSheetResponse.cs │ ├── FindReplaceResponse.cs │ ├── RequestBatchUpdateResponse.cs │ ├── Response.cs │ ├── UpdateConditionalFormatRuleResponse.cs │ ├── UpdateDeveloperMetadataResponse.cs │ └── UpdateEmbeddedObjectPositionResponse.cs ├── RowData.cs ├── SheetProperties.cs ├── SheetRaw.cs ├── SortSpec.cs ├── SpreadsheetProperties.cs ├── SpreadsheetRaw.cs ├── TextFormat.cs ├── TextFormatRun.cs ├── TextPosition.cs ├── TextRotation.cs ├── TreemapChartColorScale.cs ├── TreemapChartSpec.cs ├── WaterfallChartColumnStyle.cs ├── WaterfallChartCustomSubtotal.cs ├── WaterfallChartDomain.cs ├── WaterfallChartSpec.cs ├── WaterfallChartSpecies.cs └── packages.config ├── README.md ├── UTCGoogleSheetsDataProvider ├── FodyWeavers.xml ├── FodyWeavers.xsd ├── GoogleSheetsDataProvider.cs ├── GoogleSheetsProvider.csproj ├── JsonSheetsSerializer.cs ├── OnWidgetUI.xaml ├── OnWidgetUI.xaml.cs ├── Properties │ └── AssemblyInfo.cs ├── app.config └── packages.config ├── UTCXLSXDataProvider ├── ExcelDataProvider.cs ├── ExcelDataProvider.csproj ├── FodyWeavers.xml ├── FodyWeavers.xsd ├── OnWidgetUI.xaml ├── OnWidgetUI.xaml.cs ├── Properties │ └── AssemblyInfo.cs ├── app.config └── packages.config ├── vMixAPI ├── BusA.cs ├── BusB.cs ├── BusC.cs ├── BusD.cs ├── BusE.cs ├── BusF.cs ├── BusG.cs ├── Input.cs ├── InputBase.cs ├── InputColor.cs ├── InputImage.cs ├── InputOverlay.cs ├── InputPosition.cs ├── InputText.cs ├── InputType.cs ├── ListItem.cs ├── Master.cs ├── Mix.cs ├── Overlay.cs ├── Properties │ └── AssemblyInfo.cs ├── Recording.cs ├── SampleInput.cs ├── State.cs ├── Transition.cs ├── TransitionEffect.cs ├── packages.config ├── vMixAPI.csproj └── vMixWebClient.cs ├── vMixController ├── App.config ├── App.xaml ├── App.xaml.cs ├── ClassDiagram.cd ├── Classes │ ├── BindableAvalonEditor.cs │ ├── BindingProxy.cs │ ├── ColorNamePair.cs │ ├── DummyStringProperty.cs │ ├── Hotkey.cs │ ├── MainWindowSettings.cs │ ├── MenuStyleSelector.cs │ ├── Messages.cs │ ├── NativeFunctions.cs │ ├── One.cs │ ├── Pair.cs │ ├── Quadriple.cs │ ├── SharedData.cs │ ├── Singleton.cs │ ├── Triple.cs │ ├── Utils.cs │ ├── XmlDocumentMessenger.cs │ └── vMixFunctionReference.cs ├── Colours.xml ├── ControllerHighlight.xml ├── Controls │ ├── ComboBox.cs │ ├── ReleaseButton.cs │ ├── TBarSlider.cs │ ├── TwoColumnGrid.cs │ ├── TypeTemplateSelector.cs │ ├── VolumeSlider.cs │ ├── vMixControlContainer.xaml │ ├── vMixControlContainer.xaml.cs │ ├── vMixControlContainerDummy.cs │ ├── vMixControlMoveThumb.cs │ ├── vMixControlResizeThumb.cs │ ├── vMixPathSelector.xaml │ └── vMixPathSelector.xaml.cs ├── Converters │ ├── AudiobusToBoolConverter.cs │ ├── AudiobusToVisibilityConverter.cs │ ├── BitToVisibilityConverter.cs │ ├── BoolToOrientationConverter.cs │ ├── BoolToSolidColorBrushConverter.cs │ ├── ColorToBlackOrWhiteConverter.cs │ ├── ColorToDarkerSolidBrushConverter.cs │ ├── ColorToSolidBrushConverter.cs │ ├── ColorsListToColorConverter.cs │ ├── ControlIntToParameterConverter.cs │ ├── DateTimeKeepMillisecondsConverter.cs │ ├── DateTimeToDayOfWeekConverter.cs │ ├── DoubleToThicknessConverter.cs │ ├── EnumToStringConverter.cs │ ├── EscapeAt.cs │ ├── FirstValueConverter.cs │ ├── ImagePartConverter.cs │ ├── ImagePathToVisibilityConverter.cs │ ├── Int32ToVisibilityConverter.cs │ ├── IntegersToVisibilityConverter.cs │ ├── ListItemTagConverter.cs │ ├── ListItemTagToThicknessConverter.cs │ ├── ListItemTagToVisibilityConverter.cs │ ├── LogarithmicConverter.cs │ ├── ObjectToIndexConverter.cs │ ├── ParametersToStringConverter.cs │ ├── StatusToColorConverter.cs │ ├── StringListToStringConverter.cs │ ├── StringToCollectionConverter.cs │ ├── StringToCursorConverter.cs │ ├── StringsToStringConverter.cs │ ├── TextFieldAndIntToControlIntParameterConverter.cs │ ├── ValueNullToStringConverter.cs │ └── VariableListToInputListConverter.cs ├── Examples │ ├── Buttons.vmc │ ├── Buttons2.vmc │ ├── InputSelector.vmc │ ├── InputSelector.vmix │ ├── ProxySample.vmc │ ├── ProxySample.vmix │ ├── Scoreboard.vmc │ ├── Scoreboard.vmix │ ├── TimerEvents.vmc │ ├── TimerEvents.vmix │ ├── TimerEvents.zip │ ├── UTC Buttons │ │ ├── WhiteBlue.png │ │ ├── WhiteGreen.png │ │ ├── WhiteRed.png │ │ └── WhiteYellow.png │ └── button.png ├── Extensions │ ├── ControlBox.cs │ ├── FocusExtension.cs │ ├── HideCloseButtonOnWindow.cs │ ├── IgnoreMouseWheelBehavior.cs │ ├── LocalizationManager.cs │ ├── Localize.cs │ ├── ScrollViewerHelper.cs │ └── ThumbColorizer.cs ├── FodyWeavers.xml ├── FodyWeavers.xsd ├── Functions.xml ├── Functions.zip ├── Grid.png ├── Help.Designer.cs ├── Help.resx ├── Images │ ├── Function.png │ └── Input.png ├── KeyLearnWindow.xaml ├── KeyLearnWindow.xaml.cs ├── Locales │ └── _ru-RU.xml ├── MainWindow.xaml ├── MainWindow.xaml.cs ├── MidiLearnWindow.xaml ├── MidiLearnWindow.xaml.cs ├── NLog.config ├── NLog.xsd ├── Processing.NDI.Lib.x64.dll ├── Processing.NDI.Lib.x86.dll ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── PropertiesControls │ ├── BoolControl.xaml │ ├── BoolControl.xaml.cs │ ├── ComboBoxControl.xaml │ ├── ComboBoxControl.xaml.cs │ ├── DataSourceControl.xaml │ ├── DataSourceControl.xaml.cs │ ├── FilePathControl.xaml │ ├── FilePathControl.xaml.cs │ ├── GridControl.xaml │ ├── GridControl.xaml.cs │ ├── InputSelectorControl.xaml │ ├── InputSelectorControl.xaml.cs │ ├── IntControl.xaml │ ├── IntControl.xaml.cs │ ├── LabelControl.xaml │ ├── LabelControl.xaml.cs │ ├── ListControl.xaml │ ├── ListControl.xaml.cs │ ├── MidiMappingControl.xaml │ ├── MidiMappingControl.xaml.cs │ ├── SchedulerControl.xaml │ ├── SchedulerControl.xaml.cs │ ├── ScriptControl.xaml │ ├── ScriptControl.xaml.cs │ ├── StringControl.xaml │ ├── StringControl.xaml.cs │ ├── TitleMappingControl.xaml │ └── TitleMappingControl.xaml.cs ├── RegisterFilters.cmd ├── Skins │ └── ControlTemplates.xaml ├── TextInputWindow.xaml ├── TextInputWindow.xaml.cs ├── Usage.txt ├── ViewModel │ ├── GlobalVariablesViewModel.cs │ ├── MainViewModel.cs │ ├── ViewModelLocator.cs │ └── vMixWidgetSettingsViewModel.cs ├── Widgets │ ├── IvMixAutoUpdateWidget.cs │ ├── vMixControl.cs │ ├── vMixControlButton.cs │ ├── vMixControlButtonCommand.cs │ ├── vMixControlClock.cs │ ├── vMixControlContainer.cs │ ├── vMixControlExternalData.cs │ ├── vMixControlLabel.cs │ ├── vMixControlList.cs │ ├── vMixControlMidiInterface.cs │ ├── vMixControlMultiState.cs │ ├── vMixControlPlaylist.cs │ ├── vMixControlRegion.cs │ ├── vMixControlScore.cs │ ├── vMixControlSlider.cs │ ├── vMixControlTBar.cs │ ├── vMixControlTextField.cs │ ├── vMixControlTimer.cs │ └── vMixControlVolume.cs ├── packages.config ├── settings-gears (1).ico ├── settings-gears.ico ├── vMixControlSettingsView.xaml ├── vMixControlSettingsView.xaml.cs ├── vMixControlUtils.cs └── vMixController.csproj ├── vMixControllerDataProvider ├── IvMixDataProvider.cs ├── IvMixDataProviderTextInput.cs ├── Properties │ └── AssemblyInfo.cs ├── packages.config └── vMixControllerDataProvider.csproj ├── vMixControllerMultiState.sln ├── vMixControllerSkin ├── AsyncHelpers.cs ├── Colours.xml ├── Converters │ ├── ObjectToTypeString.cs │ └── StringToGridTable.cs ├── DraggableThumb.cs ├── Extension.cs ├── FontAwesome.ttf ├── Linearicons-Free.ttf ├── MainSkin.xaml ├── Material Design Icons.ttf ├── Properties │ └── AssemblyInfo.cs ├── PropertiesListView.xaml ├── PropertiesListView.xaml.cs ├── RowsViewer.xaml ├── RowsViewer.xaml.cs ├── Segoe UI Mono.ttf ├── btn_donate_SM.gif ├── packages.config └── vMixControllerSkin.csproj ├── vMixGenericXmlDataProvider ├── App.config ├── CacheStats.cs ├── OnWidgetUI.xaml ├── OnWidgetUI.xaml.cs ├── Properties │ └── AssemblyInfo.cs ├── PropertiesWindow.xaml ├── PropertiesWindow.xaml.cs ├── XmlDataProvider.cs ├── XmlDataProvider.csproj └── packages.config ├── vMixUTCNDIMonitorDataProvider ├── Extensions │ └── SizeObserver.cs ├── FodyWeavers.xml ├── FodyWeavers.xsd ├── NDIMonitorDataProvider.cs ├── NdiMonitorDataProvider.csproj ├── OnWidgetUI.xaml ├── OnWidgetUI.xaml.cs ├── Properties │ └── AssemblyInfo.cs ├── StringToNDISourceConverter.cs ├── app.config └── packages.config └── vMixWeatherExternalDataProvider ├── OnWidgetUI.xaml ├── OnWidgetUI.xaml.cs ├── Properties └── AssemblyInfo.cs ├── PropertiesWindow.xaml ├── PropertiesWindow.xaml.cs ├── WeatherExternalDataProvider.csproj ├── WeatherProvider.cs └── packages.config /Colours.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 255 6 | 255 7 | 255 8 | 255 9 | 1 10 | 1 11 | 1 12 | 1 13 | 14 | 15 | 255 16 | 255 17 | 255 18 | 255 19 | 1 20 | 1 21 | 1 22 | 1 23 | 24 | White 25 | 26 | -------------------------------------------------------------------------------- /Depence2Inject/Class1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Depence2Inject 8 | { 9 | public class Class1 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Depence2Inject/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Общие сведения об этой сборке предоставляются следующим набором 6 | // набора атрибутов. Измените значения этих атрибутов для изменения сведений, 7 | // связанные со сборкой. 8 | [assembly: AssemblyTitle("Depence2Inject")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Depence2Inject")] 13 | [assembly: AssemblyCopyright("Copyright © 2021")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми 18 | // для компонентов COM. Если необходимо обратиться к типу в этой сборке через 19 | // COM, задайте атрибуту ComVisible значение TRUE для этого типа. 20 | [assembly: ComVisible(false)] 21 | 22 | // Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM 23 | [assembly: Guid("21d2e1a7-8685-487a-bbe4-590397cd7a27")] 24 | 25 | // Сведения о версии сборки состоят из указанных ниже четырех значений: 26 | // 27 | // Основной номер версии 28 | // Дополнительный номер версии 29 | // Номер сборки 30 | // Редакция 31 | // 32 | // Можно задать все значения или принять номера сборки и редакции по умолчанию 33 | // используя "*", как показано ниже: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /HighPrecisionTimer/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("HighPrecisionTimer")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("HighPrecisionTimer")] 13 | [assembly: AssemblyCopyright("Copyright © 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("f67353d6-1e54-4b18-9bf2-53dd27867983")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /JsonDataProvider/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /JsonDataProvider/OnWidgetUI.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Navigation; 14 | using System.Windows.Shapes; 15 | using vMixControllerSkin; 16 | 17 | namespace JsonDataProviderNs 18 | { 19 | /// 20 | /// Логика взаимодействия для OnWidgetUI.xaml 21 | /// 22 | public partial class OnWidgetUI : UserControl 23 | { 24 | public OnWidgetUI() 25 | { 26 | //InitializeComponent(); 27 | this.LoadViewFromUri("/JsonDataProvider;component/OnWidgetUI.xaml"); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /JsonDataProvider/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Общие сведения об этой сборке предоставляются следующим набором 6 | // набора атрибутов. Измените значения этих атрибутов для изменения сведений, 7 | // связанные со сборкой. 8 | [assembly: AssemblyTitle("JsonDataProvider")] 9 | [assembly: AssemblyDescription("JSON Data")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("JsonDataProvider")] 13 | [assembly: AssemblyCopyright("Copyright © 2020")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми 18 | // для компонентов COM. Если необходимо обратиться к типу в этой сборке через 19 | // COM, задайте атрибуту ComVisible значение TRUE для этого типа. 20 | [assembly: ComVisible(false)] 21 | 22 | // Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM 23 | [assembly: Guid("09761118-8d8d-462c-a841-6d6b84986eb1")] 24 | 25 | // Сведения о версии сборки состоят из указанных ниже четырех значений: 26 | // 27 | // Основной номер версии 28 | // Дополнительный номер версии 29 | // Номер сборки 30 | // Редакция 31 | // 32 | // Можно задать все значения или принять номера сборки и редакции по умолчанию 33 | // используя "*", как показано ниже: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /JsonDataProvider/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /LTCSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/LTCSharp.dll -------------------------------------------------------------------------------- /NDILibDotNet2/Colours.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 255 6 | 255 7 | 255 8 | 255 9 | 1 10 | 1 11 | 1 12 | 1 13 | 14 | 15 | 255 16 | 255 17 | 255 18 | 255 19 | 1 20 | 1 21 | 1 22 | 1 23 | 24 | White 25 | 26 | -------------------------------------------------------------------------------- /NDILibDotNet2/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("NDILibDotNet2")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("NDILibDotNet2")] 13 | [assembly: AssemblyCopyright("Copyright (C) 2023 Vizrt NDI AB. All rights reserved.")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("01070d12-dd63-49cf-9093-f4d7eb17dcfa")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /NDILibDotNet2/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /NDILibDotNet2/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /NanoXML/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("NanoXML")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("NanoXML")] 13 | [assembly: AssemblyCopyright("Copyright © 2013")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("1caac844-89e2-402b-9325-21d024eef56b")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Popcron.Sheets.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/Popcron.Sheets.dll -------------------------------------------------------------------------------- /Popcron.Sheets/BandedRange.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class BandedRange 7 | { 8 | public int bandedRangeId; 9 | public GridRange range; 10 | public BandingProperties rowProperties; 11 | public BandingProperties columnProperties; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/BandingProperties.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class BandingProperties 7 | { 8 | public Color headerColor; 9 | public Color firstBandColor; 10 | public Color secondBandColor; 11 | public Color footerColor; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/BasicChartAxis.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class BasicChartAxis 7 | { 8 | public string position; 9 | public string title; 10 | public TextFormat format; 11 | public TextPosition titleTextPosition; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/BasicChartDomain.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class BasicChartDomain 7 | { 8 | public ChartData domain; 9 | public bool reversed; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/BasicChartSeries.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class BasicChartSeries 7 | { 8 | public ChartData series; 9 | public string targetAxis; 10 | public string type; 11 | public LineStyle lineStyle; 12 | public Color color; 13 | } 14 | } -------------------------------------------------------------------------------- /Popcron.Sheets/BasicChartSpec.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class BasicChartSpec 7 | { 8 | public string chartType; 9 | public string legendPosition; 10 | public BasicChartAxis[] axis; 11 | public BasicChartDomain[] domains; 12 | public BasicChartSeries[] series; 13 | public int headerCount; 14 | public bool threeDimensional; 15 | public bool interpolateNulls; 16 | public string stackedType; 17 | public bool lineSmoothing; 18 | public string compareMode; 19 | } 20 | } -------------------------------------------------------------------------------- /Popcron.Sheets/BasicFilter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Popcron.Sheets 5 | { 6 | [Serializable] 7 | public class BasicFilter 8 | { 9 | public GridRange range; 10 | public SortSpec[] sortSpecs; 11 | public Dictionary criteria; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/BooleanCondition.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class BooleanCondition 7 | { 8 | public string type; 9 | public ConditionValue[] values; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/BooleanRule.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class BooleanRule 7 | { 8 | public BooleanCondition condition; 9 | public CellFormat format; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Border.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class Border 7 | { 8 | public string style; 9 | public Color color; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Borders.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class Borders 7 | { 8 | public Border top; 9 | public Border bottom; 10 | public Border left; 11 | public Border right; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/BubbleChartSpec.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class BubbleChartSpec 7 | { 8 | public string legendPosition; 9 | public ChartData bubbleLabels; 10 | public ChartData domain; 11 | public ChartData series; 12 | public ChartData groupIds; 13 | public ChartData bubbleSizes; 14 | public float bubbleOpacity; 15 | public Color bubbleBorderColor; 16 | public uint bubbleMaxRadiusSize; 17 | public uint bubbleMinRadiusSize; 18 | public TextFormat bubbleTextStyle; 19 | } 20 | } -------------------------------------------------------------------------------- /Popcron.Sheets/CandlestickChartSpec.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class CandlestickChartSpec 7 | { 8 | public CandlestickDomain domain; 9 | public CandlestickData[] data; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/CandlestickData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class CandlestickData 7 | { 8 | public CandlestickSeries lowSeries; 9 | public CandlestickSeries openSeries; 10 | public CandlestickSeries closeSeries; 11 | public CandlestickSeries highSeries; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/CandlestickDomain.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class CandlestickDomain 7 | { 8 | public ChartData data; 9 | public bool reversed; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/CandlestickSeries.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class CandlestickSeries 7 | { 8 | public ChartData data; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/CellData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class CellData 7 | { 8 | public ExtendedValue userEnteredValue; 9 | public ExtendedValue effectiveValue; 10 | public string formattedValue; 11 | public CellFormat userEnteredFormat; 12 | public CellFormat effectiveFormat; 13 | public string hyperlink; 14 | public string note; 15 | public TextFormatRun[] textFormatRuns; 16 | public DataValidationRule dataValidation; 17 | public PivotTable pivotTable; 18 | } 19 | } -------------------------------------------------------------------------------- /Popcron.Sheets/CellFormat.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class CellFormat 7 | { 8 | public NumberFormat numberFormat; 9 | public Color backgroundColor; 10 | public Borders borders; 11 | public Padding padding; 12 | public string horizontalAlignment; 13 | public string verticalAlignment; 14 | public string wrapStrategy; 15 | public string textDirection; 16 | public TextFormat textFormat; 17 | public string hyperlinkDisplayType; 18 | public TextRotation textRotation; 19 | } 20 | } -------------------------------------------------------------------------------- /Popcron.Sheets/ChartData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class ChartData 7 | { 8 | public ChartSourceRange sourceRange; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/ChartSourceRange.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class ChartSourceRange 7 | { 8 | public GridRange[] sources; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/ChartSpec.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class ChartSpec 7 | { 8 | public string title; 9 | public string altText; 10 | public TextFormat titleTextFormat; 11 | public TextPosition titleTextPosition; 12 | public string subtitle; 13 | public TextFormat subtitleTextFormat; 14 | public TextPosition subtitlePosition; 15 | public string fontName; 16 | public bool maximized; 17 | public Color backgroundColor; 18 | public string hiddenDimensionStrategy; 19 | 20 | public BasicChartSpec basicChart; 21 | public PieChartSpec pieChart; 22 | public BubbleChartSpec bubbleChart; 23 | public CandlestickChartSpec candlestickChart; 24 | public OrgChartSpec orgChart; 25 | public HistogramChartSpec histogramChart; 26 | public WaterfallChartSpec waterfallChart; 27 | public TreemapChartSpec treemapChart; 28 | } 29 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Color.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class Color 7 | { 8 | public float red; 9 | public float green; 10 | public float blue; 11 | public float alpha; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/ConditionValue.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class ConditionValue 7 | { 8 | public string relativeDate; 9 | public string userEnteredValue; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/ConditionalFormatRule.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class ConditionalFormatRule 7 | { 8 | public GridRange[] ranges; 9 | public BooleanRule booleanRule; 10 | public GradientRule gradientRule; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/DataFilter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DataFilter 7 | { 8 | public DeveloperMetadataLookup developerMetadataLookup; 9 | public string a1Range; 10 | public GridRange gridRange; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/DataValidationRule.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DataValidationRule 7 | { 8 | public BooleanCondition condition; 9 | public string inputMessage; 10 | public bool strict; 11 | public bool showCustomUi; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/DeveloperMetadata.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeveloperMetadata 7 | { 8 | public int metadataId; 9 | public string metadataKey; 10 | public string metadataValue; 11 | public string location; 12 | public string visibility; 13 | } 14 | } -------------------------------------------------------------------------------- /Popcron.Sheets/DeveloperMetadataLocation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeveloperMetadataLocation 7 | { 8 | public string locationType; 9 | public bool spreadsheet; 10 | public int sheetId; 11 | public DimensionRange dimensionRange; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/DeveloperMetadataLookup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeveloperMetadataLookup 7 | { 8 | public string locationType; 9 | public DeveloperMetadataLocation metadataLocation; 10 | public string locationMatchingStrategy; 11 | public int metadataId; 12 | public string metadataKey; 13 | public string metadataValue; 14 | public string visibility; 15 | } 16 | } -------------------------------------------------------------------------------- /Popcron.Sheets/DimensionGroup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DimensionGroup 7 | { 8 | public DimensionRange range; 9 | public int depth; 10 | public bool collapsed; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/DimensionProperties.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DimensionProperties 7 | { 8 | public bool hiddenByFilter; 9 | public bool hiddenByUser; 10 | public int pixelSize; 11 | public DeveloperMetadata[] developerMetadata; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/DimensionRange.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DimensionRange 7 | { 8 | public int sheetId; 9 | public string dimension; 10 | public int startIndex; 11 | public int endIndex; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Editors.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class Editors 7 | { 8 | public string[] users; 9 | public string[] groups; 10 | public bool domainUsersCanEdit; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/EmbeddedChart.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class EmbeddedChart 7 | { 8 | public int chardId; 9 | public ChartSpec spec; 10 | public EmbeddedObjectPosition position; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/EmbeddedObjectPosition.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class EmbeddedObjectPosition 7 | { 8 | public int sheetId; 9 | public OverlayPosition overlayPosition; 10 | public bool newSheet; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/ErrorValue.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class ErrorValue 7 | { 8 | public string type; 9 | public string message; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/ExtendedValue.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class ExtendedValue 7 | { 8 | public double numberValue; 9 | public string stringValue; 10 | public bool boolValue; 11 | public string formulaValue; 12 | public ErrorValue errorValue; 13 | } 14 | } -------------------------------------------------------------------------------- /Popcron.Sheets/FilterCriteria.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class FilterCriteria 7 | { 8 | public string[] hiddenValues; 9 | public BooleanCondition condition; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/FilterView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Popcron.Sheets 5 | { 6 | [Serializable] 7 | public class FilterView 8 | { 9 | public int filterViewId; 10 | public string title; 11 | public GridRange range; 12 | public string namedRangeId; 13 | public SortSpec[] sortSpecs; 14 | public Dictionary criteria; 15 | } 16 | } -------------------------------------------------------------------------------- /Popcron.Sheets/GradientRule.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class GradientRule 7 | { 8 | public InterpolationPoint minPoint; 9 | public InterpolationPoint midPoint; 10 | public InterpolationPoint maxPoint; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/GridCoordinate.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class GridCoordinate 7 | { 8 | public int sheetId; 9 | public int rowIndex; 10 | public int columnIndex; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/GridData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class GridData 7 | { 8 | public int startRow; 9 | public int startColumn; 10 | public RowData[] rowData; 11 | public DimensionProperties[] rowMetadata; 12 | public DimensionProperties[] columnMedata; 13 | } 14 | } -------------------------------------------------------------------------------- /Popcron.Sheets/GridProperties.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class GridProperties 7 | { 8 | public int rowCount; 9 | public int columnCount; 10 | public int frozenRowCount; 11 | public int frozenColumnCount; 12 | public bool hideGridlines; 13 | public bool rowGroupControlAfter; 14 | public bool columnGroupControlAfter; 15 | } 16 | } -------------------------------------------------------------------------------- /Popcron.Sheets/GridRange.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class GridRange 7 | { 8 | public int sheetId; 9 | public int startRowIndex; 10 | public int endRowIndex; 11 | public int startColumnIndex; 12 | public int endColumnIndex; 13 | } 14 | } -------------------------------------------------------------------------------- /Popcron.Sheets/HighLevel/SheetsSerializer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public abstract class SheetsSerializer 7 | { 8 | public abstract T DeserializeObject(string data); 9 | public abstract string SerializeObject(object data); 10 | 11 | public static SheetsSerializer Serializer { get; set; } = null; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/HistogramChartSpec.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class HistogramChartSpec 7 | { 8 | public HistogramSeries[] series; 9 | public string legendPosition; 10 | public bool showItemDividers; 11 | public double bucketSize; 12 | public double outlierPercentile; 13 | } 14 | } -------------------------------------------------------------------------------- /Popcron.Sheets/HistogramSeries.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class HistogramSeries 7 | { 8 | public Color barColor; 9 | public ChartData data; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/InterpolationPoint.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class InterpolationPoint 7 | { 8 | public Color color; 9 | public string type; 10 | public string value; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/IterativeCalculationSettings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class IterativeCalculationSettings 7 | { 8 | public int maxIterations; 9 | public int convergenceThreshold; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/LineStyle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class LineStyle 7 | { 8 | public int width; 9 | public string type; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/NamedRange.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class NamedRange 7 | { 8 | public string namedRangeId; 9 | public string name; 10 | public GridRange range; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/NumberFormat.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class NumberFormat 7 | { 8 | public string type; 9 | public string pattern; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/OAuth/AuthorizationType.cs: -------------------------------------------------------------------------------- 1 | namespace Popcron.Sheets 2 | { 3 | public enum AuthorizationType 4 | { 5 | Key, 6 | AccessToken 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Popcron.Sheets/OAuth/OAuthToken.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class OAuthToken 7 | { 8 | public string accessToken = ""; 9 | public int expiresIn = 3600; 10 | public string refreshToken = ""; 11 | public string scope = ""; 12 | public string tokenType = ""; 13 | public string idToken = ""; 14 | } 15 | } -------------------------------------------------------------------------------- /Popcron.Sheets/OrgChartSpec.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class OrgChartSpec 7 | { 8 | public string nodeSize; 9 | public Color nodeColor; 10 | public Color selectedNodeColor; 11 | public ChartData labels; 12 | public ChartData parentLabels; 13 | public ChartData tooltips; 14 | } 15 | } -------------------------------------------------------------------------------- /Popcron.Sheets/OverlayPosition.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class OverlayPosition 7 | { 8 | public GridCoordinate anchorCell; 9 | public int offsetXPixels; 10 | public int offsetYPixels; 11 | public int widthPixels; 12 | public int heightPixels; 13 | } 14 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Padding.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class Padding 7 | { 8 | public int top; 9 | public int right; 10 | public int bottom; 11 | public int left; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/PieChartSpec.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class PieChartSpec 7 | { 8 | public string legendPosition; 9 | public ChartData domain; 10 | public ChartData series; 11 | public bool threeDimensional; 12 | public float pieHole; 13 | } 14 | } -------------------------------------------------------------------------------- /Popcron.Sheets/PivotFilterCriteria.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class PivotFilterCriteria 7 | { 8 | public string[] visibleValues; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/PivotTable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Popcron.Sheets 5 | { 6 | [Serializable] 7 | public class PivotTable 8 | { 9 | public GridRange source; 10 | public PivotTable[] rows; 11 | public PivotTable[] columns; 12 | public Dictionary criteria; 13 | public PivotValue[] values; 14 | public string valueLayout; 15 | } 16 | } -------------------------------------------------------------------------------- /Popcron.Sheets/PivotValue.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class PivotValue 7 | { 8 | public string summarizeFunction; 9 | public string name; 10 | public string calculatedDisplayTable; 11 | public int sourceColumnOffset; 12 | public string formula; 13 | } 14 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Popcron.Sheets")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Popcron.Sheets")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("c16deca7-0a86-4285-9b3a-99dfd499b4fd")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Popcron.Sheets/ProtectedRange.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class ProtectedRange 7 | { 8 | public int protectedRangeId; 9 | public GridRange range; 10 | public string namedRangeId; 11 | public string description; 12 | public bool warningOnly; 13 | public bool requestingUserCanEdit; 14 | public GridRange[] unprotectedRanges; 15 | public Editors editors; 16 | } 17 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/AddBandingRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddBandingRequest 7 | { 8 | public int bandedRangeId; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/AddChartRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddChartRequest 7 | { 8 | public EmbeddedChart chart; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/AddConditionalFormatRuleRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddConditionalFormatRuleRequest 7 | { 8 | public ConditionalFormatRule rule; 9 | public int index; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/AddDimensionGroupRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddDimensionGroupRequest 7 | { 8 | public DimensionRange range; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/AddFilterViewRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddFilterViewRequest 7 | { 8 | public FilterView filter; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/AddNamedRangeRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddNamedRangeRequest 7 | { 8 | public NamedRange namedRange; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/AddProtectedRangeRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddProtectedRangeRequest 7 | { 8 | public ProtectedRange protectedRange; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/AddSheetRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddSheetRequest 7 | { 8 | public SheetProperties properties; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/AppendCellsRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AppendCellsRequest 7 | { 8 | public int sheetId; 9 | public RowData[] rows; 10 | public string fields; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/AppendDimensionRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AppendDimensionRequest 7 | { 8 | public int sheetId; 9 | public string dimension; 10 | public int length; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/AutoFillRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AutoFillRequest 7 | { 8 | public bool useAlternateSeries; 9 | public object area; 10 | 11 | public void Set(GridRange range) 12 | { 13 | area = range; 14 | } 15 | 16 | public void Set(SourceAndDestination sourceAndDestination) 17 | { 18 | area = sourceAndDestination; 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/AutoResizeDimensionsRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AutoResizeDimensionsRequest 7 | { 8 | public DimensionRange dimensions; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/ClearBasicFilterRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class ClearBasicFilterRequest 7 | { 8 | public int sheetId; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/CopyPasteRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class CopyPasteRequest 7 | { 8 | public GridRange source; 9 | public GridCoordinate destination; 10 | public string pasteType; 11 | public string pasteOrientation; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/CreateDeveloperMetadataRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class CreateDeveloperMetadataRequest 7 | { 8 | public DeveloperMetadata developerMetadata; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/CutPasteRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class CutPasteRequest 7 | { 8 | public GridRange source; 9 | public GridCoordinate destination; 10 | public string pasteType; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/DeleteBandingRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteBandingRequest 7 | { 8 | public int bandedRangeId; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/DeleteConditionalFormatRuleRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteConditionalFormatRuleRequest 7 | { 8 | public int index; 9 | public int sheetId; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/DeleteDeveloperMetadataRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteDeveloperMetadataRequest 7 | { 8 | public DataFilter dataFilter; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/DeleteDimensionGroupRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteDimensionGroupRequest 7 | { 8 | public DimensionRange range; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/DeleteDimensionRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteDimensionRequest 7 | { 8 | public DimensionRange range; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/DeleteEmbeddedObjectRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteEmbeddedObjectRequest 7 | { 8 | public int objectId; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/DeleteFilterViewRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteFilterViewRequest 7 | { 8 | public int filterId; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/DeleteNamedRangeRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteNamedRangeRequest 7 | { 8 | public string namedRangeId; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/DeleteProtectedRangeRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteProtectedRangeRequest 7 | { 8 | public int protectedRangeId; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/DeleteRangeRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteRangeRequest 7 | { 8 | public GridRange range; 9 | public string shiftDimension; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/DeleteSheetRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteSheetRequest 7 | { 8 | public int sheetId; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/DuplicateFilterViewRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DuplicateFilterViewRequest 7 | { 8 | public int filterId; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/DuplicateSheetRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DuplicateSheetRequest 7 | { 8 | public int sourceSheetId; 9 | public int insertSheetIndex; 10 | public int newSheetId; 11 | public string newSheetName; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/FindReplaceRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class FindReplaceRequest 7 | { 8 | public string find; 9 | public string replacement; 10 | public bool matchCase; 11 | public bool matchEntireCell; 12 | public bool searchByRegex; 13 | public bool includeFormulas; 14 | public object scope; 15 | 16 | public void Set(GridRange scope) 17 | { 18 | this.scope = scope; 19 | } 20 | 21 | public void Set(int scope) 22 | { 23 | this.scope = scope; 24 | } 25 | 26 | public void Set(bool scope) 27 | { 28 | this.scope = scope; 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/InsertDimensionRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class InsertDimensionRequest 7 | { 8 | public DimensionRange range; 9 | public bool inheritFromBefore; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/InsertRangeRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class InsertRangeRequest 7 | { 8 | public GridRange range; 9 | public string shiftDimension; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/MergeCellsRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class MergeCellsRequest 7 | { 8 | public GridRange range; 9 | public string mergeType; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/MoveDimensionRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class MoveDimensionRequest 7 | { 8 | public DimensionRange source; 9 | public int destinationIndex; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/PasteDataRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class PasteDataRequest 7 | { 8 | public GridCoordinate coordinate; 9 | public string data; 10 | public string type; 11 | public object kind; 12 | 13 | public void Set(string delimeter) 14 | { 15 | kind = delimeter; 16 | } 17 | 18 | public void Set(bool html) 19 | { 20 | kind = html; 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/RandomizeRangeRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class RandomizeRangeRequest 7 | { 8 | public GridRange range; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/RepeatCellRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class RepeatCellRequest 7 | { 8 | public GridRange range; 9 | public CellData cell; 10 | public string fields; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/RequestBatchUpdate.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Popcron.Sheets 8 | { 9 | [Serializable] 10 | public class RequestBatchUpdate 11 | { 12 | public Request[] requests = { }; 13 | public bool includeSpreadsheetInResponse; 14 | public string[] responseRanges = { }; 15 | public bool responseIncludeGridData; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/SetBasicFilterRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class SetBasicFilterRequest 7 | { 8 | public BasicFilter filter; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/SetDataValidationRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class SetDataValidationRequest 7 | { 8 | public GridRange range; 9 | public DataValidationRule rule; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/SortRangeRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class SortRangeRequest 7 | { 8 | public GridRange range; 9 | public SortSpec[] sortSpecs; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/SourceAndDestination.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class SourceAndDestination 7 | { 8 | public GridRange source; 9 | public string dimension; 10 | public int fillLength; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/TextToColumnsRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class TextToColumnsRequest 7 | { 8 | public GridRange source; 9 | public string delimeter; 10 | public string delimeterType; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UnmergeCellsRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UnmergeCellsRequest 7 | { 8 | public GridRange range; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateBandingRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateBandingRequest 7 | { 8 | public BandedRange bandedRange; 9 | public string fields; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateBordersRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateBordersRequest 7 | { 8 | public GridRange range; 9 | public Border top; 10 | public Border bottom; 11 | public Border left; 12 | public Border right; 13 | public Border innerHorizontal; 14 | public Border innerVertical; 15 | } 16 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateCellsRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateCellsRequest 7 | { 8 | public RowData[] rows; 9 | public string fields; 10 | public object area; 11 | 12 | public void Set(object area) 13 | { 14 | if (area.GetType() == typeof(GridCoordinate) || area.GetType() == typeof(GridRange)) 15 | { 16 | this.area = area; 17 | } 18 | else 19 | { 20 | throw new Exception("Unsupported data type " + area.GetType()); 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateChartSpecRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateChartSpecRequest 7 | { 8 | public int chartId; 9 | public ChartSpec spec; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateConditionalFormatRuleRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateConditionalFormatRuleRequest 7 | { 8 | public int index; 9 | public int sheetId; 10 | public object instruction; 11 | 12 | public void Set(ConditionalFormatRule rule) 13 | { 14 | instruction = rule; 15 | } 16 | 17 | public void Set(int newIndex) 18 | { 19 | instruction = newIndex; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateDeveloperMetadataRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateDeveloperMetadataRequest 7 | { 8 | public DataFilter[] dataFilters; 9 | public DeveloperMetadata developerMetadata; 10 | public string fields; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateDimensionGroupRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateDimensionGroupRequest 7 | { 8 | public DimensionGroup dimensionGroup; 9 | public string fields; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateDimensionPropertiesRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateDimensionPropertiesRequest 7 | { 8 | public DimensionRange range; 9 | public DimensionProperties properties; 10 | public string fields; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateEmbeddedObjectPositionRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateEmbeddedObjectPositionRequest 7 | { 8 | public int objectId; 9 | public EmbeddedObjectPosition newPosition; 10 | public string fields; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateFilterViewRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateFilterViewRequest 7 | { 8 | public FilterView filter; 9 | public string fields; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateNamedRangeRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateNamedRangeRequest 7 | { 8 | public NamedRange namedRange; 9 | public string fields; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateProtectedRangeRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateProtectedRangeRequest 7 | { 8 | public ProtectedRange protectedRange; 9 | public string fields; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateSheetPropertiesRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateSheetPropertiesRequest 7 | { 8 | public SheetProperties properties; 9 | public string fields; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Requests/UpdateSpreadsheetPropertiesRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateSpreadsheetPropertiesRequest 7 | { 8 | public SpreadsheetProperties properties; 9 | public string fields; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/AddBandingResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddBandingResponse 7 | { 8 | public BandedRange bandedRange; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/AddChartResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddChartResponse 7 | { 8 | public EmbeddedChart chart; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/AddDimensionGroupResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddDimensionGroupResponse 7 | { 8 | public DimensionGroup[] dimensionGroups; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/AddFilterViewResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddFilterViewResponse 7 | { 8 | public FilterView filter; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/AddNamedRangeResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddNamedRangeResponse 7 | { 8 | public NamedRange namedRange; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/AddProtectedRangeResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddProtectedRangeResponse 7 | { 8 | public ProtectedRange protectedRange; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/AddSheetResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class AddSheetResponse 7 | { 8 | public SheetProperties properties; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/CreateDeveloperMetadataResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class CreateDeveloperMetadataResponse 7 | { 8 | public DeveloperMetadata developerMetadata; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/DeleteConditionalFormatRuleResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteConditionalFormatRuleResponse 7 | { 8 | public ConditionalFormatRule rule; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/DeleteDeveloperMetadataResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteDeveloperMetadataResponse 7 | { 8 | public DeveloperMetadata[] deletedDeveloperMetadata; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/DeleteDimensionGroupResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DeleteDimensionGroupResponse 7 | { 8 | public DimensionGroup[] dimensionGroups; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/DuplicateFilterViewResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DuplicateFilterViewResponse 7 | { 8 | public FilterView filter; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/DuplicateSheetResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class DuplicateSheetResponse 7 | { 8 | public SheetProperties properties; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/FindReplaceResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class FindReplaceResponse 7 | { 8 | public int valuesChanged; 9 | public int formulasChanged; 10 | public int rowsChanged; 11 | public int sheetsChanged; 12 | public int occurrencesChanged; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/RequestBatchUpdateResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class RequestBatchUpdateResponse 7 | { 8 | public string spreadsheetId; 9 | public Response[] replies; 10 | public SpreadsheetRaw updatedSpreadsheet; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/Response.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class Response 7 | { 8 | public object kind; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/UpdateConditionalFormatRuleResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateConditionalFormatRuleResponse 7 | { 8 | public ConditionalFormatRule newRule; 9 | public int newIndex; 10 | 11 | public object old_info; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/UpdateDeveloperMetadataResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateDeveloperMetadataResponse 7 | { 8 | public DeveloperMetadata[] developerMetadata; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/Responses/UpdateEmbeddedObjectPositionResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class UpdateEmbeddedObjectPositionResponse 7 | { 8 | public EmbeddedObjectPosition position; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Popcron.Sheets/RowData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class RowData 7 | { 8 | public CellData[] values; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/SheetProperties.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class SheetProperties 7 | { 8 | public int sheetId; 9 | public string title; 10 | public int index; 11 | public string sheetType; 12 | public GridProperties gridProperties; 13 | public bool hidden; 14 | public Color tabColor; 15 | public bool rightToLeft; 16 | } 17 | } -------------------------------------------------------------------------------- /Popcron.Sheets/SheetRaw.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class SheetRaw 7 | { 8 | public SheetProperties properties; 9 | public GridData[] data = { }; 10 | public GridRange[] merges = { }; 11 | public ConditionalFormatRule[] conditionalFormats; 12 | public FilterView[] filterViews = { }; 13 | public ProtectedRange[] protectedRanges; 14 | public BasicFilter basicFilter; 15 | public EmbeddedChart[] charts; 16 | public BandedRange[] bandedRanges = { }; 17 | public DeveloperMetadata[] developerMetadata; 18 | public DimensionGroup[] rowGroups = { }; 19 | public DimensionGroup[] dimensionGroups = { }; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Popcron.Sheets/SortSpec.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class SortSpec 7 | { 8 | public int dimensionIndex; 9 | public string sortOrder; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/SpreadsheetProperties.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class SpreadsheetProperties 7 | { 8 | public string title; 9 | public string locale; 10 | public string autoRecalc; 11 | public string timeZone; 12 | public CellFormat defaultFormat; 13 | public IterativeCalculationSettings iterativeCalculationSettings; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Popcron.Sheets/SpreadsheetRaw.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | 4 | namespace Popcron.Sheets 5 | { 6 | [Serializable] 7 | public class SpreadsheetRaw 8 | { 9 | public string spreadsheetId; 10 | public SpreadsheetProperties properties; 11 | public SheetRaw[] sheets; 12 | public NamedRange[] namedRanges; 13 | public string spreadsheetUrl; 14 | public DeveloperMetadata[] developerMetadata; 15 | 16 | /// 17 | /// Returns the raw data that is contingent to the Google Sheets API. 18 | /// 19 | public static async Task Get(string spreadsheetId, Authorization authorization, bool includeGridData, SheetsSerializer serializer = null) 20 | { 21 | if (serializer == null) serializer = SheetsSerializer.Serializer; 22 | if (serializer == null) throw new Exception("No serializer was given."); 23 | 24 | SheetsClient client = new SheetsClient(spreadsheetId, authorization, serializer); 25 | SpreadsheetRaw raw = await client.GetRaw(includeGridData); 26 | 27 | return raw; 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /Popcron.Sheets/TextFormat.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class TextFormat 7 | { 8 | public Color foregroundColor; 9 | public string fontFamily; 10 | public int fontSize; 11 | public bool bold; 12 | public bool italic; 13 | public bool strikethrough; 14 | public bool underline; 15 | } 16 | } -------------------------------------------------------------------------------- /Popcron.Sheets/TextFormatRun.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class TextFormatRun 7 | { 8 | public int startIndex; 9 | public TextFormat format; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/TextPosition.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class TextPosition 7 | { 8 | public string horizontalAlignment; 9 | } 10 | } -------------------------------------------------------------------------------- /Popcron.Sheets/TextRotation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class TextRotation 7 | { 8 | public int angle; 9 | public bool vertical; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/TreemapChartColorScale.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class TreemapChartColorScale 7 | { 8 | public Color minValueColor; 9 | public Color midValueColor; 10 | public Color maxValueColor; 11 | public Color noDataColor; 12 | } 13 | } -------------------------------------------------------------------------------- /Popcron.Sheets/TreemapChartSpec.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class TreemapChartSpec 7 | { 8 | public ChartData labels; 9 | public ChartData parentLabels; 10 | public ChartData sizeData; 11 | public ChartData colorData; 12 | public TextFormat textFormat; 13 | 14 | public int levels; 15 | public int hintedLevels; 16 | public double minValue; 17 | public double maxValue; 18 | public Color headerColor; 19 | public TreemapChartColorScale colorScale; 20 | public bool hideTooltips; 21 | } 22 | } -------------------------------------------------------------------------------- /Popcron.Sheets/WaterfallChartColumnStyle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class WaterfallChartColumnStyle 7 | { 8 | public string label; 9 | public Color color; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/WaterfallChartCustomSubtotal.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class WaterfallChartCustomSubtotal 7 | { 8 | public int subtotalIndex; 9 | public string label; 10 | public bool dataIsSubtotal; 11 | } 12 | } -------------------------------------------------------------------------------- /Popcron.Sheets/WaterfallChartDomain.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class WaterfallChartDomain 7 | { 8 | public ChartData data; 9 | public bool reversed; 10 | } 11 | } -------------------------------------------------------------------------------- /Popcron.Sheets/WaterfallChartSpec.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class WaterfallChartSpec 7 | { 8 | public WaterfallChartDomain domain; 9 | public WaterfallChartSpecies[] series; 10 | public string stackedType; 11 | public bool firstValueIsTotal; 12 | public bool hideConnectorLines; 13 | public LineStyle connectorLineStyle; 14 | } 15 | } -------------------------------------------------------------------------------- /Popcron.Sheets/WaterfallChartSpecies.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Popcron.Sheets 4 | { 5 | [Serializable] 6 | public class WaterfallChartSpecies 7 | { 8 | public ChartData data; 9 | public WaterfallChartColumnStyle positiveColumnsStyle; 10 | public WaterfallChartColumnStyle negativeColumnsStyle; 11 | public WaterfallChartColumnStyle subtotalColumnsStyle; 12 | public bool hideTrailingSubtotal; 13 | public WaterfallChartCustomSubtotal[] customSubtotals; 14 | } 15 | } -------------------------------------------------------------------------------- /Popcron.Sheets/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vMix Universal Title Controller 2 | vMix Universal Title Controller (UTC) is program, which work with vMix through official vMix API. 3 | It can replace some paid or expensive software for making titles/scoreboards/lower thirds (by using pure vMix XAML/GT titles) 4 | and add ability of base scripting. 5 | -------------------------------------------------------------------------------- /UTCGoogleSheetsDataProvider/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /UTCGoogleSheetsDataProvider/JsonSheetsSerializer.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using Popcron.Sheets; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace GoogleSheetsDataProvider 10 | { 11 | public class JsonSheetsSerializer : SheetsSerializer 12 | { 13 | public override T DeserializeObject(string data) 14 | { 15 | return Newtonsoft.Json.JsonConvert.DeserializeObject(data); 16 | } 17 | 18 | public override string SerializeObject(object data) 19 | { 20 | return Newtonsoft.Json.JsonConvert.SerializeObject(data); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /UTCGoogleSheetsDataProvider/OnWidgetUI.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | using vMixControllerSkin; 3 | 4 | namespace UTCGoogleSheetsDataProvider 5 | { 6 | /// 7 | /// Логика взаимодействия для OnWidgetUI.xaml 8 | /// 9 | public partial class OnWidgetUI : UserControl 10 | { 11 | public OnWidgetUI() 12 | { 13 | //InitializeComponent(); 14 | this.LoadViewFromUri("/GoogleSheetsDataProvider;component/OnWidgetUI.xaml"); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /UTCGoogleSheetsDataProvider/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Общие сведения об этой сборке предоставляются следующим набором 6 | // набора атрибутов. Измените значения этих атрибутов для изменения сведений, 7 | // связанные со сборкой. 8 | [assembly: AssemblyTitle("UTCGoogleSheetsDataProvider")] 9 | [assembly: AssemblyDescription("Google Sheets Data")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("UTCGoogleSheetsDataProvider")] 13 | [assembly: AssemblyCopyright("Copyright © 2020")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми 18 | // для компонентов COM. Если необходимо обратиться к типу в этой сборке через 19 | // COM, задайте атрибуту ComVisible значение TRUE для этого типа. 20 | [assembly: ComVisible(false)] 21 | 22 | // Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM 23 | [assembly: Guid("5688c574-ee3c-46fa-a07a-929911663dba")] 24 | 25 | // Сведения о версии сборки состоят из указанных ниже четырех значений: 26 | // 27 | // Основной номер версии 28 | // Дополнительный номер версии 29 | // Номер сборки 30 | // Редакция 31 | // 32 | // Можно задать все значения или принять номера сборки и редакции по умолчанию 33 | // используя "*", как показано ниже: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /UTCGoogleSheetsDataProvider/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /UTCXLSXDataProvider/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /UTCXLSXDataProvider/OnWidgetUI.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | using vMixControllerSkin; 3 | 4 | namespace UTCGoogleSheetsDataProvider 5 | { 6 | /// 7 | /// Логика взаимодействия для OnWidgetUI.xaml 8 | /// 9 | public partial class OnWidgetUI : UserControl 10 | { 11 | public OnWidgetUI() 12 | { 13 | //InitializeComponent(); 14 | this.LoadViewFromUri("/ExcelDataProvider;component/OnWidgetUI.xaml"); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /UTCXLSXDataProvider/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Общие сведения об этой сборке предоставляются следующим набором 6 | // набора атрибутов. Измените значения этих атрибутов для изменения сведений, 7 | // связанные со сборкой. 8 | [assembly: AssemblyTitle("UTCXLSXDataProvider")] 9 | [assembly: AssemblyDescription("Excel Data")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("UTCXLSXDataProvider")] 13 | [assembly: AssemblyCopyright("Copyright © 2020")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми 18 | // для компонентов COM. Если необходимо обратиться к типу в этой сборке через 19 | // COM, задайте атрибуту ComVisible значение TRUE для этого типа. 20 | [assembly: ComVisible(false)] 21 | 22 | // Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM 23 | [assembly: Guid("5688c574-ee3c-46fa-a07a-929911663dba")] 24 | 25 | // Сведения о версии сборки состоят из указанных ниже четырех значений: 26 | // 27 | // Основной номер версии 28 | // Дополнительный номер версии 29 | // Номер сборки 30 | // Редакция 31 | // 32 | // Можно задать все значения или принять номера сборки и редакции по умолчанию 33 | // используя "*", как показано ниже: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /UTCXLSXDataProvider/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /vMixAPI/BusA.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Linq; 5 | using System.Xml.Serialization; 6 | 7 | namespace vMixAPI 8 | { 9 | [Serializable] 10 | public class BusA: Master 11 | { 12 | [XmlIgnore] 13 | public override string Name { get { return "BusA"; } } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /vMixAPI/BusB.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Linq; 5 | using System.Xml.Serialization; 6 | 7 | namespace vMixAPI 8 | { 9 | [Serializable] 10 | public class BusB: Master 11 | { 12 | [XmlIgnore] 13 | public override string Name { get { return "BusB"; } } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /vMixAPI/BusC.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Linq; 5 | using System.Xml.Serialization; 6 | 7 | namespace vMixAPI 8 | { 9 | [Serializable] 10 | public class BusC: Master 11 | { 12 | [XmlIgnore] 13 | public override string Name { get { return "BusC"; } } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /vMixAPI/BusD.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Linq; 5 | using System.Xml.Serialization; 6 | 7 | namespace vMixAPI 8 | { 9 | [Serializable] 10 | public class BusD: Master 11 | { 12 | [XmlIgnore] 13 | public override string Name { get { return "BusD"; } } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /vMixAPI/BusE.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Linq; 5 | using System.Xml.Serialization; 6 | 7 | namespace vMixAPI 8 | { 9 | [Serializable] 10 | public class BusE: Master 11 | { 12 | [XmlIgnore] 13 | public override string Name { get { return "BusE"; } } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /vMixAPI/BusF.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Linq; 5 | using System.Xml.Serialization; 6 | 7 | namespace vMixAPI 8 | { 9 | [Serializable] 10 | public class BusF: Master 11 | { 12 | [XmlIgnore] 13 | public override string Name { get { return "BusF"; } } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /vMixAPI/BusG.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Linq; 5 | using System.Xml.Serialization; 6 | 7 | namespace vMixAPI 8 | { 9 | [Serializable] 10 | public class BusG: Master 11 | { 12 | [XmlIgnore] 13 | public override string Name { get { return "BusG"; } } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /vMixAPI/InputBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Windows; 4 | using System.Xml.Serialization; 5 | 6 | namespace vMixAPI 7 | { 8 | [Serializable] 9 | public class InputBase : DependencyObject, INotifyPropertyChanged 10 | { 11 | public InputBase() 12 | { 13 | Name = string.Format("{{{0}}}", GetType().Name.Replace("Input", "").ToUpper()); 14 | } 15 | 16 | public int InputNumber { get; set; } 17 | public string InputKey { get; set; } 18 | [XmlAttribute("name")] 19 | public string Name { get; set; } 20 | [XmlAttribute("index")] 21 | public int Index { get; set; } 22 | 23 | [XmlIgnore] 24 | public virtual int ID { get { return Name.GetHashCode() % GetType().GetHashCode(); } } 25 | [XmlIgnore] 26 | public virtual State ControlledState { get; set; } 27 | [XmlIgnore] 28 | public virtual string Type { get { return "BAS"; } } 29 | public event PropertyChangedEventHandler PropertyChanged; 30 | protected void RaisePropertyChanged(string property) 31 | { 32 | if (PropertyChanged != null) 33 | PropertyChanged(this, new PropertyChangedEventArgs(property)); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vMixAPI/InputPosition.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Xml.Serialization; 7 | 8 | namespace vMixAPI 9 | { 10 | [Serializable] 11 | public class InputPosition: InputBase 12 | { 13 | [XmlIgnore] 14 | public override string Type 15 | { 16 | get 17 | { 18 | return "POS"; 19 | } 20 | } 21 | 22 | [XmlAttribute("panY")] 23 | public float PanY { get; set; } 24 | [XmlAttribute("panX")] 25 | public float PanX { get; set; } 26 | [XmlAttribute("zoomX")] 27 | public float zoomX { get; set; } 28 | [XmlAttribute("zoomY")] 29 | public float zoomY { get; set; } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vMixAPI/InputType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace vMixAPI 8 | { 9 | /*DEPRECATED*/ 10 | public enum InputType 11 | { 12 | Video = 0, 13 | Image = 1, 14 | Photos = 2, 15 | PowerPoint = 3, 16 | DVD = 4, 17 | Capture = 5, 18 | DesktopCapture = 6, 19 | Audio = 7, 20 | Flash = 8, 21 | Xaml = 9, 22 | VideoDelay = 10, 23 | Title = 11, 24 | Colour = 12, 25 | AudioFile = 13, 26 | VideoList = 14, 27 | VirtualSet = 15, 28 | VideoLoop = 16, 29 | Stream = 20, 30 | ImageSequence = 21, 31 | Virtual = 22, 32 | Blank = 100, 33 | Signal = 1000, 34 | Placeholder = 2000, 35 | Replay = 3000, 36 | ReplayPreview = 3001, 37 | ReplayOverlay = 3002, 38 | NDI = 4000, 39 | Browser = 5000, 40 | VideoCall = 6000, 41 | VLC = 7000, 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /vMixAPI/ListItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Xml.Serialization; 8 | 9 | 10 | namespace vMixAPI 11 | { 12 | [Serializable] 13 | [XmlType(TypeName = "item")] 14 | public class ListItem: DependencyObject 15 | { 16 | 17 | 18 | [XmlText] 19 | public string Value 20 | { 21 | get { return (string)GetValue(ValueProperty); } 22 | set { SetValue(ValueProperty, value); } 23 | } 24 | 25 | // Using a DependencyProperty as the backing store for Value. This enables animation, styling, binding, etc... 26 | public static readonly DependencyProperty ValueProperty = 27 | DependencyProperty.Register("Value", typeof(string), typeof(ListItem), new PropertyMetadata("")); 28 | 29 | 30 | 31 | 32 | [XmlAttribute("selected")] 33 | public bool Selected 34 | { 35 | get { return (bool)GetValue(SelectedProperty); } 36 | set { SetValue(SelectedProperty, value); } 37 | } 38 | 39 | // Using a DependencyProperty as the backing store for Selected. This enables animation, styling, binding, etc... 40 | public static readonly DependencyProperty SelectedProperty = 41 | DependencyProperty.Register("Selected", typeof(bool), typeof(ListItem), new PropertyMetadata(false)); 42 | 43 | 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /vMixAPI/Mix.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Xml.Serialization; 8 | 9 | namespace vMixAPI 10 | { 11 | [Serializable] 12 | public class Mix: DependencyObject 13 | { 14 | [XmlAttribute("number")] 15 | public int Number { get; set; } 16 | 17 | 18 | [XmlElement("preview")] 19 | public int Preview 20 | { 21 | get { return (int)GetValue(PreviewProperty); } 22 | set { SetValue(PreviewProperty, value); } 23 | } 24 | 25 | // Using a DependencyProperty as the backing store for Preview. This enables animation, styling, binding, etc... 26 | public static readonly DependencyProperty PreviewProperty = 27 | DependencyProperty.Register("Preview", typeof(int), typeof(Mix), new PropertyMetadata(0)); 28 | 29 | 30 | [XmlElement("active")] 31 | public int Active 32 | { 33 | get { return (int)GetValue(ActiveProperty); } 34 | set { SetValue(ActiveProperty, value); } 35 | } 36 | 37 | // Using a DependencyProperty as the backing store for Active. This enables animation, styling, binding, etc... 38 | public static readonly DependencyProperty ActiveProperty = 39 | DependencyProperty.Register("Active", typeof(int), typeof(Mix), new PropertyMetadata(0)); 40 | 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /vMixAPI/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Управление общими сведениями о сборке осуществляется с помощью 6 | // набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, 7 | // связанные со сборкой. 8 | [assembly: AssemblyTitle("vMixAPI")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("vMixAPI")] 13 | [assembly: AssemblyCopyright("Copyright © 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Параметр ComVisible со значением FALSE делает типы в сборке невидимыми 18 | // для COM-компонентов. Если требуется обратиться к типу в этой сборке через 19 | // COM, задайте атрибуту ComVisible значение TRUE для этого типа. 20 | [assembly: ComVisible(false)] 21 | 22 | // Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM 23 | [assembly: Guid("41b25f7d-b035-401b-a50a-c5bb3983c2ac")] 24 | 25 | // Сведения о версии сборки состоят из следующих четырех значений: 26 | // 27 | // Основной номер версии 28 | // Дополнительный номер версии 29 | // Номер сборки 30 | // Редакция 31 | // 32 | // Можно задать все значения или принять номера сборки и редакции по умолчанию 33 | // используя "*", как показано ниже: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /vMixAPI/Recording.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Xml.Serialization; 7 | 8 | namespace vMixAPI 9 | { 10 | [Serializable] 11 | public class Recording 12 | { 13 | [XmlText(DataType = "boolean")] 14 | public bool Active { get; set; } 15 | [XmlAttribute("duration")] 16 | public int Duration { get; set; } 17 | [XmlAttribute("filename1")] 18 | public string FileName1 { get; set; } 19 | [XmlAttribute("filename2")] 20 | public string FileName2 { get; set; } 21 | [XmlAttribute("filename3")] 22 | public string FileName3 { get; set; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vMixAPI/Transition.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Xml.Serialization; 7 | 8 | namespace vMixAPI 9 | { 10 | [Serializable] 11 | public class Transition 12 | { 13 | [XmlAttribute("number")] 14 | public int Number { get; set; } 15 | [XmlAttribute("duration")] 16 | public int Duration { get; set; } 17 | [XmlAttribute("effect")] 18 | public TransitionEffect Effect { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /vMixAPI/TransitionEffect.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace vMixAPI 8 | { 9 | public enum TransitionEffect 10 | { 11 | Fade = 0, 12 | Zoom = 1, 13 | Wipe = 2, 14 | Slide = 3, 15 | Fly = 4, 16 | CrossZoom = 5, 17 | FlyRotate = 6, 18 | Cube = 7, 19 | CubeZoom = 8, 20 | VerticalWipe = 20, 21 | VerticalSlide = 25, 22 | Merge = 30, 23 | WipeReverse = 40, 24 | SlideReverse = 42, 25 | VerticalWipeReverse = 44, 26 | VerticalSlideReverse = 46, 27 | BarnDoor, 28 | RollerDoor, 29 | Cut = 100, 30 | Stinger1, 31 | Stinger2, 32 | Stinger3, 33 | Stinger4 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /vMixAPI/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /vMixAPI/vMixWebClient.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Linq; 5 | using System.Net; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace vMixAPI 10 | { 11 | public class vMixWebClient : WebClient 12 | { 13 | public static int _requests = 0; 14 | 15 | public int Timeout { get; set; } 16 | 17 | public vMixWebClient() 18 | { 19 | this.Timeout = 5000; 20 | this.Encoding = Encoding.UTF8; 21 | } 22 | 23 | protected override WebRequest GetWebRequest(Uri address) 24 | { 25 | WebRequest webRequest = base.GetWebRequest(address); 26 | ((HttpWebRequest)webRequest).KeepAlive = false; 27 | webRequest.Timeout = Timeout; 28 | Debug.WriteLine(++_requests); 29 | return webRequest; 30 | } 31 | 32 | protected override void Dispose(bool disposing) 33 | { 34 | Debug.WriteLine(--_requests); 35 | base.Dispose(disposing); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /vMixController/App.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 12 | 18 | 19 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /vMixController/Classes/BindingProxy.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | 8 | namespace vMixController.Classes 9 | { 10 | public class BindingProxy : Freezable 11 | { 12 | protected override Freezable CreateInstanceCore() => new BindingProxy(); 13 | 14 | public object Data 15 | { 16 | get { return (object)GetValue(DataProperty); } 17 | set { SetValue(DataProperty, value); } 18 | } 19 | 20 | public static readonly DependencyProperty DataProperty = 21 | DependencyProperty.Register("Data", typeof(object), typeof(BindingProxy)); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /vMixController/Classes/ColorNamePair.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows.Media; 7 | 8 | namespace vMixController.Classes 9 | { 10 | public class ColorNamePair : Pair 11 | { 12 | public ColorNamePair(Color a, string b) : base(a, b) 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /vMixController/Classes/DummyStringProperty.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace vMixController.Classes 8 | { 9 | public class DummyStringProperty 10 | { 11 | public string Value { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /vMixController/Classes/MenuStyleSelector.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | 9 | namespace vMixController.Classes 10 | { 11 | public class MenuStyleSelector: StyleSelector 12 | { 13 | 14 | 15 | public Style MenuItem { get; set; } 16 | public Style Separator { get; set; } 17 | 18 | 19 | 20 | public override Style SelectStyle(object item, DependencyObject container) 21 | { 22 | return item is MenuItem ? MenuItem : Separator; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vMixController/Classes/Messages.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace vMixController.Messages 8 | { 9 | public struct LoadingMessage 10 | { 11 | public bool Loading { get; set; } 12 | } 13 | public class LIVEToggleMessage 14 | { 15 | public int State { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /vMixController/Classes/NativeFunctions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace vMixController.Classes 8 | { 9 | public static class NativeFunctions 10 | { 11 | public const string NEXTPAGE = "NextPage"; 12 | public const string PREVPAGE = "PrevPage"; 13 | public const string SETPAGE = "SetPage"; 14 | public const string WIN = "Win"; 15 | public const string CONDITION = "Condition"; 16 | public const string ELSE = "Else"; 17 | public const string CONDITIONEND = "ConditionEnd"; 18 | public const string EXECLINK = "ExecLink"; 19 | public const string GOTO = "GoTo"; 20 | public const string HASVARIABLE = "HasVariable"; 21 | public const string ISPRESSED = "IsPressed"; 22 | public const string SETVARIABLE = "SetVariable"; 23 | public const string TIMER = "Timer"; 24 | public const string UPDATEINTERNALBUTTONSTATE = "UpdateInternalButtonState"; 25 | public const string SYNCINTERNALBUTTONSTATE = "SyncInternalButtonState"; 26 | public const string UPDATESTATE = "UpdateState"; 27 | public const string SYNC = "SyncState"; 28 | public const string LIVETOGGLE = "LIVEToggle"; 29 | public const string LIVEOFF = "LIVEOff"; 30 | public const string LIVEON = "LIVEOn"; 31 | public const string API = "API"; 32 | public const string VALUECHANGED = "ValueChanged"; 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /vMixController/Classes/One.cs: -------------------------------------------------------------------------------- 1 | using GalaSoft.MvvmLight; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | using System.Windows; 9 | 10 | namespace vMixController.Classes 11 | { 12 | [Serializable] 13 | public class One : ObservableObject 14 | { 15 | private T a; 16 | 17 | public T A 18 | { 19 | get 20 | { 21 | return a; 22 | } 23 | 24 | set 25 | { 26 | if (a is ObservableObject) 27 | (a as ObservableObject).PropertyChanged -= One_PropertyChanged; 28 | a = value; 29 | if (value is ObservableObject) 30 | (value as ObservableObject).PropertyChanged += One_PropertyChanged; 31 | RaisePropertyChanged("A"); 32 | } 33 | } 34 | 35 | private void One_PropertyChanged(object sender, PropertyChangedEventArgs e) 36 | { 37 | RaisePropertyChanged("A"); 38 | } 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /vMixController/Classes/Quadriple.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | 8 | namespace vMixController.Classes 9 | { 10 | [Serializable] 11 | public class Quadriple : Triple 12 | { 13 | public Quadriple() 14 | { 15 | 16 | } 17 | 18 | public Quadriple(T1 a, T2 b, T3 c, T4 d) 19 | { 20 | A = a; 21 | B = b; 22 | C = c; 23 | D = d; 24 | } 25 | 26 | public T4 D 27 | { 28 | get { return (T4)GetValue(DProperty); } 29 | set { SetValue(DProperty, value); } 30 | } 31 | 32 | // Using a DependencyProperty as the backing store for C. This enables animation, styling, binding, etc... 33 | public static readonly DependencyProperty DProperty = 34 | DependencyProperty.Register("D", typeof(T4), typeof(Quadriple), new PropertyMetadata(default(T4))); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vMixController/Classes/SharedData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace vMixController.Classes 8 | { 9 | public class SharedData : Singleton 10 | { 11 | public Func> GetData { get; set; } 12 | public Func GetDataSource { get; set; } 13 | public Func> GetDataSources { get; set; } 14 | public Func> GetDataSourceProps { get; set; } 15 | 16 | private SharedData() 17 | { 18 | 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vMixController/Classes/Singleton.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Reflection; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace vMixController.Classes 9 | { 10 | public class Singleton where T : class 11 | { 12 | private static T _instance; 13 | 14 | protected Singleton() 15 | { 16 | } 17 | 18 | private static T CreateInstance() 19 | { 20 | ConstructorInfo cInfo = typeof(T).GetConstructor( 21 | BindingFlags.Instance | BindingFlags.NonPublic, 22 | null, 23 | new Type[0], 24 | new ParameterModifier[0]); 25 | 26 | return (T)cInfo.Invoke(null); 27 | } 28 | 29 | public static T Instance 30 | { 31 | get 32 | { 33 | if (_instance == null) 34 | { 35 | _instance = CreateInstance(); 36 | } 37 | 38 | return _instance; 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /vMixController/Colours.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 255 6 | 255 7 | 255 8 | 255 9 | 10 | 11 | 255 12 | 255 13 | 255 14 | 255 15 | 16 | White 17 | 18 | -------------------------------------------------------------------------------- /vMixController/ControllerHighlight.xml: -------------------------------------------------------------------------------- 1 |  3 | 4 | 5 | 6 | 7 | 8 | 9 | ' 10 | ' 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | if 19 | else 20 | 21 | 22 | 23 | 24 | 25 | \b(?im)[{(]?[0-9A-F]{8}[-]?(?:[0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]? # guid 26 | |\b[0-9]+ 27 | 28 | 29 | -------------------------------------------------------------------------------- /vMixController/Controls/ComboBox.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.Specialized; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Controls; 8 | 9 | namespace vMixController.Controls 10 | { 11 | public class ComboBox : System.Windows.Controls.ComboBox 12 | { 13 | public ComboBox() 14 | { 15 | this.SetResourceReference(StyleProperty, typeof(ComboBox)); 16 | } 17 | 18 | private bool ignore = false; 19 | protected override void OnSelectionChanged(SelectionChangedEventArgs e) 20 | { 21 | if (!ignore) 22 | { 23 | base.OnSelectionChanged(e); 24 | } 25 | } 26 | 27 | protected override void OnItemsChanged(NotifyCollectionChangedEventArgs e) 28 | { 29 | ignore = true; 30 | try 31 | { 32 | base.OnItemsChanged(e); 33 | } 34 | finally 35 | { 36 | ignore = false; 37 | } 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /vMixController/Controls/TBarSlider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Linq; 5 | using System.Reflection; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | using System.Windows; 9 | using System.Windows.Controls; 10 | using System.Windows.Controls.Primitives; 11 | using System.Windows.Data; 12 | 13 | namespace vMixController.Controls 14 | { 15 | public class TBarSlider: Slider 16 | { 17 | 18 | public TBarSlider() 19 | { 20 | 21 | } 22 | 23 | public void CancelDrag() 24 | { 25 | 26 | var track = (Track)this.Template.FindName("PART_Track", this); 27 | 28 | track.Thumb.CancelDrag(); 29 | } 30 | 31 | 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /vMixController/Controls/TypeTemplateSelector.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | using System.Windows.Controls; 9 | 10 | namespace vMixController.Controls 11 | { 12 | public class TypeTemplateSelector: DataTemplateSelector 13 | { 14 | 15 | 16 | public int Page { get; set; } = 0; 17 | 18 | public override DataTemplate SelectTemplate(object item, DependencyObject container) 19 | { 20 | //Debug.Print(Page.ToString()); 21 | FrameworkElement element = container as FrameworkElement; 22 | //if (((int?)item.GetType().GetProperty("Page")?.GetValue(item) ?? 0) == Page) 23 | //{ 24 | try 25 | { 26 | return (DataTemplate)element.FindResource(item.GetType().Name); 27 | } 28 | catch (ResourceReferenceKeyNotFoundException) 29 | { 30 | return (DataTemplate)element.FindResource(item.GetType().BaseType.Name); 31 | } 32 | //} 33 | //else 34 | // return (DataTemplate)element.FindResource("Dummy"); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /vMixController/Controls/VolumeSlider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Controls.Primitives; 9 | using System.Windows.Input; 10 | 11 | namespace vMixController.Controls 12 | { 13 | public class VolumeSlider: Slider 14 | { 15 | public event EventHandler ThumbDragStarted; 16 | public event EventHandler ThumbDragCompleted; 17 | 18 | protected override void OnThumbDragStarted(DragStartedEventArgs e) 19 | { 20 | ThumbDragStarted?.Invoke(this, new EventArgs()); 21 | base.OnThumbDragStarted(e); 22 | } 23 | 24 | protected override void OnThumbDragCompleted(DragCompletedEventArgs e) 25 | { 26 | ThumbDragCompleted?.Invoke(this, new EventArgs()); 27 | base.OnThumbDragCompleted(e); 28 | } 29 | 30 | protected override void OnTouchDown(TouchEventArgs e) 31 | { 32 | e.Handled = true; 33 | base.OnTouchDown(e); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vMixController/Converters/AudiobusToBoolConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Data; 8 | using System.Windows.Markup; 9 | 10 | namespace vMixController.Converters 11 | { 12 | [ValueConversion(typeof(string), typeof(bool))] 13 | public class AudiobusToBoolConverter : MarkupExtension, IValueConverter 14 | { 15 | private static IValueConverter _instance; 16 | 17 | /// 18 | /// Static instance of this converter. 19 | /// 20 | public static IValueConverter Instance => _instance ?? (_instance = new AudiobusToBoolConverter()); 21 | 22 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 23 | { 24 | if (value != null && parameter != null && ((string)value).IndexOf((string)parameter) >= 0) 25 | return true; 26 | return false; 27 | } 28 | 29 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 30 | { 31 | throw new NotImplementedException(); 32 | } 33 | 34 | public override object ProvideValue(IServiceProvider serviceProvider) 35 | { 36 | return Instance; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /vMixController/Converters/AudiobusToVisibilityConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | using System.Windows.Data; 9 | using System.Windows.Markup; 10 | using vMixAPI; 11 | 12 | namespace vMixController.Converters 13 | { 14 | [ValueConversion(typeof(List), typeof(Visibility))] 15 | public class AudiobusToVisibilityConverter : MarkupExtension, IValueConverter 16 | { 17 | private static IValueConverter _instance; 18 | 19 | /// 20 | /// Static instance of this converter. 21 | /// 22 | public static IValueConverter Instance => _instance ?? (_instance = new AudiobusToVisibilityConverter()); 23 | 24 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 25 | { 26 | if (value is List && parameter is string) 27 | foreach (var item in (List)value) 28 | { 29 | if (item.Name == (string)parameter) 30 | return Visibility.Visible; 31 | } 32 | return Visibility.Collapsed; 33 | } 34 | 35 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 36 | { 37 | throw new NotImplementedException(); 38 | } 39 | 40 | public override object ProvideValue(IServiceProvider serviceProvider) 41 | { 42 | return Instance; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /vMixController/Converters/BitToVisibilityConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | using System.Windows.Data; 9 | using System.Windows.Markup; 10 | using vMixController.Classes; 11 | 12 | namespace vMixController.Converters 13 | { 14 | [ValueConversion(typeof(byte), typeof(Visibility))] 15 | public class BitToVisibilityConverter : MarkupExtension, IValueConverter 16 | { 17 | private static IValueConverter _instance; 18 | 19 | /// 20 | /// Static instance of this converter. 21 | /// 22 | public static IValueConverter Instance => _instance ?? (_instance = new BitToVisibilityConverter()); 23 | 24 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 25 | { 26 | byte.TryParse((string)parameter, out byte bit); 27 | return ((byte)value).GetBit(bit) ? Visibility.Visible : Visibility.Collapsed; 28 | 29 | } 30 | 31 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 32 | { 33 | throw new NotImplementedException(); 34 | } 35 | 36 | public override object ProvideValue(IServiceProvider serviceProvider) 37 | { 38 | return Instance; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /vMixController/Converters/BoolToOrientationConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Markup; 10 | 11 | namespace vMixController.Converters 12 | { 13 | [ValueConversion(typeof(bool), typeof(Orientation))] 14 | public class BoolToOrientationConverter : MarkupExtension, IValueConverter 15 | { 16 | 17 | private static IValueConverter _instance; 18 | 19 | /// 20 | /// Static instance of this converter. 21 | /// 22 | public static IValueConverter Instance => _instance ?? (_instance = new BoolToOrientationConverter()); 23 | 24 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 25 | { 26 | return ((bool)value) ? Orientation.Horizontal : Orientation.Vertical; 27 | } 28 | 29 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 30 | { 31 | throw new NotImplementedException(); 32 | } 33 | 34 | public override object ProvideValue(IServiceProvider serviceProvider) 35 | { 36 | return Instance; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /vMixController/Converters/BoolToSolidColorBrushConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Data; 8 | using System.Windows.Markup; 9 | using System.Windows.Media; 10 | 11 | namespace vMixController.Converters 12 | { 13 | [ValueConversion(typeof(bool), typeof(SolidColorBrush))] 14 | public class BoolToSolidColorBrushConverter : MarkupExtension, IValueConverter 15 | { 16 | private static IValueConverter _instance; 17 | 18 | /// 19 | /// Static instance of this converter. 20 | /// 21 | public static IValueConverter Instance => _instance ?? (_instance = new BoolToSolidColorBrushConverter()); 22 | 23 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 24 | { 25 | var t = (bool)value; 26 | if (parameter != null) 27 | t = !t; 28 | if (t) 29 | return new SolidColorBrush(Colors.Red); 30 | else 31 | return new SolidColorBrush(Colors.SlateGray); 32 | } 33 | 34 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 35 | { 36 | throw new NotImplementedException(); 37 | } 38 | 39 | public override object ProvideValue(IServiceProvider serviceProvider) 40 | { 41 | return Instance; 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /vMixController/Converters/ColorToDarkerSolidBrushConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Windows.Data; 4 | using System.Windows.Markup; 5 | using System.Windows.Media; 6 | using vMixController.Classes; 7 | 8 | namespace vMixController.Converters 9 | { 10 | [ValueConversion(typeof(Color), typeof(SolidColorBrush))] 11 | public class ColorToDarkerSolidBrushConverter : MarkupExtension, IValueConverter 12 | { 13 | private static IValueConverter _instance; 14 | 15 | /// 16 | /// Static instance of this converter. 17 | /// 18 | public static IValueConverter Instance => _instance ?? (_instance = new ColorToDarkerSolidBrushConverter()); 19 | 20 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 21 | { 22 | if (value == null) 23 | return Brushes.Black; 24 | var c = (Color)value; 25 | var hsb = SimpleColorTransforms.RgBtoHsb(c); 26 | return new SolidColorBrush(SimpleColorTransforms.HsBtoRgb(hsb[0], Math.Min(1, hsb[1] * 1.5), hsb[2] * 0.75)); 27 | } 28 | 29 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 30 | { 31 | throw new NotImplementedException(); 32 | } 33 | 34 | public override object ProvideValue(IServiceProvider serviceProvider) 35 | { 36 | return Instance; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /vMixController/Converters/ColorToSolidBrushConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Data; 8 | using System.Windows.Markup; 9 | using System.Windows.Media; 10 | 11 | namespace vMixController.Converters 12 | { 13 | [ValueConversion(typeof(Color), typeof(SolidColorBrush))] 14 | public class ColorToSolidBrushConverter : MarkupExtension, IValueConverter 15 | { 16 | private static IValueConverter _instance; 17 | 18 | /// 19 | /// Static instance of this converter. 20 | /// 21 | public static IValueConverter Instance => _instance ?? (_instance = new ColorToSolidBrushConverter()); 22 | 23 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 24 | { 25 | return new SolidColorBrush((Color)value); 26 | } 27 | 28 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 29 | { 30 | return ((SolidColorBrush)value).Color; 31 | } 32 | 33 | public override object ProvideValue(IServiceProvider serviceProvider) 34 | { 35 | return Instance; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /vMixController/Converters/ControlIntToParameterConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Data; 8 | using System.Windows.Markup; 9 | using vMixController.Classes; 10 | using vMixController.Widgets; 11 | 12 | namespace vMixController.Converters 13 | { 14 | public class ControlIntToParameterConverter : MarkupExtension, IMultiValueConverter 15 | { 16 | private static IMultiValueConverter _instance; 17 | 18 | /// 19 | /// Static instance of this converter. 20 | /// 21 | public static IMultiValueConverter Instance => _instance ?? (_instance = new ControlIntToParameterConverter()); 22 | 23 | public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) 24 | { 25 | return new ControlIntParameter((vMixControl)values[0], (int)values[1]); 26 | } 27 | 28 | public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) 29 | { 30 | throw new NotImplementedException(); 31 | } 32 | 33 | public override object ProvideValue(IServiceProvider serviceProvider) 34 | { 35 | return Instance; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /vMixController/Converters/DateTimeKeepMillisecondsConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.ServiceModel.Channels; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | using System.Windows.Controls; 9 | using System.Windows.Data; 10 | 11 | namespace vMixController.Converters 12 | { 13 | public class DateTimeKeepMillisecondsConverter : ValidationRule, IValueConverter 14 | { 15 | private DateTime date; 16 | 17 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 18 | { 19 | date = ((DateTime)(value)); 20 | 21 | return value; 22 | } 23 | 24 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 25 | { 26 | if (value == null) return date; 27 | 28 | DateTime dateIn; 29 | DateTime.TryParse((string)value, out dateIn); 30 | 31 | var result = dateIn.AddMilliseconds(date.Millisecond); 32 | 33 | // return, because this event handler will be executed a second time 34 | return result; 35 | } 36 | 37 | public override ValidationResult Validate(object value, CultureInfo cultureInfo) 38 | { 39 | if (value == null) return new ValidationResult(true, null); 40 | DateTime dateIn; 41 | return new ValidationResult(DateTime.TryParse((string)value, out dateIn), null); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /vMixController/Converters/DoubleToThicknessConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | using System.Windows.Data; 9 | using System.Windows.Markup; 10 | 11 | namespace vMixController.Converters 12 | { 13 | [ValueConversion(typeof(double[]), typeof(Thickness))] 14 | public class DoubleToThicknessConverter : MarkupExtension, IMultiValueConverter 15 | { 16 | private static IMultiValueConverter _instance; 17 | 18 | /// 19 | /// Static instance of this converter. 20 | /// 21 | public static IMultiValueConverter Instance => _instance ?? (_instance = new DoubleToThicknessConverter()); 22 | 23 | public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) 24 | { 25 | return new Thickness(values.Length > 0 ? (double)values[0] : 0, 26 | values.Length > 1 ? (double)values[1] : 0, 27 | values.Length > 2 ? (double)values[2] : 0, 28 | values.Length > 3 ? (double)values[3] : 0); 29 | //throw new NotImplementedException(); 30 | } 31 | 32 | public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) 33 | { 34 | throw new NotImplementedException(); 35 | } 36 | 37 | public override object ProvideValue(IServiceProvider serviceProvider) 38 | { 39 | return Instance; 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /vMixController/Converters/EnumToStringConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Data; 8 | using System.Windows.Markup; 9 | 10 | namespace vMixController.Converters 11 | { 12 | [ValueConversion(typeof(Enum), typeof(string))] 13 | public class EnumToStringConverter : MarkupExtension, IValueConverter 14 | { 15 | private static IValueConverter _instance; 16 | 17 | /// 18 | /// Static instance of this converter. 19 | /// 20 | public static IValueConverter Instance => _instance ?? (_instance = new EnumToStringConverter()); 21 | 22 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 23 | { 24 | return Enum.GetName(value.GetType(), value); 25 | //throw new NotImplementedException(); 26 | } 27 | 28 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 29 | { 30 | return Enum.Parse(targetType, (string)value); 31 | } 32 | 33 | public override object ProvideValue(IServiceProvider serviceProvider) 34 | { 35 | return Instance; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /vMixController/Converters/EscapeAt.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace vMixController.Converters 8 | { 9 | public static class Helpers 10 | { 11 | public static string EscapeSymbol = "~"; 12 | 13 | public static string EscapeAt(string val) 14 | { 15 | if (val == null) return ""; 16 | return val.Replace(EscapeSymbol + EscapeSymbol, string.Format("{0}", (char)0)); 17 | } 18 | public static string UnescapeAt(string val) 19 | { 20 | if (val == null) return ""; 21 | return val.Replace(string.Format("{0}", (char)0), EscapeSymbol); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vMixController/Converters/Int32ToVisibilityConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | using System.Windows.Data; 9 | 10 | namespace vMixController.Converters 11 | { 12 | public class Int32ToVisibilityConverter : IValueConverter 13 | { 14 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 15 | { 16 | return (int)value == (int)parameter ? Visibility.Visible : Visibility.Collapsed; 17 | //throw new NotImplementedException(); 18 | } 19 | 20 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 21 | { 22 | throw new NotImplementedException(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vMixController/Converters/IntegersToVisibilityConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Globalization; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | using System.Windows; 9 | using System.Windows.Data; 10 | 11 | namespace vMixController.Converters 12 | { 13 | [ValueConversion(typeof(int[]), typeof(Visibility))] 14 | public class IntegersToVisibilityConverter : IMultiValueConverter 15 | { 16 | public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) 17 | { 18 | bool result = true; 19 | bool areInts = true; 20 | foreach (var item in values) 21 | areInts = areInts && item is int; 22 | if (!areInts) 23 | return Visibility.Visible; 24 | for (int i = 0; i < values.Length - 1; i++) 25 | result = result && ((int)values[i] == (int)values[i + 1]); 26 | return result ? Visibility.Visible : Visibility.Hidden; 27 | } 28 | 29 | public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) 30 | { 31 | return Array.Empty(); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /vMixController/Converters/ListItemTagConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Data; 8 | using System.Windows.Markup; 9 | 10 | namespace vMixController.Converters 11 | { 12 | [ValueConversion(typeof(string), typeof(string))] 13 | public class ListItemTagConverter : MarkupExtension, IValueConverter 14 | { 15 | private static IValueConverter _instance; 16 | 17 | /// 18 | /// Static instance of this converter. 19 | /// 20 | public static IValueConverter Instance => _instance ?? (_instance = new ListItemTagConverter()); 21 | 22 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 23 | { 24 | var val = (string)value; 25 | val = Helpers.EscapeAt(val); 26 | var ts = val.Split(Helpers.EscapeSymbol[0]); 27 | if ((string)parameter == "tag") 28 | if (ts.Length >= 2) 29 | val = Helpers.UnescapeAt(ts[1]); 30 | else 31 | val = null; 32 | else 33 | val = Helpers.UnescapeAt(ts[0]); 34 | 35 | 36 | 37 | return val; 38 | } 39 | 40 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 41 | { 42 | throw new NotImplementedException(); 43 | } 44 | 45 | public override object ProvideValue(IServiceProvider serviceProvider) 46 | { 47 | return Instance; 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /vMixController/Converters/ListItemTagToThicknessConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | using System.Windows.Data; 9 | using System.Windows.Markup; 10 | 11 | namespace vMixController.Converters 12 | { 13 | [ValueConversion(typeof(string), typeof(Thickness))] 14 | public class ListItemTagToThicknessConverter : MarkupExtension, IValueConverter 15 | { 16 | private static IValueConverter _instance; 17 | 18 | /// 19 | /// Static instance of this converter. 20 | /// 21 | public static IValueConverter Instance => _instance ?? (_instance = new ListItemTagToThicknessConverter()); 22 | 23 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 24 | { 25 | var val = (string)value; 26 | var ts = val.Split('@'); 27 | 28 | if (ts.Length >= 2) 29 | val = ts[1]; 30 | else 31 | val = null; 32 | 33 | return string.IsNullOrWhiteSpace((string)val) ? new Thickness() : new Thickness(8, 0, 0, 0); 34 | } 35 | 36 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 37 | { 38 | throw new NotImplementedException(); 39 | } 40 | 41 | public override object ProvideValue(IServiceProvider serviceProvider) 42 | { 43 | return Instance; 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /vMixController/Converters/ListItemTagToVisibilityConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | using System.Windows.Data; 9 | using System.Windows.Markup; 10 | 11 | namespace vMixController.Converters 12 | { 13 | public class ListItemTagToVisibilityConverter : MarkupExtension, IValueConverter 14 | { 15 | private static IValueConverter _instance; 16 | 17 | /// 18 | /// Static instance of this converter. 19 | /// 20 | public static IValueConverter Instance => _instance ?? (_instance = new ListItemTagToVisibilityConverter()); 21 | 22 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 23 | { 24 | var val = (string)value; 25 | var ts = val.Split(Helpers.EscapeSymbol[0]); 26 | 27 | if (ts.Length >= 2) 28 | val = ts[1]; 29 | else 30 | val = null; 31 | 32 | return string.IsNullOrWhiteSpace((string)val) ? Visibility.Collapsed : Visibility.Visible; 33 | } 34 | 35 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 36 | { 37 | throw new NotImplementedException(); 38 | } 39 | 40 | public override object ProvideValue(IServiceProvider serviceProvider) 41 | { 42 | return Instance; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /vMixController/Converters/ObjectToIndexConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Globalization; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | using System.Windows.Data; 9 | using System.Windows.Markup; 10 | 11 | namespace vMixController.Converters 12 | { 13 | [ValueConversion(typeof(object), typeof(int))] 14 | public class ObjectToIndexConverter: MarkupExtension, IValueConverter 15 | { 16 | private static IValueConverter _instance; 17 | 18 | /// 19 | /// Static instance of this converter. 20 | /// 21 | public static IValueConverter Instance => _instance ?? (_instance = new ObjectToIndexConverter()); 22 | 23 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 24 | { 25 | return ((IList)parameter).IndexOf(value); 26 | } 27 | 28 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 29 | { 30 | throw new NotImplementedException(); 31 | } 32 | 33 | public override object ProvideValue(IServiceProvider serviceProvider) 34 | { 35 | return Instance; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /vMixController/Converters/ParametersToStringConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Globalization; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | using System.Windows.Data; 9 | using System.Windows.Markup; 10 | using vMixController.Classes; 11 | 12 | namespace vMixController.Converters 13 | { 14 | [ValueConversion(typeof(ICollection>), typeof(string))] 15 | public class ParametersToStringConverter : MarkupExtension, IValueConverter 16 | { 17 | private static IValueConverter _instance; 18 | 19 | /// 20 | /// Static instance of this converter. 21 | /// 22 | public static IValueConverter Instance => _instance ?? (_instance = new ParametersToStringConverter()); 23 | 24 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 25 | { 26 | var val = (ICollection>)value; 27 | if (val.Count > 0) 28 | return val.Skip(1).Select(x => x.A).Aggregate((x, y) => x + y); 29 | return ""; 30 | } 31 | 32 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 33 | { 34 | throw new NotImplementedException(); 35 | } 36 | 37 | public override object ProvideValue(IServiceProvider serviceProvider) 38 | { 39 | return Instance; 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /vMixController/Converters/StringListToStringConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Data; 8 | using System.Windows.Markup; 9 | using System.Windows.Media; 10 | using vMixController.Classes; 11 | 12 | namespace vMixController.Converters 13 | { 14 | public class StringListToStringConverter : MarkupExtension, IMultiValueConverter 15 | { 16 | private static IMultiValueConverter _instance; 17 | 18 | /// 19 | /// Static instance of this converter. 20 | /// 21 | public static IMultiValueConverter Instance => _instance ?? (_instance = new StringListToStringConverter()); 22 | 23 | public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) 24 | { 25 | try 26 | { 27 | return ((IList)values[0])[(int)values[1]]; 28 | } catch (Exception) 29 | { 30 | return Colors.White; 31 | } 32 | } 33 | 34 | public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) 35 | { 36 | throw new NotImplementedException(); 37 | } 38 | 39 | public override object ProvideValue(IServiceProvider serviceProvider) 40 | { 41 | return Instance; 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /vMixController/Converters/StringToCollectionConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Globalization; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | using System.Windows.Data; 9 | 10 | namespace vMixController.Converters 11 | { 12 | public class StringToCollectionConverter : IValueConverter 13 | { 14 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 15 | { 16 | if (value is string) 17 | return new ObservableCollection() { (string)value }; 18 | else 19 | return value; 20 | } 21 | 22 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 23 | { 24 | throw new NotImplementedException(); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vMixController/Converters/StringToCursorConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Data; 8 | using System.Windows.Input; 9 | using System.Windows.Markup; 10 | 11 | namespace vMixController.Converters 12 | { 13 | [ValueConversion(typeof(string), typeof(Cursor))] 14 | public class StringToCursorConverter : MarkupExtension, IValueConverter 15 | { 16 | private static IValueConverter _instance; 17 | 18 | /// 19 | /// Static instance of this converter. 20 | /// 21 | public static IValueConverter Instance => _instance ?? (_instance = new StringToCursorConverter()); 22 | 23 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 24 | { 25 | 26 | return (Cursor)typeof(Cursors).GetProperty((string)value).GetValue(null); 27 | } 28 | 29 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 30 | { 31 | throw new NotImplementedException(); 32 | } 33 | 34 | public override object ProvideValue(IServiceProvider serviceProvider) 35 | { 36 | return Instance; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /vMixController/Converters/TextFieldAndIntToControlIntParameterConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Data; 8 | using System.Windows.Markup; 9 | 10 | namespace vMixController.Converters 11 | { 12 | 13 | public class TextFieldAndIntToControlIntParameterConverter : MarkupExtension, IMultiValueConverter 14 | { 15 | 16 | private static IMultiValueConverter _instance; 17 | 18 | /// 19 | /// Static instance of this converter. 20 | /// 21 | public static IMultiValueConverter Instance => _instance ?? (_instance = new TextFieldAndIntToControlIntParameterConverter()); 22 | 23 | public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) 24 | { 25 | try 26 | { 27 | return new Classes.ControlIntParameter() { A = (vMixController.Widgets.vMixControlTextField)values[0], B = (int)values[1] }; 28 | } 29 | catch (Exception) 30 | { 31 | return null; 32 | } 33 | } 34 | 35 | public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) 36 | { 37 | throw new NotImplementedException(); 38 | } 39 | 40 | public override object ProvideValue(IServiceProvider serviceProvider) 41 | { 42 | return Instance; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /vMixController/Converters/ValueNullToStringConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Data; 8 | using System.Windows.Markup; 9 | 10 | namespace vMixController.Converters 11 | { 12 | public class ValueNullToStringConverter : MarkupExtension, IValueConverter 13 | { 14 | private static IValueConverter _instance; 15 | 16 | /// 17 | /// Static instance of this converter. 18 | /// 19 | public static IValueConverter Instance => _instance ?? (_instance = new ValueNullToStringConverter()); 20 | 21 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 22 | { 23 | if (value == null) return "0"; 24 | else return value; 25 | } 26 | 27 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 28 | { 29 | if (value == null) return "0"; 30 | else return value; 31 | } 32 | 33 | public override object ProvideValue(IServiceProvider serviceProvider) 34 | { 35 | return Instance; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /vMixController/Examples/TimerEvents.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/Examples/TimerEvents.zip -------------------------------------------------------------------------------- /vMixController/Examples/UTC Buttons/WhiteBlue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/Examples/UTC Buttons/WhiteBlue.png -------------------------------------------------------------------------------- /vMixController/Examples/UTC Buttons/WhiteGreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/Examples/UTC Buttons/WhiteGreen.png -------------------------------------------------------------------------------- /vMixController/Examples/UTC Buttons/WhiteRed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/Examples/UTC Buttons/WhiteRed.png -------------------------------------------------------------------------------- /vMixController/Examples/UTC Buttons/WhiteYellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/Examples/UTC Buttons/WhiteYellow.png -------------------------------------------------------------------------------- /vMixController/Examples/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/Examples/button.png -------------------------------------------------------------------------------- /vMixController/Extensions/FocusExtension.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Controls.Primitives; 9 | 10 | namespace vMixController.Extensions 11 | { 12 | public static class FocusExtension 13 | { 14 | public static bool GetIsFocused(DependencyObject obj) 15 | { 16 | return (bool)obj.GetValue(IsFocusedProperty); 17 | } 18 | 19 | public static void SetIsFocused(DependencyObject obj, bool value) 20 | { 21 | obj.SetValue(IsFocusedProperty, value); 22 | } 23 | 24 | public static readonly DependencyProperty IsFocusedProperty = 25 | DependencyProperty.RegisterAttached( 26 | "IsFocused", typeof(bool), typeof(FocusExtension), 27 | new UIPropertyMetadata(false, OnIsFocusedPropertyChanged)); 28 | 29 | private static void OnIsFocusedPropertyChanged( 30 | DependencyObject d, 31 | DependencyPropertyChangedEventArgs e) 32 | { 33 | var uie = (UIElement)d; 34 | if ((bool)e.NewValue) 35 | { 36 | uie.Focus(); // Don't care about false values. 37 | //Select all text 38 | if (d is TextBoxBase block) 39 | block.SelectAll(); 40 | } 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /vMixController/Extensions/LocalizationManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Xml; 8 | 9 | namespace vMixController.Extensions 10 | { 11 | public static class LocalizationManager 12 | { 13 | static Dictionary _strings = new Dictionary(); 14 | static LocalizationManager() 15 | { 16 | 17 | var locale = System.Globalization.CultureInfo.CurrentUICulture.Name; 18 | var filename = Path.Combine("Locales", string.Format("{0}.xml", locale)); 19 | if (File.Exists(filename)) 20 | { 21 | var doc = new XmlDocument(); 22 | doc.Load(filename); 23 | foreach (var node in doc.SelectNodes(".//Key").OfType()) 24 | _strings.Add(node.GetAttribute("Value"), node.InnerText); 25 | } 26 | 27 | } 28 | public static string Get(string key) 29 | { 30 | return _strings.ContainsKey(key) ? _strings[key] : key.Split('#').FirstOrDefault(); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /vMixController/Extensions/Localize.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows.Markup; 7 | 8 | namespace vMixController.Extensions 9 | { 10 | public class Localize : MarkupExtension 11 | { 12 | [ConstructorArgument("key")] 13 | public string Key { get; set; } 14 | 15 | public Localize(string key) 16 | { 17 | Key = key; 18 | } 19 | 20 | public override object ProvideValue(IServiceProvider serviceProvider) 21 | { 22 | return LocalizationManager.Get(Key); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vMixController/Extensions/ThumbColorizer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Controls.Primitives; 9 | using System.Windows.Media; 10 | 11 | namespace vMixController.Extensions 12 | { 13 | public static class ThumbColorizer 14 | { 15 | public static SolidColorBrush GetColor(DependencyObject obj) 16 | { 17 | return (SolidColorBrush)obj.GetValue(ColorProperty); 18 | } 19 | 20 | public static void SetColor(DependencyObject obj, SolidColorBrush value) 21 | { 22 | obj.SetValue(ColorProperty, value); 23 | } 24 | 25 | public static readonly DependencyProperty ColorProperty = 26 | DependencyProperty.RegisterAttached( 27 | "Color", typeof(SolidColorBrush), typeof(ThumbColorizer), 28 | new UIPropertyMetadata(Brushes.Transparent, OnColorPropertyChanged)); 29 | 30 | private static void OnColorPropertyChanged( 31 | DependencyObject d, 32 | DependencyPropertyChangedEventArgs e) 33 | { 34 | Slider slider1 = (Slider)d; 35 | var cc = VisualTreeHelper.GetChildrenCount(d); 36 | for (int i = 0; i < cc; i++) 37 | { 38 | var c = VisualTreeHelper.GetChild(d, i); 39 | } 40 | //var thumb = slider.Template.FindName("PART_Thumb", slider) as Thumb; 41 | 42 | 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /vMixController/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /vMixController/Functions.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/Functions.zip -------------------------------------------------------------------------------- /vMixController/Grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/Grid.png -------------------------------------------------------------------------------- /vMixController/Images/Function.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/Images/Function.png -------------------------------------------------------------------------------- /vMixController/Images/Input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/Images/Input.png -------------------------------------------------------------------------------- /vMixController/KeyLearnWindow.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /vMixController/KeyLearnWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Shapes; 14 | 15 | namespace vMixController 16 | { 17 | /// 18 | /// Логика взаимодействия для KeyLearnWindow.xaml 19 | /// 20 | public partial class KeyLearnWindow : Window 21 | { 22 | public Key PressedKey { get; set; } 23 | 24 | public KeyLearnWindow() 25 | { 26 | InitializeComponent(); 27 | Topmost = Application.Current?.MainWindow?.Topmost ?? false; 28 | Activate(); 29 | } 30 | 31 | private void Window_KeyUp(object sender, KeyEventArgs e) 32 | { 33 | PressedKey = e.Key; 34 | DialogResult = true; 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /vMixController/MidiLearnWindow.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /vMixController/NLog.config: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 13 | 14 | 18 | 19 | 20 | 25 | 26 | 31 | 32 | 33 | 34 | 35 | 36 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /vMixController/Processing.NDI.Lib.x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/Processing.NDI.Lib.x64.dll -------------------------------------------------------------------------------- /vMixController/Processing.NDI.Lib.x86.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/Processing.NDI.Lib.x86.dll -------------------------------------------------------------------------------- /vMixController/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 128 7 | 8 | 9 | 128 10 | 11 | 12 | 348 13 | 14 | 15 | 348 16 | 17 | 18 | Normal 19 | 20 | 21 | False 22 | 23 | 24 | 0.1 25 | 26 | 27 | -------------------------------------------------------------------------------- /vMixController/PropertiesControls/ComboBoxControl.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /vMixController/PropertiesControls/GridControl.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /vMixController/PropertiesControls/GridControl.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Navigation; 14 | using System.Windows.Shapes; 15 | 16 | namespace vMixController.PropertiesControls 17 | { 18 | /// 19 | /// Логика взаимодействия для GridControl.xaml 20 | /// 21 | public partial class GridControl : UserControl 22 | { 23 | public GridControl() 24 | { 25 | InitializeComponent(); 26 | DataContext = this; 27 | } 28 | 29 | 30 | public UIElementCollection Children { get { return InnerGrid.Children; } } 31 | 32 | int _columns = 0; 33 | public int Columns 34 | { 35 | get 36 | { 37 | return _columns; 38 | } 39 | set 40 | { 41 | if (_columns != value) 42 | { 43 | _columns = value; 44 | InnerGrid.ColumnDefinitions.Clear(); 45 | for (int i = 0; i < _columns; i++) 46 | InnerGrid.ColumnDefinitions.Add(new ColumnDefinition()); 47 | } 48 | } 49 | } 50 | 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /vMixController/PropertiesControls/InputSelectorControl.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /vMixController/PropertiesControls/IntControl.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /vMixController/PropertiesControls/StringControl.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /vMixController/RegisterFilters.cmd: -------------------------------------------------------------------------------- 1 | regsvr32.exe "%1\DirectShow\Filters.NdiSourceFilter.x64.dll" /s 2 | regsvr32.exe "%1\DirectShow\Filters.NdiSourceFilter.x86.dll" /s -------------------------------------------------------------------------------- /vMixController/Usage.txt: -------------------------------------------------------------------------------- 1 | Antlr3 (c) 2010 Terence Parr 2 | Avalonedit (c) AvalonEdit Contributors 3 | Common.Logging by Aleksandar Seovic, Mark Pollack, Erich Eichinger, Stephen Bohlen 4 | Extended.Wpf.Toolkit (c) Xceed Software, Inc. - 2019. All rights reserved. 5 | Fody, Costura.Fody (c) 2012 Simon Cropp and contributors 6 | HtmlAgilityPack (c) ZZZ Projects,Simon Mourrier,Jeff Klawiter,Stephan Grell 7 | MouseKeyHook (c) 2004-2015, George Mamaladze 8 | MvvmLightLibs(c) 2009-2018 Laurent Bugnion 9 | NAudio by Mark Heath & Contributors 10 | NLog (c) 2004-2020 Jaroslaw Kowalski , Kim Christensen, Julian Verdurmen 11 | Ookii.Dialogs by Sven Groot 12 | Sanford.Multimedia.Midi by Leslie Sanford,Tebjan Halm,Andreas Grimme,Andres Fernandez de Prado 13 | WpfScreenHelper (c) 2014 Michael Denny 14 | WriteableBitmapEx (c) Schulte Software Development 15 | NDI SDK (c) NewTek Inc. -------------------------------------------------------------------------------- /vMixController/Widgets/IvMixAutoUpdateWidget.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace vMixController.Widgets 8 | { 9 | public interface IvMixAutoUpdateWidget 10 | { 11 | int Period { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /vMixController/Widgets/vMixControlLabel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace vMixController.Widgets 8 | { 9 | public class vMixControlLabel: vMixControl 10 | { 11 | 12 | public override bool IsCaptionOn { get => true; set => base.IsCaptionOn = true; } 13 | 14 | public override string Type 15 | { 16 | get 17 | { 18 | return Extensions.LocalizationManager.Get("Label"); 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /vMixController/Widgets/vMixControlSlider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace vMixController.Widgets 8 | { 9 | //for backward compatibility 10 | [Serializable] 11 | public class vMixControlSlider: vMixControlVolume 12 | { 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /vMixController/settings-gears (1).ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/settings-gears (1).ico -------------------------------------------------------------------------------- /vMixController/settings-gears.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixController/settings-gears.ico -------------------------------------------------------------------------------- /vMixController/vMixControlUtils.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace vMixController 8 | { 9 | public static class vMixControlUtils 10 | { 11 | public static void AlignByGrid(this vMixController.Widgets.vMixControl item) 12 | { 13 | var pleft = item.Left; 14 | item.Left = ((int)item.Left / 8) * 8; 15 | if (pleft > 0) 16 | item.Width += pleft - item.Left; 17 | item.Width = ((int)item.Width / 8) * 8; 18 | item.Height = ((int)item.Height / 8) * 8; 19 | item.Top = ((int)item.Top / 8) * 8; 20 | 21 | //Avoid widget to be unreachable 22 | if (item.Top < 0) 23 | item.Top = 0; 24 | if (item.Left < 0) 25 | item.Left = 0; 26 | if (item.Height < 8) 27 | item.Height = 8; 28 | 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vMixControllerDataProvider/IvMixDataProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Windows; 3 | 4 | namespace vMixControllerDataProvider 5 | { 6 | public interface IvMixDataProvider 7 | { 8 | /// 9 | /// Period of updating data in msec, used for internal data provider needs 10 | /// 11 | int Period { get; set; } 12 | /// 13 | /// TRUE, if data provider has additional properties, which shows when user press "Properties" button. 14 | /// 15 | bool IsProvidingCustomProperties { get; } 16 | /// 17 | /// Data, provided by provider, it can be updated at every property get event. 18 | /// 19 | string[] Values { get; } 20 | /// 21 | /// Shows custom properties window. 22 | /// 23 | /// Owner of window with custom properties. 24 | void ShowProperties(Window owner); 25 | /// 26 | /// Custom On-Widget UI. 27 | /// 28 | UIElement CustomUI { get; } 29 | /// 30 | /// Gets provider properties for saving into file. 31 | /// 32 | /// List of provider properties. Every property must be a serializable value. 33 | List GetProperties(); 34 | /// 35 | /// Sets properties from list of objects. 36 | /// 37 | /// List of properties, provided by GetProperties method. 38 | void SetProperties(List props); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /vMixControllerDataProvider/IvMixDataProviderTextInput.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace vMixControllerDataProvider 8 | { 9 | public interface IvMixDataProviderTextInput: IvMixDataProvider 10 | { 11 | object PreviewKeyUp { get; set; } 12 | object GotFocus { get; set; } 13 | object LostFocus { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /vMixControllerDataProvider/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Управление общими сведениями о сборке осуществляется с помощью 6 | // набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, 7 | // связанные со сборкой. 8 | [assembly: AssemblyTitle("vMixControllerDataProvider")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("vMixControllerDataProvider")] 13 | [assembly: AssemblyCopyright("Copyright © 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Параметр ComVisible со значением FALSE делает типы в сборке невидимыми 18 | // для COM-компонентов. Если требуется обратиться к типу в этой сборке через 19 | // COM, задайте атрибуту ComVisible значение TRUE для этого типа. 20 | [assembly: ComVisible(false)] 21 | 22 | // Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM 23 | [assembly: Guid("21c1a5ec-9fd2-44f5-bdac-98f0787102c3")] 24 | 25 | // Сведения о версии сборки состоят из следующих четырех значений: 26 | // 27 | // Основной номер версии 28 | // Дополнительный номер версии 29 | // Номер сборки 30 | // Редакция 31 | // 32 | // Можно задать все значения или принять номера сборки и редакции по умолчанию 33 | // используя "*", как показано ниже: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /vMixControllerDataProvider/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /vMixControllerSkin/Colours.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 255 6 | 255 7 | 255 8 | 255 9 | 1 10 | 1 11 | 1 12 | 1 13 | 14 | 15 | 255 16 | 255 17 | 255 18 | 255 19 | 1 20 | 1 21 | 1 22 | 1 23 | 24 | White 25 | 26 | -------------------------------------------------------------------------------- /vMixControllerSkin/Converters/ObjectToTypeString.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows.Data; 7 | 8 | namespace vMixControllerSkin.Converters 9 | { 10 | public class ObjectToTypeStringConverter : IValueConverter 11 | { 12 | public object Convert( 13 | object value, Type targetType, 14 | object parameter, System.Globalization.CultureInfo culture) 15 | { 16 | return value.GetType()?.Name ?? Binding.DoNothing; 17 | } 18 | 19 | public object ConvertBack( 20 | object value, Type targetType, 21 | object parameter, System.Globalization.CultureInfo culture) 22 | { 23 | // I don't think you'll need this 24 | throw new Exception("Can't convert back"); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vMixControllerSkin/Extension.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.IO.Packaging; 5 | using System.Linq; 6 | using System.Reflection; 7 | using System.Text; 8 | using System.Threading; 9 | using System.Threading.Tasks; 10 | using System.Windows; 11 | using System.Windows.Controls; 12 | using System.Windows.Markup; 13 | using System.Windows.Navigation; 14 | 15 | namespace vMixControllerSkin 16 | { 17 | public static class Extension 18 | { 19 | public static void LoadViewFromUri(this UIElement userControl, string baseUri) 20 | { 21 | var resourceLocater = new Uri(baseUri, UriKind.Relative); 22 | var exprCa = (PackagePart)(typeof(Application).GetMethod("GetResourceOrContentPart", BindingFlags.NonPublic | BindingFlags.Static).Invoke(null, new object[] { resourceLocater })); 23 | var stream = exprCa.GetStream(); 24 | var uri = new Uri((Uri)typeof(BaseUriHelper).GetProperty("PackAppBaseUri", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null, null), resourceLocater); 25 | var parserContext = new ParserContext 26 | { 27 | BaseUri = uri 28 | }; 29 | 30 | typeof(XamlReader).GetMethod("LoadBaml", BindingFlags.NonPublic | BindingFlags.Static).Invoke(null, new object[] { stream, parserContext, userControl, true }); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /vMixControllerSkin/FontAwesome.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixControllerSkin/FontAwesome.ttf -------------------------------------------------------------------------------- /vMixControllerSkin/Linearicons-Free.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixControllerSkin/Linearicons-Free.ttf -------------------------------------------------------------------------------- /vMixControllerSkin/Material Design Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixControllerSkin/Material Design Icons.ttf -------------------------------------------------------------------------------- /vMixControllerSkin/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Управление общими сведениями о сборке осуществляется с помощью 6 | // набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, 7 | // связанные со сборкой. 8 | [assembly: AssemblyTitle("vMixControllerSkin")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("vMixControllerSkin")] 13 | [assembly: AssemblyCopyright("Copyright © 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Параметр ComVisible со значением FALSE делает типы в сборке невидимыми 18 | // для COM-компонентов. Если требуется обратиться к типу в этой сборке через 19 | // COM, задайте атрибуту ComVisible значение TRUE для этого типа. 20 | [assembly: ComVisible(false)] 21 | 22 | // Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM 23 | [assembly: Guid("90bfeee2-82e3-47d2-9b56-47ddb4c611f2")] 24 | 25 | // Сведения о версии сборки состоят из следующих четырех значений: 26 | // 27 | // Основной номер версии 28 | // Дополнительный номер версии 29 | // Номер сборки 30 | // Редакция 31 | // 32 | // Можно задать все значения или принять номера сборки и редакции по умолчанию 33 | // используя "*", как показано ниже: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /vMixControllerSkin/Segoe UI Mono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixControllerSkin/Segoe UI Mono.ttf -------------------------------------------------------------------------------- /vMixControllerSkin/btn_donate_SM.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elgarf/vMixUTC/7578455fcb788762cae3894757cabb9bc6744898/vMixControllerSkin/btn_donate_SM.gif -------------------------------------------------------------------------------- /vMixControllerSkin/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /vMixGenericXmlDataProvider/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /vMixGenericXmlDataProvider/CacheStats.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Xml; 7 | 8 | namespace XmlDataProviderNs 9 | { 10 | public class CacheStats 11 | { 12 | public XmlDocument Document { get; set; } 13 | public int LastId { get; set; } 14 | public DateTime LastUpdated { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /vMixGenericXmlDataProvider/OnWidgetUI.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Navigation; 14 | using System.Windows.Shapes; 15 | using vMixControllerSkin; 16 | 17 | namespace XmlDataProviderNs 18 | { 19 | /// 20 | /// Логика взаимодействия для OnWidgetUI.xaml 21 | /// 22 | public partial class OnWidgetUI : UserControl 23 | { 24 | public OnWidgetUI() 25 | { 26 | //InitializeComponent(); 27 | this.LoadViewFromUri("/XmlDataProvider;component/OnWidgetUI.xaml"); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /vMixGenericXmlDataProvider/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Управление общими сведениями о сборке осуществляется с помощью 6 | // набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, 7 | // связанные со сборкой. 8 | [assembly: AssemblyTitle("vMixGenericXmlDataProvider")] 9 | [assembly: AssemblyDescription("XML Data")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("vMixGenericXmlDataProvider")] 13 | [assembly: AssemblyCopyright("Copyright © 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Параметр ComVisible со значением FALSE делает типы в сборке невидимыми 18 | // для COM-компонентов. Если требуется обратиться к типу в этой сборке через 19 | // COM, задайте атрибуту ComVisible значение TRUE для этого типа. 20 | [assembly: ComVisible(false)] 21 | 22 | // Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM 23 | [assembly: Guid("59d90d89-d046-495d-9131-6cb78df4b4c3")] 24 | 25 | // Сведения о версии сборки состоят из следующих четырех значений: 26 | // 27 | // Основной номер версии 28 | // Дополнительный номер версии 29 | // Номер сборки 30 | // Редакция 31 | // 32 | // Можно задать все значения или принять номера сборки и редакции по умолчанию 33 | // используя "*", как показано ниже: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /vMixGenericXmlDataProvider/PropertiesWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Navigation; 14 | using System.Windows.Shapes; 15 | using vMixControllerSkin; 16 | 17 | namespace XmlDataProviderNs 18 | { 19 | /// 20 | /// Логика взаимодействия для PropertiesWindow.xaml 21 | /// 22 | public partial class PropertiesWindow : Window 23 | { 24 | public PropertiesWindow() 25 | { 26 | this.LoadViewFromUri("/XmlDataProvider;component/PropertiesWindow.xaml"); 27 | } 28 | 29 | private void Button_Click(object sender, RoutedEventArgs e) 30 | { 31 | DialogResult = true; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /vMixGenericXmlDataProvider/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /vMixUTCNDIMonitorDataProvider/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /vMixUTCNDIMonitorDataProvider/OnWidgetUI.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Navigation; 14 | using System.Windows.Shapes; 15 | using UTCNDIMonitorDataProvider.Extensions; 16 | using vMixControllerSkin; 17 | 18 | namespace UTCNDIMonitorDataProvider 19 | { 20 | /// 21 | /// Логика взаимодействия для OnWidgetUI.xaml 22 | /// 23 | public partial class OnWidgetUI : UserControl 24 | { 25 | public OnWidgetUI() 26 | { 27 | //InitializeComponent(); 28 | this.LoadViewFromUri("NdiMonitorDataProvider;component/OnWidgetUI.xaml"); 29 | } 30 | public void UpdatePreview(BitmapSource src) 31 | { 32 | //Preview.Source = src; 33 | } 34 | 35 | private void Button_Click(object sender, RoutedEventArgs e) 36 | { 37 | //(DataContext as NDIMonitorDataProvider).UpdateFindList(); 38 | } 39 | 40 | private void Preview_SizeChanged(object sender, SizeChangedEventArgs e) 41 | { 42 | 43 | //var img = (sender as Image); 44 | //img.Height = SizeObserver.GetObservedWidth(img); 45 | } 46 | } 47 | 48 | 49 | } 50 | -------------------------------------------------------------------------------- /vMixUTCNDIMonitorDataProvider/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Управление общими сведениями о сборке осуществляется с помощью 6 | // набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, 7 | // связанные со сборкой. 8 | [assembly: AssemblyTitle("vMixUTCNDIMonitorDataProvider")] 9 | [assembly: AssemblyDescription("NDI Monitor")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("vMixUTCNDIMonitorDataProvider")] 13 | [assembly: AssemblyCopyright("Copyright © 2019")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Параметр ComVisible со значением FALSE делает типы в сборке невидимыми 18 | // для COM-компонентов. Если требуется обратиться к типу в этой сборке через 19 | // COM, задайте атрибуту ComVisible значение TRUE для этого типа. 20 | [assembly: ComVisible(false)] 21 | 22 | // Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM 23 | [assembly: Guid("e08e6704-10bf-4cf2-89ec-7aeb063c9219")] 24 | 25 | // Сведения о версии сборки состоят из следующих четырех значений: 26 | // 27 | // Основной номер версии 28 | // Дополнительный номер версии 29 | // Номер сборки 30 | // Редакция 31 | // 32 | // Можно задать все значения или принять номера сборки и редакции по умолчанию 33 | // используя "*", как показано ниже: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /vMixUTCNDIMonitorDataProvider/StringToNDISourceConverter.cs: -------------------------------------------------------------------------------- 1 | using NewTek; 2 | using NewTek.NDI; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Globalization; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Data; 10 | 11 | namespace UTCNDIMonitorDataProvider 12 | { 13 | public class StringToNDISourceConverter : IValueConverter 14 | { 15 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 16 | { 17 | if (value != null) 18 | return new Source((string)value); 19 | else 20 | return null; 21 | } 22 | 23 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 24 | { 25 | throw new NotImplementedException(); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vMixUTCNDIMonitorDataProvider/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /vMixWeatherExternalDataProvider/OnWidgetUI.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Navigation; 14 | using System.Windows.Shapes; 15 | 16 | namespace WeatherExternalDataProvider 17 | { 18 | /// 19 | /// Логика взаимодействия для OnWidgetUI.xaml 20 | /// 21 | public partial class OnWidgetUI : UserControl 22 | { 23 | 24 | public WeatherProvider Provider 25 | { 26 | get { return (WeatherProvider)GetValue(ProviderProperty); } 27 | set { SetValue(ProviderProperty, value); } 28 | } 29 | 30 | // Using a DependencyProperty as the backing store for Provider. This enables animation, styling, binding, etc... 31 | public static readonly DependencyProperty ProviderProperty = 32 | DependencyProperty.Register("Provider", typeof(WeatherProvider), typeof(OnWidgetUI), new PropertyMetadata(null)); 33 | 34 | public OnWidgetUI() 35 | { 36 | InitializeComponent(); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /vMixWeatherExternalDataProvider/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Управление общими сведениями о сборке осуществляется с помощью 6 | // набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, 7 | // связанные со сборкой. 8 | [assembly: AssemblyTitle("vMixWeatherExternalDataProvider")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("vMixWeatherExternalDataProvider")] 13 | [assembly: AssemblyCopyright("Copyright © 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Параметр ComVisible со значением FALSE делает типы в сборке невидимыми 18 | // для COM-компонентов. Если требуется обратиться к типу в этой сборке через 19 | // COM, задайте атрибуту ComVisible значение TRUE для этого типа. 20 | [assembly: ComVisible(false)] 21 | 22 | // Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM 23 | [assembly: Guid("a6259d55-e7da-481e-81c3-4a370c8dfdc8")] 24 | 25 | // Сведения о версии сборки состоят из следующих четырех значений: 26 | // 27 | // Основной номер версии 28 | // Дополнительный номер версии 29 | // Номер сборки 30 | // Редакция 31 | // 32 | // Можно задать все значения или принять номера сборки и редакции по умолчанию 33 | // используя "*", как показано ниже: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /vMixWeatherExternalDataProvider/PropertiesWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | 3 | namespace WeatherExternalDataProvider 4 | { 5 | /// 6 | /// Description for PropertiesWindow. 7 | /// 8 | public partial class PropertiesWindow : Window 9 | { 10 | /// 11 | /// Initializes a new instance of the PropertiesWindow class. 12 | /// 13 | public PropertiesWindow() 14 | { 15 | InitializeComponent(); 16 | } 17 | 18 | 19 | 20 | public WeatherProvider Provider 21 | { 22 | get { return (WeatherProvider)GetValue(ProviderProperty); } 23 | set { SetValue(ProviderProperty, value); } 24 | } 25 | 26 | // Using a DependencyProperty as the backing store for Provider. This enables animation, styling, binding, etc... 27 | public static readonly DependencyProperty ProviderProperty = 28 | DependencyProperty.Register("Provider", typeof(WeatherProvider), typeof(PropertiesWindow), new PropertyMetadata(null)); 29 | 30 | private void Button_Click(object sender, RoutedEventArgs e) 31 | { 32 | DialogResult = true; 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /vMixWeatherExternalDataProvider/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | --------------------------------------------------------------------------------