diff --git a/.gitignore b/.gitignore
index 6f23ffd4..c6d09bd7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -251,3 +251,10 @@ paket-files/
# JetBrains Rider
.idea/
*.sln.iml
+
+# Include ALL files in 'docs' folder (movistartv.alphacentaury.org website files)
+!/docs/*
+
+#Include ALL files in Assemblies/Third Party
+!Assemblies/Third-Party
+*.backup
diff --git a/1.5 'Kruger 60'/.defaults/licensing.defaults.internal.xml b/1.5 'Kruger 60'/.defaults/licensing.defaults.internal.xml
new file mode 100644
index 00000000..102a2b95
--- /dev/null
+++ b/1.5 'Kruger 60'/.defaults/licensing.defaults.internal.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ Internal tools for IPTViewr version 1.5 “Kruger 60” Beta 1
+
+
diff --git a/1.5 'Kruger 60'/.defaults/licensing.defaults.solution.xml b/1.5 'Kruger 60'/.defaults/licensing.defaults.solution.xml
new file mode 100644
index 00000000..b40fc839
--- /dev/null
+++ b/1.5 'Kruger 60'/.defaults/licensing.defaults.solution.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
diff --git a/1.5 'Kruger 60'/.defaults/licensing.defaults.xml b/1.5 'Kruger 60'/.defaults/licensing.defaults.xml
new file mode 100644
index 00000000..e06a52bd
--- /dev/null
+++ b/1.5 'Kruger 60'/.defaults/licensing.defaults.xml
@@ -0,0 +1,138 @@
+
+
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/1.5 'Kruger 60'/.defaults/licensing.pool.licenses.xml b/1.5 'Kruger 60'/.defaults/licensing.pool.licenses.xml
new file mode 100644
index 00000000..867b0573
--- /dev/null
+++ b/1.5 'Kruger 60'/.defaults/licensing.pool.licenses.xml
@@ -0,0 +1,311 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/1.5 'Kruger 60'/.defaults/licensing.pool.thirdparty.xml b/1.5 'Kruger 60'/.defaults/licensing.pool.thirdparty.xml
new file mode 100644
index 00000000..c484399c
--- /dev/null
+++ b/1.5 'Kruger 60'/.defaults/licensing.pool.thirdparty.xml
@@ -0,0 +1,45 @@
+
+
+
+
+ MIT
+ Copyright (c) 2007 James Newton-King
+ James Newton-King
+ Json.NET is a popular high-performance JSON framework for .NET
+
+
+ MIT
+ Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ JetBrains
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+ MIT
+ Copyright (c) .NET Foundation and Contributors
+ Microsoft
+ Provides the System.ValueTuple structs, which implement the underlying types for tuples in C# and Visual Basic.
+
+
+ MS-SQL-2005-EMB
+ Microsoft
+
+ The exception message box is a programmatic interface that you can use in your applications for any tasks for which MessageBox may be used. The exception message box is a supported managed assembly designed to elegantly handle managed code exceptions. It provides significantly more control over the messaging experience and gives your users the options to save error message content for later reference and to get help on messages.
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/AlphaCentaury.Licensing.Data.Ui.csproj b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/AlphaCentaury.Licensing.Data.Ui.csproj
new file mode 100644
index 00000000..4a2cd396
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/AlphaCentaury.Licensing.Data.Ui.csproj
@@ -0,0 +1,160 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {1293A5C4-478F-4EFD-8E53-D283B35E1A06}
+ Library
+ Properties
+ AlphaCentaury.Licensing.Data.Ui
+ AlphaCentaury.Licensing.Data.Ui
+ v4.6.2
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ 8
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ 8
+
+
+
+ ..\..\packages\JetBrains.Annotations.2019.1.3\lib\net20\JetBrains.Annotations.dll
+
+
+
+
+
+
+
+
+ Properties\AssemblySolutionInfo.cs
+
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {42b71db3-2e34-43bb-bf87-88f422bcf861}
+ AlphaCentaury.Licensing.Data
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/LICENSE.ES.MD b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/LICENSE.ES.MD
new file mode 100644
index 00000000..360638f1
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/LICENSE.ES.MD
@@ -0,0 +1,114 @@
+# Biblioteca 'AlphaCentaury.Licensing.Data.Ui'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Términos y condiciones de uso
+
+Este COMPONENTE (el “SOFTWARE”), ya sea en forma de código binario o fuente, está **sujeto a los términos de la Licencia Recíproca de Microsoft _“Microsoft Reciprocal License” (Ms-RL)_**, excepto en lo relativo a componentes de terceras partes (“THIRD-PARTY”). \
+Todos los demás derechos están reservados por el/los autor(es) del software.
+
+**EL SOFTWARE SE PROPORCIONA “TAL CUAL”, SIN GARANTÍA DE NINGÚN TIPO**, expresa o implícita, incluyendo (pero no limitándose a) las garantías de comerciabilidad, idoneidad para un propósito particular y no infracción. \
+En ningún caso, los autores o titulares del Copyright serán responsables de ninguna reclamación, daños o cualquier otra responsabilidad, ya sea en una acción de contrato, agravio o cualquier otro motivo, con o sin relación con el software o el uso u otros aspectos del software.
+
+Todas las marcas comerciales, marcas de servicio, nombres comerciales, nombres de productos y logotipos son propiedad de sus respectivos propietarios.
+Su uso en el contexto de este software no constituye un respaldo ni apoyo por parte de sus respectivos propietarios.
+
+----------------------------------------------------------------------
+
+
+_A continuación se proporciona una traducción aproximada de la **Licencia recíproca de Microsoft (Ms-RL)** al español. Esta traducción carece de cualquier validez legal._
+
+Esta licencia rige el uso del software que lo acompaña. Si utiliza el software, usted acepta esta licencia. Si no acepta la licencia, no use el software.
+
+1. **Definiciones**
+
+ - Los términos “reproducir”, “reproducción”, “obras derivadas” y “distribución” tienen el mismo significado en este acuerdo de licencia que en la Ley de Derechos de Autor de EE. UU.
+ - Una “contribución” es el software original, o cualquier adición o cambio al software.
+ - Un “colaborador” es cualquier persona que distribuye su contribución bajo esta licencia.
+ - Las “patentes licenciadas” son declaraciones de patente de un contribuyente y que aplican directamente sobre su contribución.
+
+2. **Concesión de derechos**
+
+ - (A) _Concesión de derechos de autor:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le otorga una licencia de copyright no exclusiva, mundial y libre de regalías para reproducir su contribución, preparar crear trabajos derivados de su contribución, y distribuir su contribución o cualquier trabajo derivado que usted cree.
+ - (B) _Concesión de patentes:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le concede una licencia no exclusiva, mundial y libre de regalías bajo sus patentes autorizadas para realizar, haber realizado, usar, vender, ofrecer para la venta, importar y/o disponer de su contribución en el software o trabajos derivados de la contribución en el software.
+
+3. **Condiciones y limitaciones**
+
+ - (A) _Derechos recíprocos:_ Para cualquier archivo que distribuya que contenga código del software (en código fuente o formato binario), debe proporcionar a los destinatarios el código fuente de ese archivo junto con una copia de esta licencia, que será la licencia que regirá sobre el archivo. Puede licenciar otros archivos que son totalmente de su propiedad y que no contengan código alguno del software en los términos de licenciamiento que usted elija.
+ - (B) _Sin licencia de marca comercial:_ esta licencia no le concede el derecho a utilizar el nombre, el logotipo o las marcas comerciales de ningún colaborador.
+ - (C) Si presenta una reclamación de patente contra un contribuyente por patentes que usted alega son infringidas por el software, la licencia de patente sobre el software que dicho colaborador le proporcionó finaliza automáticamente.
+ - (D) Si distribuye cualquier parte del software, debe conservar todos los avisos de copyright, patente, marca comercial y atribución que están presentes en el software.
+ - (E) Si distribuye cualquier porción del software en forma de código fuente, puede hacerlo solo bajo esta licencia incluyendo una copia completa de esta licencia con su distribución. Si distribuye cualquier porción del software en forma de código compilado u objeto, solo puede hacerlo bajo una licencia que cumpla con esta licencia.
+ - (F) El software se proporciona “tal cual está”. Usted asume los riesgos derivados de su uso. Los colaboradores no proporcionan expresamente garantías o condiciones. Es posible que tenga derechos adicionales como consumidor bajo las leyes locales que esta licencia no puede cambiar. En la medida permitida por las leyes locales, los contribuyentes excluyen las garantías implícitas de comerciabilidad, idoneidad para un propósito particular y no infracción.
+
+## Licencias de uso
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+ * [The MIT License (MIT)]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** aplica a los siguientes componentes:
+
+#### 1. AlphaCentaury.Licensing.Data
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 2. AlphaCentaury.Licensing.Data.Ui
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
+### The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+> **'The MIT License (MIT)'** aplica a los siguientes **componentes de terceros _(“THIRD-PARTY”)_:**
+
+#### 1. JetBrains.Annotations
+_Paquete 'nuget' por JetBrains_
+
+**Copyright (c) 2016 JetBrains http://www.jetbrains.com**
+
+ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/LICENSE.MD b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/LICENSE.MD
new file mode 100644
index 00000000..2e16a12d
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/LICENSE.MD
@@ -0,0 +1,86 @@
+# Library 'AlphaCentaury.Licensing.Data.Ui'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Terms and conditions
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+## Licenses
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+ * [The MIT License (MIT)]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** applies to the following components:
+
+#### 1. AlphaCentaury.Licensing.Data
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 2. AlphaCentaury.Licensing.Data.Ui
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
+### The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+> **'The MIT License (MIT)'** applies to the following **third-party components:**
+
+#### 1. JetBrains.Annotations
+_'nuget' package by JetBrains_
+
+**Copyright (c) 2016 JetBrains http://www.jetbrains.com**
+
+ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/LicensingDataUi.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/LicensingDataUi.cs
new file mode 100644
index 00000000..d4165500
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/LicensingDataUi.cs
@@ -0,0 +1,180 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using AlphaCentaury.Licensing.Data.Serialization;
+using JetBrains.Annotations;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Windows.Forms;
+using AlphaCentaury.Licensing.Data.Ui.Properties;
+
+namespace AlphaCentaury.Licensing.Data.Ui
+{
+ public sealed class LicensingDataUi
+ {
+ private readonly LicensingUiImages _images;
+
+ public LicensingDataUi(LicensingUiImages images)
+ {
+ _images = images;
+ } // constructor
+
+ [PublicAPI]
+ public TreeNode DataToTree(string name, LicensingData data)
+ {
+ var root = new TreeNode(name, _images.LicensingData, _images.LicensingData) { Tag = data };
+ var node = LicensedItemToNode(data.Licensed);
+ root.Nodes.Add(node);
+
+ AddDependenciesNodes(root, data.Dependencies);
+ AddLicensesNodes(root, data.Licenses);
+
+ root.Expand();
+ return root;
+ } // DataToTree
+
+ public void AddDependenciesNodes(TreeNode treeNode, LicensingDependencies dependencies)
+ {
+ if (dependencies == null) return;
+ if (!dependencies.LibrariesSpecified && !dependencies.ThirdPartySpecified) return;
+
+ var root = new TreeNode(Resources.DependenciesNode, _images.Dependencies, _images.Dependencies)
+ {
+ Tag = dependencies
+ };
+ treeNode.Nodes.Add(root);
+
+ if (dependencies.LibrariesSpecified)
+ {
+ var nodeLibraries = new TreeNode(Resources.DependenciesLibrariesNode, _images.DependenciesLibraries, _images.DependenciesLibraries)
+ {
+ Tag = dependencies.Libraries
+ };
+ root.Nodes.Add(nodeLibraries);
+ AddLibraryDependenciesNodes(nodeLibraries, dependencies.Libraries);
+ } // if
+
+ if (!dependencies.ThirdPartySpecified) return;
+
+ var nodeThirdParty = new TreeNode(Resources.DependenciesThirdPartyNode, _images.DependenciesThirdParty, _images.DependenciesThirdParty)
+ {
+ Tag = dependencies.ThirdParty
+ };
+ root.Nodes.Add(nodeThirdParty);
+ foreach (var dependency in dependencies.ThirdParty)
+ {
+ nodeThirdParty.Nodes.Add(ThirdPartyDependencyToNode(dependency));
+ } // foreach
+ } // AddDependenciesNodes
+
+ private void AddLibraryDependenciesNodes(TreeNode treeNode, ICollection libraries)
+ {
+ if ((libraries == null) || (libraries.Count == 0)) return;
+
+ foreach (var library in libraries)
+ {
+ treeNode.Nodes.Add(LibraryDependencyToNode(library));
+ } // foreach
+ } // AddLibraryDependenciesNodes
+
+ public void AddLicensesNodes(TreeNode treeNode, ICollection licenses)
+ {
+ if ((licenses == null) || (licenses.Count == 0)) return;
+
+ var node = new TreeNode(Resources.LicensesNode, _images.Licenses, _images.Licenses)
+ {
+ Tag = licenses
+ };
+ node.Expand();
+ treeNode.Nodes.Add(node);
+
+ foreach (var license in licenses)
+ {
+ node.Nodes.Add(LicenseToNode(license));
+ } // foreach
+ } // AddLicensesNodes
+
+ public TreeNode LicensedItemToNode(LicensedItem item)
+ {
+ if (item == null) throw new ArgumentNullException(nameof(item));
+
+ var image = item switch
+ {
+ LicensedLibrary _ => _images.LicensedLibrary,
+ LicensedInstaller _ => _images.LicensedInstaller,
+ LicensedProgram program => program.IsGuiApp ? _images.LicensedProgramGui : _images.LicensedProgramCli,
+ _ => _images.LicensedUnknown
+ };
+
+ var node = new TreeNode(item.Name ?? Resources.NoName, image, image) { Tag = item };
+ if (!item.TermsConditionsSpecified) return node;
+
+ image = _images.TermsAndConditionsNode;
+ var terms = new TreeNode(Resources.TermsAndConditionsNode, image, image) { Tag = item.TermsConditions };
+ foreach (var term in item.TermsConditions)
+ {
+ string name;
+
+ try
+ {
+ if (string.IsNullOrEmpty(term.Language))
+ {
+ name = "(Default)";
+ }
+ else
+ {
+ var culture = CultureInfo.GetCultureInfo(term.Language);
+ name = $"{culture.DisplayName} ({culture.NativeName})";
+ } // if-else
+ }
+ catch (CultureNotFoundException)
+ {
+ name = $"({term.Language})";
+ } // try-catch
+
+ image = _images.TermsAndConditions;
+ var termNode = new TreeNode(name, image, image) { Tag = term };
+ terms.Nodes.Add(termNode);
+ } // foreach term
+
+ node.Nodes.Add(terms);
+ return node;
+ } // LicensedItemToNode
+
+ public TreeNode ThirdPartyDependencyToNode(ThirdPartyDependency dependency)
+ {
+ var image = dependency.Type switch
+ {
+ ThirdPartyDependencyType.ImageLibrary => _images.DependencyImageLibrary,
+ ThirdPartyDependencyType.Library => _images.DependencyLibrary,
+ ThirdPartyDependencyType.NugetPackage => _images.DependencyNuget,
+ ThirdPartyDependencyType.Other => _images.DependencyUnknown,
+ ThirdPartyDependencyType.SourceCode => _images.DependencySourceCode,
+ _ => _images.DependencyUnknown
+ };
+
+ return new TreeNode(dependency.Name, image, image) { Tag = dependency };
+ } // ThirdPartyDependencyToNode
+
+ public TreeNode LibraryDependencyToNode(LibraryDependency library)
+ {
+ return new TreeNode(library.Name, _images.DependencyProject, _images.DependencyProject) { Tag = library };
+ } // LicenseToNode
+
+ public TreeNode LicenseToNode(License license)
+ {
+ return new TreeNode(license.Name ?? Resources.NoName, _images.License, _images.License) { Tag = license };
+ } // LicenseToNode
+ } // class LicensingDataUi
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/LicensingUiImages.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/LicensingUiImages.cs
new file mode 100644
index 00000000..a5ee75db
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/LicensingUiImages.cs
@@ -0,0 +1,172 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Drawing;
+using System.Windows.Forms;
+using AlphaCentaury.Licensing.Data.Ui.Properties;
+
+namespace AlphaCentaury.Licensing.Data.Ui
+{
+ public class LicensingUiImages
+ {
+ public const string KeyLicensingData = "LicensingData";
+ public const string KeyLicensedProgramCli = "ApplicationCli";
+ public const string KeyLicensedProgramGui = "ApplicationGui";
+ public const string KeyLicensedLibrary = "LicensedLibrary";
+ public const string KeyLicensedInstaller = "LicensedInstaller";
+ public const string KeyLicensedUnknown = "LicensedUnknown";
+ public const string KeyDependencies = "Dependencies";
+ public const string KeyDependenciesLibraries = "DependenciesLibraries";
+ public const string KeyDependenciesThirdParty = "DependenciesThirdParty";
+ public const string KeyDependencyImageLibrary = "ImageLibrary";
+ public const string KeyDependencyLibrary = "Library";
+ public const string KeyDependencyNuget = "nuget";
+ public const string KeyDependencyProject = "Project";
+ public const string KeyDependencySourceCode = "SourceCode";
+ public const string KeyDependencyUnknown = "Unknown";
+ public const string KeyLicenses = "Licenses";
+ public const string KeyLicense = "License";
+ public const string KeyTermsAndConditionsNode = "TermsConditionsList";
+ public const string KeyTermsAndConditions = "TermsConditions";
+
+ private readonly ImageList _list;
+
+ public LicensingUiImages(ImageList list)
+ {
+ _list = list;
+
+ var images = list.Images;
+ LicensingData = images.IndexOfKey(KeyLicensingData);
+ LicensedProgramCli = images.IndexOfKey(KeyLicensedProgramCli);
+ LicensedProgramGui = images.IndexOfKey(KeyLicensedProgramGui);
+ LicensedLibrary = images.IndexOfKey(KeyLicensedLibrary);
+ LicensedInstaller = images.IndexOfKey(KeyLicensedInstaller);
+ LicensedUnknown = images.IndexOfKey(KeyLicensedUnknown);
+ Dependencies = images.IndexOfKey(KeyDependencies);
+ DependenciesLibraries = images.IndexOfKey(KeyDependenciesLibraries);
+ DependenciesThirdParty = images.IndexOfKey(KeyDependenciesThirdParty);
+ DependencyImageLibrary = images.IndexOfKey(KeyDependencyImageLibrary);
+ DependencyLibrary = images.IndexOfKey(KeyDependencyLibrary);
+ DependencyNuget = images.IndexOfKey(KeyDependencyNuget);
+ DependencyProject = images.IndexOfKey(KeyDependencyProject);
+ DependencySourceCode = images.IndexOfKey(KeyDependencySourceCode);
+ DependencyUnknown = images.IndexOfKey(KeyDependencyUnknown);
+ Licenses = images.IndexOfKey(KeyLicenses);
+ License = images.IndexOfKey(KeyLicense);
+ TermsAndConditionsNode = images.IndexOfKey(KeyTermsAndConditionsNode);
+ TermsAndConditions = images.IndexOfKey(KeyTermsAndConditions);
+ } // constructor
+
+ public int this[string key] => _list.Images.IndexOfKey(key);
+ public Image this[int index] => _list.Images[index];
+
+ public int LicensingData { get; }
+ public int LicensedProgramCli { get; }
+ public int LicensedProgramGui { get; }
+ public int LicensedLibrary { get; }
+ public int LicensedInstaller { get; }
+ public int LicensedUnknown { get; }
+ public int Dependencies { get; }
+ public int DependenciesLibraries { get; }
+ public int DependenciesThirdParty { get; }
+ public int DependencyImageLibrary { get; }
+ public int DependencyLibrary { get; }
+ public int DependencyNuget { get; }
+ public int DependencyProject { get; }
+ public int DependencySourceCode { get; }
+ public int DependencyUnknown { get; }
+ public int Licenses { get; }
+ public int License { get; }
+ public int TermsAndConditionsNode { get; }
+ public int TermsAndConditions { get; }
+
+ public static void GetImageListSmall(ImageList list)
+ {
+ list.Images.Clear();
+ list.ColorDepth = ColorDepth.Depth32Bit;
+ list.ImageSize = new Size(16, 16);
+ list.Images.Add(KeyLicensingData, Resources.Certificate_16x);
+ list.Images.Add(KeyLicensedProgramCli, Resources.ApplicationCli_16x);
+ list.Images.Add(KeyLicensedProgramGui, Resources.ApplicationGui_16x);
+ list.Images.Add(KeyLicensedLibrary, Resources.Library_16x);
+ list.Images.Add(KeyLicensedInstaller, Resources.Installer_16x);
+ list.Images.Add(KeyLicensedUnknown, Resources.LicensedUnknown_16x);
+ list.Images.Add(KeyDependencies, Resources.Dependencies_16x);
+ list.Images.Add(KeyDependenciesLibraries, Resources.Library_16x);
+ list.Images.Add(KeyDependenciesThirdParty, Resources.ThirdParty_16x);
+ list.Images.Add(KeyDependencyImageLibrary, Resources.ImageLibrary_16x);
+ list.Images.Add(KeyDependencyLibrary, Resources.Library_16x);
+ list.Images.Add(KeyDependencyProject, Resources.Link_16x);
+ list.Images.Add(KeyDependencyNuget, Resources.nuget_16x);
+ list.Images.Add(KeyDependencySourceCode, Resources.SourceCode_16x);
+ list.Images.Add(KeyDependencyUnknown, Resources.Unknown_16x);
+ list.Images.Add(KeyLicenses, Resources.Certificate_16x);
+ list.Images.Add(KeyLicense, Resources.LicenseFile_16x);
+ list.Images.Add(KeyTermsAndConditionsNode, Resources.TermsConditionsList_16x);
+ list.Images.Add(KeyTermsAndConditions, Resources.TermsConditions_16x);
+ } // GetImageListSmall
+
+ public static void GetImageListMedium(ImageList list)
+ {
+ list.Images.Clear();
+ list.ColorDepth = ColorDepth.Depth32Bit;
+ list.ImageSize = new Size(24, 24);
+ list.Images.Add(KeyLicensingData, Resources.Certificate_24x);
+ list.Images.Add(KeyLicensedProgramCli, Resources.ApplicationCli_24x);
+ list.Images.Add(KeyLicensedProgramGui, Resources.ApplicationGui_24x);
+ list.Images.Add(KeyLicensedLibrary, Resources.Library_24x);
+ list.Images.Add(KeyLicensedInstaller, Resources.Installer_24x);
+ list.Images.Add(KeyLicensedUnknown, Resources.LicensedUnknown_24x);
+ list.Images.Add(KeyDependencies, Resources.Dependencies_24x);
+ list.Images.Add(KeyDependenciesLibraries, Resources.Library_24x);
+ list.Images.Add(KeyDependenciesThirdParty, Resources.ThirdParty_24x);
+ list.Images.Add(KeyDependencyImageLibrary, Resources.ImageLibrary_24x);
+ list.Images.Add(KeyDependencyLibrary, Resources.Library_24x);
+ list.Images.Add(KeyDependencyProject, Resources.Link_24x);
+ list.Images.Add(KeyDependencyNuget, Resources.nuget_24x);
+ list.Images.Add(KeyDependencySourceCode, Resources.SourceCode_24x);
+ list.Images.Add(KeyDependencyUnknown, Resources.Unknown_24x);
+ list.Images.Add(KeyLicenses, Resources.Certificate_24x);
+ list.Images.Add(KeyLicense, Resources.LicenseFile_24x);
+ list.Images.Add(KeyTermsAndConditionsNode, Resources.TermsConditionsList_24x);
+ list.Images.Add(KeyTermsAndConditions, Resources.TermsConditions_24x);
+
+ } // GetImageListMedium
+
+ public static void GetImageListLarge(ImageList list)
+ {
+ list.Images.Clear();
+ list.ColorDepth = ColorDepth.Depth32Bit;
+ list.ImageSize = new Size(32, 32);
+ list.Images.Add(KeyLicensingData, Resources.Certificate_32x);
+ list.Images.Add(KeyLicensedProgramCli, Resources.ApplicationCli_32x);
+ list.Images.Add(KeyLicensedProgramGui, Resources.ApplicationGui_32x);
+ list.Images.Add(KeyLicensedLibrary, Resources.Library_32x);
+ list.Images.Add(KeyLicensedInstaller, Resources.Installer_32x);
+ list.Images.Add(KeyLicensedUnknown, Resources.LicensedUnknown_32x);
+ list.Images.Add(KeyDependencies, Resources.Dependencies_32x);
+ list.Images.Add(KeyDependenciesLibraries, Resources.Library_32x);
+ list.Images.Add(KeyDependenciesThirdParty, Resources.ThirdParty_32x);
+ list.Images.Add(KeyDependencyImageLibrary, Resources.ImageLibrary_32x);
+ list.Images.Add(KeyDependencyLibrary, Resources.Library_32x);
+ list.Images.Add(KeyDependencyProject, Resources.Link_32x);
+ list.Images.Add(KeyDependencyNuget, Resources.nuget_32x);
+ list.Images.Add(KeyDependencySourceCode, Resources.SourceCode_32x);
+ list.Images.Add(KeyDependencyUnknown, Resources.Unknown_32x);
+ list.Images.Add(KeyLicenses, Resources.Certificate_32x);
+ list.Images.Add(KeyLicense, Resources.LicenseFile_32x);
+ list.Images.Add(KeyTermsAndConditionsNode, Resources.TermsConditionsList_32x);
+ list.Images.Add(KeyTermsAndConditions, Resources.TermsConditions_32x);
+ } // GetImageListLarge
+ } // class LicensingUiImages
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Properties/AssemblyInfo.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..0d6d92e0
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Properties/AssemblyInfo.cs
@@ -0,0 +1,40 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("AlphaCentaury.Licensing.Data.Ui")]
+[assembly: AssemblyDescription("AlphaCentaury UI for licensing data")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCopyright(SolutionVersion.DefaultCopyright)]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("30bbda25-ba29-43a4-888c-4ee2896697ce")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+[assembly: AssemblyVersion(SolutionVersion.DefaultAssemblyVersion)]
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Properties/Resources.Designer.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Properties/Resources.Designer.cs
new file mode 100644
index 00000000..e314e59a
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Properties/Resources.Designer.cs
@@ -0,0 +1,658 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace AlphaCentaury.Licensing.Data.Ui.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AlphaCentaury.Licensing.Data.Ui.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap ApplicationCli_16x {
+ get {
+ object obj = ResourceManager.GetObject("ApplicationCli_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap ApplicationCli_24x {
+ get {
+ object obj = ResourceManager.GetObject("ApplicationCli_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap ApplicationCli_32x {
+ get {
+ object obj = ResourceManager.GetObject("ApplicationCli_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap ApplicationGui_16x {
+ get {
+ object obj = ResourceManager.GetObject("ApplicationGui_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap ApplicationGui_24x {
+ get {
+ object obj = ResourceManager.GetObject("ApplicationGui_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap ApplicationGui_32x {
+ get {
+ object obj = ResourceManager.GetObject("ApplicationGui_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Certificate_16x {
+ get {
+ object obj = ResourceManager.GetObject("Certificate_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Certificate_24x {
+ get {
+ object obj = ResourceManager.GetObject("Certificate_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Certificate_32x {
+ get {
+ object obj = ResourceManager.GetObject("Certificate_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Dependencies_16x {
+ get {
+ object obj = ResourceManager.GetObject("Dependencies_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Dependencies_24x {
+ get {
+ object obj = ResourceManager.GetObject("Dependencies_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Dependencies_32x {
+ get {
+ object obj = ResourceManager.GetObject("Dependencies_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Libraries.
+ ///
+ internal static string DependenciesLibrariesNode {
+ get {
+ return ResourceManager.GetString("DependenciesLibrariesNode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Dependencies.
+ ///
+ internal static string DependenciesNode {
+ get {
+ return ResourceManager.GetString("DependenciesNode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Third-party.
+ ///
+ internal static string DependenciesThirdPartyNode {
+ get {
+ return ResourceManager.GetString("DependenciesThirdPartyNode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Libraries.
+ ///
+ internal static string GroupLibrariesName {
+ get {
+ return ResourceManager.GetString("GroupLibrariesName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Third-party components.
+ ///
+ internal static string GroupThirdPartyName {
+ get {
+ return ResourceManager.GetString("GroupThirdPartyName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap ImageLibrary_16x {
+ get {
+ object obj = ResourceManager.GetObject("ImageLibrary_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap ImageLibrary_24x {
+ get {
+ object obj = ResourceManager.GetObject("ImageLibrary_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap ImageLibrary_32x {
+ get {
+ object obj = ResourceManager.GetObject("ImageLibrary_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Installer_16x {
+ get {
+ object obj = ResourceManager.GetObject("Installer_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Installer_24x {
+ get {
+ object obj = ResourceManager.GetObject("Installer_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Installer_32x {
+ get {
+ object obj = ResourceManager.GetObject("Installer_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Library_16x {
+ get {
+ object obj = ResourceManager.GetObject("Library_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Library_24x {
+ get {
+ object obj = ResourceManager.GetObject("Library_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Library_32x {
+ get {
+ object obj = ResourceManager.GetObject("Library_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap LicensedUnknown_16x {
+ get {
+ object obj = ResourceManager.GetObject("LicensedUnknown_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap LicensedUnknown_24x {
+ get {
+ object obj = ResourceManager.GetObject("LicensedUnknown_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap LicensedUnknown_32x {
+ get {
+ object obj = ResourceManager.GetObject("LicensedUnknown_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap LicenseFile_16x {
+ get {
+ object obj = ResourceManager.GetObject("LicenseFile_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap LicenseFile_24x {
+ get {
+ object obj = ResourceManager.GetObject("LicenseFile_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap LicenseFile_32x {
+ get {
+ object obj = ResourceManager.GetObject("LicenseFile_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Licenses.
+ ///
+ internal static string LicensesNode {
+ get {
+ return ResourceManager.GetString("LicensesNode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Link_16x {
+ get {
+ object obj = ResourceManager.GetObject("Link_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Link_24x {
+ get {
+ object obj = ResourceManager.GetObject("Link_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Link_32x {
+ get {
+ object obj = ResourceManager.GetObject("Link_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Link_48x {
+ get {
+ object obj = ResourceManager.GetObject("Link_48x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to <no name>.
+ ///
+ internal static string NoName {
+ get {
+ return ResourceManager.GetString("NoName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap nuget_16x {
+ get {
+ object obj = ResourceManager.GetObject("nuget_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap nuget_24x {
+ get {
+ object obj = ResourceManager.GetObject("nuget_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap nuget_32x {
+ get {
+ object obj = ResourceManager.GetObject("nuget_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap SourceCode_16x {
+ get {
+ object obj = ResourceManager.GetObject("SourceCode_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap SourceCode_24x {
+ get {
+ object obj = ResourceManager.GetObject("SourceCode_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap SourceCode_32x {
+ get {
+ object obj = ResourceManager.GetObject("SourceCode_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Terms and Conditions.
+ ///
+ internal static string TermsAndConditionsNode {
+ get {
+ return ResourceManager.GetString("TermsAndConditionsNode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap TermsConditions_16x {
+ get {
+ object obj = ResourceManager.GetObject("TermsConditions_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap TermsConditions_24x {
+ get {
+ object obj = ResourceManager.GetObject("TermsConditions_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap TermsConditions_32x {
+ get {
+ object obj = ResourceManager.GetObject("TermsConditions_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap TermsConditions_48x {
+ get {
+ object obj = ResourceManager.GetObject("TermsConditions_48x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap TermsConditionsList_16x {
+ get {
+ object obj = ResourceManager.GetObject("TermsConditionsList_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap TermsConditionsList_24x {
+ get {
+ object obj = ResourceManager.GetObject("TermsConditionsList_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap TermsConditionsList_32x {
+ get {
+ object obj = ResourceManager.GetObject("TermsConditionsList_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap TermsConditionsList_48x {
+ get {
+ object obj = ResourceManager.GetObject("TermsConditionsList_48x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap ThirdParty_16x {
+ get {
+ object obj = ResourceManager.GetObject("ThirdParty_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap ThirdParty_24x {
+ get {
+ object obj = ResourceManager.GetObject("ThirdParty_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap ThirdParty_32x {
+ get {
+ object obj = ResourceManager.GetObject("ThirdParty_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Unknown_16x {
+ get {
+ object obj = ResourceManager.GetObject("Unknown_16x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Unknown_24x {
+ get {
+ object obj = ResourceManager.GetObject("Unknown_24x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Unknown_32x {
+ get {
+ object obj = ResourceManager.GetObject("Unknown_32x", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Properties/Resources.es.resx b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Properties/Resources.es.resx
new file mode 100644
index 00000000..2d90113c
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Properties/Resources.es.resx
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Bibliotecas
+
+
+ Dependencias
+
+
+ Terceras partes
+
+
+ Bibliotecas
+
+
+ Componentes de terceras partes
+
+
+ Licencias
+
+
+ <sin nombre>
+
+
+ Términos y condiciones de uso
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Properties/Resources.resx b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Properties/Resources.resx
new file mode 100644
index 00000000..5c633d6d
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Properties/Resources.resx
@@ -0,0 +1,298 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\resources\applicationcli_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\applicationcli_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\applicationcli_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\applicationgui_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\applicationgui_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\applicationgui_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\certificate_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\certificate_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\certificate_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ Libraries
+
+
+ Dependencies
+
+
+ Third-party
+
+
+ ..\resources\dependencies_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\dependencies_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\dependencies_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ Libraries
+
+
+ Third-party components
+
+
+ ..\resources\imagelibrary_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\imagelibrary_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\imagelibrary_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\installer_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\installer_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\installer_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\library_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\library_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\library_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\licensedunknown_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\licensedunknown_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\licensedunknown_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\licensefile_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\licensefile_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\licensefile_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ Licenses
+
+
+ ..\resources\link_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\link_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\link_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\link_48x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ <no name>
+
+
+ ..\resources\nuget_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\nuget_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\nuget_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\sourcecode_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\sourcecode_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\sourcecode_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ Terms and Conditions
+
+
+ ..\resources\termsconditionslist_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\termsconditionslist_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\termsconditionslist_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\termsconditionslist_48x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\termsconditions_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\termsconditions_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\termsconditions_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\termsconditions_48x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\thirdparty_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\thirdparty_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\thirdparty_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\unknown_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\unknown_24x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\resources\unknown_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli.svg
new file mode 100644
index 00000000..230ac1d1
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli_16x.png
new file mode 100644
index 00000000..a08399b5
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli_24x.png
new file mode 100644
index 00000000..fcef02fa
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli_32x.png
new file mode 100644
index 00000000..95a67349
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli_48x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli_48x.png
new file mode 100644
index 00000000..1ea985ed
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationCli_48x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui.svg
new file mode 100644
index 00000000..3a74f39d
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui_16x.png
new file mode 100644
index 00000000..06487954
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui_24x.png
new file mode 100644
index 00000000..014457da
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui_32x.png
new file mode 100644
index 00000000..e561e7d2
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui_48x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui_48x.png
new file mode 100644
index 00000000..280092ed
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ApplicationGui_48x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Certificate.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Certificate.svg
new file mode 100644
index 00000000..2178e9ab
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Certificate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Certificate_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Certificate_16x.png
new file mode 100644
index 00000000..c6db9967
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Certificate_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Certificate_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Certificate_24x.png
new file mode 100644
index 00000000..8d645d86
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Certificate_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Certificate_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Certificate_32x.png
new file mode 100644
index 00000000..49006ba9
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Certificate_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Dependencies.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Dependencies.svg
new file mode 100644
index 00000000..39bd11c1
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Dependencies.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Dependencies_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Dependencies_16x.png
new file mode 100644
index 00000000..0e0e13d0
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Dependencies_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Dependencies_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Dependencies_24x.png
new file mode 100644
index 00000000..ebc1f8f3
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Dependencies_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Dependencies_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Dependencies_32x.png
new file mode 100644
index 00000000..98f9ae33
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Dependencies_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Folder.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Folder.svg
new file mode 100644
index 00000000..481bb01a
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Folder.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/FolderOpen.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/FolderOpen.svg
new file mode 100644
index 00000000..4c8a03f5
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/FolderOpen.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/FolderOpen_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/FolderOpen_16x.png
new file mode 100644
index 00000000..c1684f48
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/FolderOpen_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/FolderOpen_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/FolderOpen_24x.png
new file mode 100644
index 00000000..2e2d909f
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/FolderOpen_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/FolderOpen_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/FolderOpen_32x.png
new file mode 100644
index 00000000..ad3778bb
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/FolderOpen_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Folder_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Folder_16x.png
new file mode 100644
index 00000000..ccb1725f
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Folder_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Folder_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Folder_24x.png
new file mode 100644
index 00000000..55f30fb8
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Folder_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Folder_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Folder_32x.png
new file mode 100644
index 00000000..1606b25d
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Folder_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ImageLibrary.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ImageLibrary.svg
new file mode 100644
index 00000000..152f360d
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ImageLibrary.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ImageLibrary_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ImageLibrary_16x.png
new file mode 100644
index 00000000..73c0dd72
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ImageLibrary_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ImageLibrary_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ImageLibrary_24x.png
new file mode 100644
index 00000000..dc4c9120
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ImageLibrary_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ImageLibrary_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ImageLibrary_32x.png
new file mode 100644
index 00000000..304aa64d
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ImageLibrary_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer.svg
new file mode 100644
index 00000000..baecb080
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer_16x.png
new file mode 100644
index 00000000..1871d63c
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer_24x.png
new file mode 100644
index 00000000..31735860
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer_32x.png
new file mode 100644
index 00000000..f88a9c71
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer_48x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer_48x.png
new file mode 100644
index 00000000..092e3fdd
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Installer_48x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Library.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Library.svg
new file mode 100644
index 00000000..0ffa85f6
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Library.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Library_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Library_16x.png
new file mode 100644
index 00000000..77e9f0e0
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Library_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Library_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Library_24x.png
new file mode 100644
index 00000000..68c60b88
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Library_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Library_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Library_32x.png
new file mode 100644
index 00000000..3c7c4e48
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Library_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile.svg
new file mode 100644
index 00000000..dca155a3
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile_16x.png
new file mode 100644
index 00000000..f1fcbaf2
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile_24x.png
new file mode 100644
index 00000000..7d711819
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile_32x.png
new file mode 100644
index 00000000..ee2feb28
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile_48x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile_48x.png
new file mode 100644
index 00000000..4ef06c77
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicenseFile_48x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicensedUnknown.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicensedUnknown.svg
new file mode 100644
index 00000000..9e3deddf
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicensedUnknown.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicensedUnknown_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicensedUnknown_16x.png
new file mode 100644
index 00000000..8eae2a4e
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicensedUnknown_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicensedUnknown_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicensedUnknown_24x.png
new file mode 100644
index 00000000..2641f9e6
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicensedUnknown_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicensedUnknown_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicensedUnknown_32x.png
new file mode 100644
index 00000000..47b42cf4
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/LicensedUnknown_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link.svg
new file mode 100644
index 00000000..4a7f396d
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link_16x.png
new file mode 100644
index 00000000..42f34c48
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link_24x.png
new file mode 100644
index 00000000..b76dbbd7
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link_32x.png
new file mode 100644
index 00000000..1c2a0d0d
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link_48x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link_48x.png
new file mode 100644
index 00000000..596a0439
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Link_48x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/SourceCode.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/SourceCode.svg
new file mode 100644
index 00000000..ab98ce2e
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/SourceCode.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/SourceCode_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/SourceCode_16x.png
new file mode 100644
index 00000000..3e50591e
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/SourceCode_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/SourceCode_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/SourceCode_24x.png
new file mode 100644
index 00000000..dff39928
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/SourceCode_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/SourceCode_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/SourceCode_32x.png
new file mode 100644
index 00000000..1f78cf61
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/SourceCode_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions.svg
new file mode 100644
index 00000000..48f22efd
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList.svg
new file mode 100644
index 00000000..9e174147
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList_16x.png
new file mode 100644
index 00000000..1d95f785
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList_24x.png
new file mode 100644
index 00000000..1f13846a
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList_32x.png
new file mode 100644
index 00000000..0f81a102
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList_48x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList_48x.png
new file mode 100644
index 00000000..f3048cc1
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditionsList_48x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions_16x.png
new file mode 100644
index 00000000..b2f34f68
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions_24x.png
new file mode 100644
index 00000000..ad4e709e
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions_32x.png
new file mode 100644
index 00000000..4b431f84
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions_48x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions_48x.png
new file mode 100644
index 00000000..518930ca
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/TermsConditions_48x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty.svg
new file mode 100644
index 00000000..b68167ca
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty_16x.png
new file mode 100644
index 00000000..2feee638
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty_24x.png
new file mode 100644
index 00000000..d33a30eb
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty_32x.png
new file mode 100644
index 00000000..3bd68937
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty_48x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty_48x.png
new file mode 100644
index 00000000..7a635930
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/ThirdParty_48x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Unknown.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Unknown.svg
new file mode 100644
index 00000000..263782e6
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Unknown.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Unknown_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Unknown_16x.png
new file mode 100644
index 00000000..a23a93a1
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Unknown_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Unknown_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Unknown_24x.png
new file mode 100644
index 00000000..cdc8b14b
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Unknown_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Unknown_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Unknown_32x.png
new file mode 100644
index 00000000..06afbfd2
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/Unknown_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/nuget.svg b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/nuget.svg
new file mode 100644
index 00000000..a27b5d34
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/nuget.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/nuget_16x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/nuget_16x.png
new file mode 100644
index 00000000..80527069
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/nuget_16x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/nuget_24x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/nuget_24x.png
new file mode 100644
index 00000000..af6aa249
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/nuget_24x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/nuget_32x.png b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/nuget_32x.png
new file mode 100644
index 00000000..a260b162
Binary files /dev/null and b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/Resources/nuget_32x.png differ
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/license.txt b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/license.txt
new file mode 100644
index 00000000..098f4c54
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/license.txt
@@ -0,0 +1,103 @@
+##############################################################################
+##
+## Library 'AlphaCentaury.Licensing.Data.Ui'
+##
+##############################################################################
+##
+## IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+## by Codeplex/GitHub user AlphaCentaury
+##
+## Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+##
+## http://www.alphacentaury.org/movistartv
+## https://github.com/AlphaCentaury
+##
+##############################################################################
+
+A.- Terms and conditions
+==============================================================================
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+
+B.- Licenses
+==============================================================================
+
+ * Microsoft Reciprocal License (Ms-RL)
+ * The MIT License (MIT)
+
+
+////////////////////////////////////////////////////////////
+//
+// Microsoft Reciprocal License (Ms-RL)
+//
+////////////////////////////////////////////////////////////
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+////////////////////////////////////////////////////////////
+
+>>> 'Microsoft Reciprocal License (Ms-RL)' applies to the following components: <<<
+
+1. AlphaCentaury.Licensing.Data
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+2. AlphaCentaury.Licensing.Data.Ui
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+
+
+////////////////////////////////////////////////////////////
+//
+// The MIT License (MIT)
+//
+////////////////////////////////////////////////////////////
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+////////////////////////////////////////////////////////////
+
+>>> 'The MIT License (MIT)' applies to the following THIRD-PARTY components: <<<
+
+1. JetBrains.Annotations
+------------------------------
+'nuget' package by JetBrains
+Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/licensing.xml b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/licensing.xml
new file mode 100644
index 00000000..a2d546cd
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/licensing.xml
@@ -0,0 +1,126 @@
+
+
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+
+
+
+
+
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ AlphaCentaury.Licensing.Data
+ Library
+
+
+
+
+ MIT
+ JetBrains
+ Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
+
+
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/packages.config b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/packages.config
new file mode 100644
index 00000000..52cb031c
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data.Ui/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/AlphaCentaury.Licensing.Data.csproj b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/AlphaCentaury.Licensing.Data.csproj
new file mode 100644
index 00000000..c17c632f
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/AlphaCentaury.Licensing.Data.csproj
@@ -0,0 +1,89 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {42B71DB3-2E34-43BB-BF87-88F422BCF861}
+ Library
+ Properties
+ AlphaCentaury.Licensing.Data
+ AlphaCentaury.Licensing.Data
+ v4.6.2
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ 8.0
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ 8.0
+
+
+
+ ..\..\packages\JetBrains.Annotations.2019.1.3\lib\net20\JetBrains.Annotations.dll
+
+
+
+
+
+
+
+ Properties\AssemblySolutionInfo.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/DependencyLibraryNameComparer.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/DependencyLibraryNameComparer.cs
new file mode 100644
index 00000000..b3001210
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/DependencyLibraryNameComparer.cs
@@ -0,0 +1,72 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using AlphaCentaury.Licensing.Data.Serialization;
+using JetBrains.Annotations;
+
+namespace AlphaCentaury.Licensing.Data
+{
+ public sealed class DependencyLibraryNameComparer : IEqualityComparer, IComparer
+ {
+ private readonly StringComparison _comparisonType;
+
+ public DependencyLibraryNameComparer()
+ {
+ _comparisonType = StringComparison.InvariantCulture;
+ } // constructor
+
+ [PublicAPI]
+ public DependencyLibraryNameComparer(StringComparison comparisonType)
+ {
+ _comparisonType = comparisonType;
+ } // constructor
+
+ #region IEqualityComparer implementation
+
+ public bool Equals(LibraryDependency x, LibraryDependency y)
+ {
+ if (ReferenceEquals(x, y)) return true;
+ if (x == null) return false;
+
+ if (!string.Equals(x.Name, y?.Name, _comparisonType)) return false;
+ return string.Equals(x.Assembly, y?.Assembly, _comparisonType);
+ } // Equals
+
+ public int GetHashCode(LibraryDependency obj)
+ {
+ return obj.Name.GetHashCode();
+ } // GetHashCode
+
+ #endregion
+
+ #region IComparable implementation
+
+ public int Compare(LibraryDependency x, LibraryDependency y)
+ {
+ if (ReferenceEquals(x, y)) return 0;
+ if (y == null) return 1; // x goes after y
+ if (x == null) return -1; // x goes before y
+
+ var diffType = x.DependencyType - y.DependencyType;
+ if (diffType != 0) return diffType;
+
+ var compare = string.Compare(x.Name, y.Name, _comparisonType);
+ if (compare != 0) return compare;
+ return string.Compare(x.Assembly, y.Assembly, _comparisonType);
+ } // Compare
+
+ #endregion
+ } // DependencyLibraryNameComparer
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/ExpandDependencies.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/ExpandDependencies.cs
new file mode 100644
index 00000000..08e60099
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/ExpandDependencies.cs
@@ -0,0 +1,193 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Net.Sockets;
+using AlphaCentaury.Licensing.Data.Serialization;
+
+namespace AlphaCentaury.Licensing.Data
+{
+ internal class ExpandDependencies
+ {
+ private readonly List _dataList;
+ private readonly Dictionary _libraries;
+ private readonly Dictionary _allLicenses;
+
+ public ExpandDependencies(List list)
+ {
+ // validate arguments
+ if (list == null) throw new ArgumentNullException(nameof(list));
+ if (list.Count == 0) return;
+ _dataList = list;
+
+ // create dictionary of libraries
+ _libraries = list.ToDictionary(data => data.Licensed.Name);
+
+ // create dictionary of licenses
+ _allLicenses = new Dictionary(StringComparer.InvariantCultureIgnoreCase);
+ } // constructor
+
+ public void Expand()
+ {
+ if (_dataList.Count == 0) return;
+
+ // validate data
+ var q = from data in _dataList
+ where (data.Licensed == null)
+ select data;
+ if (q.FirstOrDefault() != null) throw new ArgumentException();
+
+ // create dictionary of licenses
+ var licenses = from data in _dataList
+ where data.LicensesSpecified
+ from license in data.Licenses
+ select license;
+ licenses.ForEach(license => _allLicenses[license.Id] = license);
+
+ AddIndirectLibraryDependencies();
+ AddIndirectThirdParty();
+ SortThirdParty();
+ AddMissingLicenses();
+ } // Expand
+
+ private void AddIndirectLibraryDependencies()
+ {
+ // clear indirect dependencies
+ _dataList.Where(data => data.Dependencies != null).ForEach(data =>
+ {
+ data.Dependencies.Libraries?.RemoveAll(library => library.DependencyType == LicensedDependencyType.Indirect);
+ data.Dependencies.ThirdParty?.RemoveAll(component => component.DependencyType == LicensedDependencyType.Indirect);
+ });
+
+ // re-add indirect dependencies
+ var comparer = new DependencyLibraryNameComparer();
+ var visited = new HashSet(StringComparer.InvariantCulture);
+ _dataList.ForEach(data =>
+ {
+ AddIndirectLibraryDependencies(data, visited);
+ data.Dependencies?.Libraries?.Sort(comparer);
+ });
+ } // AddIndirectLibraryDependencies
+ private void SortThirdParty()
+ {
+ var comparer = new ThirdPartyDependencyNameComparer();
+ _dataList.Where(data => data.Dependencies?.ThirdPartySpecified ?? false).ForEach(data =>
+ {
+ data.Dependencies.ThirdParty.Sort(comparer);
+ });
+ } // ShortThirdParty
+
+ private void AddIndirectThirdParty()
+ {
+ _dataList.Where(data => data.Dependencies?.Libraries != null).ForEach(AddIndirectThirdParty);
+ } // AddIndirectThirdParty
+
+ private void AddIndirectLibraryDependencies(LicensingData data, HashSet visited)
+ {
+ if (data.Dependencies?.Libraries == null) return;
+
+ // avoid circular references
+ if (visited.Contains(data.Licensed.Name)) return;
+ visited.Add(data.Licensed.Name);
+
+ // add indirect library dependencies
+ var q = from dependency in data.Dependencies.Libraries
+ select _libraries[dependency.Name];
+ q.ForEach(AddIndirectLibraryDependencies, visited);
+
+ // create hashset to avoid adding duplicated dependencies
+ var added = new HashSet();
+ data.Dependencies.Libraries.ForEach(lib => added.Add(lib.Name ?? throw new ArgumentException()));
+
+ var libraries = (from dependency in data.Dependencies.Libraries
+ select _libraries[dependency.Name]).ToArray();
+
+ var dependencies = from library in libraries
+ where library.Dependencies?.Libraries != null
+ from dependency in library.Dependencies.Libraries
+ select dependency.Clone();
+
+ dependencies.ForEach(dependency =>
+ {
+ if (added.Contains(dependency.Name)) return;
+
+ var library = dependency.Clone();
+ library.DependencyType = LicensedDependencyType.Indirect;
+ data.Dependencies.Libraries.Add(library);
+ added.Add(dependency.Name);
+ });
+ } // AddIndirectLibraryDependencies
+
+ private void AddIndirectThirdParty(LicensingData data)
+ {
+ if ((data.Dependencies == null) || !data.Dependencies.LibrariesSpecified) return;
+
+ var added = new HashSet();
+ data.Dependencies.ThirdParty?.ForEach(component => added.Add(component.Name));
+
+ var q = from dependency in data.Dependencies.Libraries
+ let library = _libraries[dependency.Name]
+ where (library.Dependencies != null) && library.Dependencies.ThirdPartySpecified
+ from thirdParty in library.Dependencies.ThirdParty
+ select thirdParty.Clone();
+
+ q.ForEach(dependency =>
+ {
+ if (added.Contains(dependency.Name)) return;
+
+ dependency.DependencyType = LicensedDependencyType.Indirect;
+ data.Dependencies.ThirdParty ??= new List();
+ data.Dependencies.ThirdParty.Add(dependency);
+ added.Add(dependency.Name);
+ });
+
+ data.Dependencies.ThirdParty?.Sort(new ThirdPartyDependencyNameComparer());
+ } // AddIndirectThirdParty
+
+ private void AddMissingLicenses()
+ {
+ var q = from data in _dataList
+ where data.DependenciesSpecified
+ select data.Dependencies;
+
+ _dataList.Where(data => data.DependenciesSpecified).ForEach(data =>
+ {
+ var missingFromLibraries = MissingLicenses(data, data.Dependencies.Libraries);
+ var missingFromThirdParty = MissingLicenses(data, data.Dependencies.ThirdParty);
+ var missing = missingFromLibraries.Concat(missingFromThirdParty);
+
+ data.Licenses.AddRange(missing);
+ });
+
+ IEnumerable MissingLicenses(LicensingData data, IEnumerable list)
+ {
+ if (list == null) return Enumerable.Empty();
+
+ return from dependency in list
+ where !string.IsNullOrEmpty(dependency.LicenseId)
+ where data.GetLicense(dependency.LicenseId) == null
+ let license = GetLicenseFromPool(dependency.LicenseId)
+ where license != null
+ select license;
+ } // local MissingLicenses
+
+ License GetLicenseFromPool(string licenseId)
+ {
+ return _allLicenses.TryGetValue(licenseId, out var license) ? license : null;
+ } // local GetLicenseFromPool
+ } // AddMissingLicenses
+ } // class ExpandDependencies
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/GetLicensingUsage.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/GetLicensingUsage.cs
new file mode 100644
index 00000000..e32f9810
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/GetLicensingUsage.cs
@@ -0,0 +1,137 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using AlphaCentaury.Licensing.Data.Serialization;
+
+namespace AlphaCentaury.Licensing.Data
+{
+ internal class GetLicensingUsage
+ {
+ private readonly LicensingData _data;
+ private Dictionary _licenses;
+ private Dictionary> _libraries;
+ private Dictionary> _thirdParty;
+
+ public GetLicensingUsage(LicensingData data)
+ {
+ _data = data;
+ } // constructor
+
+ public LicensingUsage Get()
+ {
+ if (_data.Licenses == null) throw new InvalidDataException();
+ if (_data.Licenses.Count == 0) throw new InvalidDataException();
+
+ _licenses = new Dictionary(_data.Licenses.Count, StringComparer.InvariantCultureIgnoreCase);
+ _libraries = new Dictionary>(StringComparer.InvariantCultureIgnoreCase);
+ _thirdParty = new Dictionary>(StringComparer.InvariantCultureIgnoreCase);
+
+ foreach (var license in _data.Licenses)
+ {
+ _licenses.Add(license.Id, new LicenseAppliesTo
+ {
+ Libraries = new List(),
+ ThirdParty = new List()
+ });
+ _libraries.Add(license.Id, new HashSet(StringComparer.InvariantCulture));
+ _thirdParty.Add(license.Id, new HashSet(StringComparer.InvariantCulture));
+ } // foreach
+
+ AddLibrary(_data.Licensed.ConvertToLibraryDependency());
+ AddLibraries(_data.Dependencies?.Libraries);
+ AddThirdParty(_data.Dependencies?.ThirdParty);
+ Sort();
+
+ var result = new LicensingUsage
+ {
+ Licensed = _data.Licensed,
+ Usage = new List(_data.Licenses.Count)
+ };
+
+ foreach (var license in _data.Licenses)
+ {
+ var expanded = new LicenseUsage {License = license, AppliesTo = _licenses[license.Id]};
+ if (!expanded.AppliesTo.LibrariesSpecified && !expanded.AppliesTo.ThirdPartySpecified)
+ {
+ expanded.AppliesTo = null;
+ } // if
+
+ result.Usage.Add(expanded);
+ } // foreach license
+
+ return result;
+ } // Get
+
+ private void AddLibraries(IEnumerable libraries)
+ {
+ libraries?.ForEach(AddLibrary);
+ } // AddLibraries
+
+ private void AddLibrary(LibraryDependency library)
+ {
+ var key = $"{library.Name}:{library.Assembly}";
+ var set = _libraries[library.LicenseId];
+
+ if (set.Contains(key)) return;
+
+ _licenses[library.LicenseId].Libraries.Add(library);
+ set.Add(key);
+ } // AddLibrary
+
+ private void AddThirdParty(IEnumerable licensingThirdParty)
+ {
+ if (licensingThirdParty == null) return;
+ foreach (var dependency in licensingThirdParty)
+ {
+ var key = $"{dependency.Type}:{dependency.Name}";
+ var set = _thirdParty[dependency.LicenseId];
+
+ if (set.Contains(key)) continue;
+
+ _licenses[dependency.LicenseId].ThirdParty.Add(dependency);
+ set.Add(key);
+ } // foreach
+ } // AddThirdParty
+
+ private void Sort()
+ {
+ var libraryComparer = new DependencyLibraryNameComparer();
+ var thirdPartyComparer = new ThirdPartyDependencyNameComparer();
+
+ foreach (var item in _licenses)
+ {
+ var usedBy = item.Value;
+ if (usedBy.Libraries.Count == 0)
+ {
+ usedBy.Libraries = null;
+ }
+ else
+ {
+ usedBy.Libraries.Sort(libraryComparer);
+ } // if-else
+
+ if (usedBy.ThirdParty.Count == 0)
+ {
+ usedBy.ThirdParty = null;
+ }
+ else
+ {
+ usedBy.ThirdParty.Sort(thirdPartyComparer);
+ } // if-else
+ } // foreach
+ } // Sort
+ } // class GetLicensingUsage
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/ICloneable.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/ICloneable.cs
new file mode 100644
index 00000000..4bc557b2
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/ICloneable.cs
@@ -0,0 +1,22 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+
+namespace AlphaCentaury.Licensing.Data
+{
+ public interface ICloneable: ICloneable
+ {
+ new T Clone();
+ } // interface ICloneable
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/LICENSE.ES.MD b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/LICENSE.ES.MD
new file mode 100644
index 00000000..d63c7bf9
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/LICENSE.ES.MD
@@ -0,0 +1,108 @@
+# Biblioteca 'AlphaCentaury.Licensing.Data'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Términos y condiciones de uso
+
+Este COMPONENTE (el “SOFTWARE”), ya sea en forma de código binario o fuente, está **sujeto a los términos de la Licencia Recíproca de Microsoft _“Microsoft Reciprocal License” (Ms-RL)_**, excepto en lo relativo a componentes de terceras partes (“THIRD-PARTY”). \
+Todos los demás derechos están reservados por el/los autor(es) del software.
+
+**EL SOFTWARE SE PROPORCIONA “TAL CUAL”, SIN GARANTÍA DE NINGÚN TIPO**, expresa o implícita, incluyendo (pero no limitándose a) las garantías de comerciabilidad, idoneidad para un propósito particular y no infracción. \
+En ningún caso, los autores o titulares del Copyright serán responsables de ninguna reclamación, daños o cualquier otra responsabilidad, ya sea en una acción de contrato, agravio o cualquier otro motivo, con o sin relación con el software o el uso u otros aspectos del software.
+
+Todas las marcas comerciales, marcas de servicio, nombres comerciales, nombres de productos y logotipos son propiedad de sus respectivos propietarios.
+Su uso en el contexto de este software no constituye un respaldo ni apoyo por parte de sus respectivos propietarios.
+
+----------------------------------------------------------------------
+
+
+_A continuación se proporciona una traducción aproximada de la **Licencia recíproca de Microsoft (Ms-RL)** al español. Esta traducción carece de cualquier validez legal._
+
+Esta licencia rige el uso del software que lo acompaña. Si utiliza el software, usted acepta esta licencia. Si no acepta la licencia, no use el software.
+
+1. **Definiciones**
+
+ - Los términos “reproducir”, “reproducción”, “obras derivadas” y “distribución” tienen el mismo significado en este acuerdo de licencia que en la Ley de Derechos de Autor de EE. UU.
+ - Una “contribución” es el software original, o cualquier adición o cambio al software.
+ - Un “colaborador” es cualquier persona que distribuye su contribución bajo esta licencia.
+ - Las “patentes licenciadas” son declaraciones de patente de un contribuyente y que aplican directamente sobre su contribución.
+
+2. **Concesión de derechos**
+
+ - (A) _Concesión de derechos de autor:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le otorga una licencia de copyright no exclusiva, mundial y libre de regalías para reproducir su contribución, preparar crear trabajos derivados de su contribución, y distribuir su contribución o cualquier trabajo derivado que usted cree.
+ - (B) _Concesión de patentes:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le concede una licencia no exclusiva, mundial y libre de regalías bajo sus patentes autorizadas para realizar, haber realizado, usar, vender, ofrecer para la venta, importar y/o disponer de su contribución en el software o trabajos derivados de la contribución en el software.
+
+3. **Condiciones y limitaciones**
+
+ - (A) _Derechos recíprocos:_ Para cualquier archivo que distribuya que contenga código del software (en código fuente o formato binario), debe proporcionar a los destinatarios el código fuente de ese archivo junto con una copia de esta licencia, que será la licencia que regirá sobre el archivo. Puede licenciar otros archivos que son totalmente de su propiedad y que no contengan código alguno del software en los términos de licenciamiento que usted elija.
+ - (B) _Sin licencia de marca comercial:_ esta licencia no le concede el derecho a utilizar el nombre, el logotipo o las marcas comerciales de ningún colaborador.
+ - (C) Si presenta una reclamación de patente contra un contribuyente por patentes que usted alega son infringidas por el software, la licencia de patente sobre el software que dicho colaborador le proporcionó finaliza automáticamente.
+ - (D) Si distribuye cualquier parte del software, debe conservar todos los avisos de copyright, patente, marca comercial y atribución que están presentes en el software.
+ - (E) Si distribuye cualquier porción del software en forma de código fuente, puede hacerlo solo bajo esta licencia incluyendo una copia completa de esta licencia con su distribución. Si distribuye cualquier porción del software en forma de código compilado u objeto, solo puede hacerlo bajo una licencia que cumpla con esta licencia.
+ - (F) El software se proporciona “tal cual está”. Usted asume los riesgos derivados de su uso. Los colaboradores no proporcionan expresamente garantías o condiciones. Es posible que tenga derechos adicionales como consumidor bajo las leyes locales que esta licencia no puede cambiar. En la medida permitida por las leyes locales, los contribuyentes excluyen las garantías implícitas de comerciabilidad, idoneidad para un propósito particular y no infracción.
+
+## Licencias de uso
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+ * [The MIT License (MIT)]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** aplica a los siguientes componentes:
+
+#### 1. AlphaCentaury.Licensing.Data
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
+### The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+> **'The MIT License (MIT)'** aplica a los siguientes **componentes de terceros _(“THIRD-PARTY”)_:**
+
+#### 1. JetBrains.Annotations
+_Paquete 'nuget' por JetBrains_
+
+**Copyright (c) 2016 JetBrains http://www.jetbrains.com**
+
+ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/LICENSE.MD b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/LICENSE.MD
new file mode 100644
index 00000000..f58d7dca
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/LICENSE.MD
@@ -0,0 +1,80 @@
+# Library 'AlphaCentaury.Licensing.Data'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Terms and conditions
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+## Licenses
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+ * [The MIT License (MIT)]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** applies to the following components:
+
+#### 1. AlphaCentaury.Licensing.Data
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
+### The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+> **'The MIT License (MIT)'** applies to the following **third-party components:**
+
+#### 1. JetBrains.Annotations
+_'nuget' package by JetBrains_
+
+**Copyright (c) 2016 JetBrains http://www.jetbrains.com**
+
+ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/LicensingDataExtensions.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/LicensingDataExtensions.cs
new file mode 100644
index 00000000..b318b17e
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/LicensingDataExtensions.cs
@@ -0,0 +1,82 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using AlphaCentaury.Licensing.Data.Serialization;
+
+namespace AlphaCentaury.Licensing.Data
+{
+ public static class LicensingDataExtensions
+ {
+ public static void ForEach(this IEnumerable enumerable, Action action)
+ {
+ if (enumerable == null) return;
+ foreach (var item in enumerable)
+ {
+ action(item);
+ } // foreach
+ } // ForEach
+
+ public static void ForEach(this IEnumerable enumerable, Action action, TData data)
+ {
+ if (enumerable == null) return;
+ foreach (var item in enumerable)
+ {
+ action(item, data);
+ } // foreach
+ } // ForEach
+
+ public static List Clone(this IList list) where T : ICloneable
+ {
+ if (list == null) return null;
+
+ var clone = new List(list.Count);
+ clone.AddRange(list.Select(item => item.Clone()));
+
+ return clone;
+ } // Clone
+
+ public static LicensedProgram MorphToProgram(this LicensedLibrary library, bool isGuiApp)
+ {
+ return new LicensedProgram
+ {
+ Name = library.Name,
+ LicenseId = library.LicenseId,
+ Copyright = library.Copyright,
+ Authors = library.Authors,
+ Remarks = library.Remarks,
+ TermsConditions = library.TermsConditions,
+ Product = library.Product,
+ Assembly = library.Assembly,
+ IsGuiApp = isGuiApp
+ };
+ } // MorphToProgram LicensedLibrary
+
+ public static LicensedLibrary MorphToLibrary(this LicensedProgram program)
+ {
+ return new LicensedLibrary
+ {
+ Name = program.Name,
+ LicenseId = program.LicenseId,
+ Copyright = program.Copyright,
+ Authors = program.Authors,
+ Remarks = program.Remarks,
+ TermsConditions = program.TermsConditions,
+ Product = program.Product,
+ Assembly = program.Assembly,
+ };
+ } // MorphToLibrary LicensedProgram
+ } // class LicenseFileUtils
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/LicensingDataTools.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/LicensingDataTools.cs
new file mode 100644
index 00000000..5f86f6a8
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/LicensingDataTools.cs
@@ -0,0 +1,31 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Collections.Generic;
+using AlphaCentaury.Licensing.Data.Serialization;
+
+namespace AlphaCentaury.Licensing.Data
+{
+ public static class LicensingDataTools
+ {
+ public static void ExpandDependencies(this List list)
+ {
+ new ExpandDependencies(list).Expand();
+ } // ExpandDependencies
+
+ public static LicensingUsage GetUsage(this LicensingData data)
+ {
+ return new GetLicensingUsage(data).Get();
+ } // GetUsage
+ } // class LicensingDataTools
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Properties/AssemblyInfo.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..39352561
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Properties/AssemblyInfo.cs
@@ -0,0 +1,40 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("AlphaCentaury.Licensing.Data")]
+[assembly: AssemblyDescription("AlphaCentaury licensing data")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCopyright(SolutionVersion.DefaultCopyright)]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("42b71db3-2e34-43bb-bf87-88f422bcf861")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+[assembly: AssemblyVersion(SolutionVersion.DefaultAssemblyVersion)]
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/FormattedMultilineText.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/FormattedMultilineText.cs
new file mode 100644
index 00000000..50694a89
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/FormattedMultilineText.cs
@@ -0,0 +1,208 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using System.Xml;
+using System.Xml.Schema;
+using System.Xml.Serialization;
+using JetBrains.Annotations;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ public class FormattedMultilineText : IXmlSerializable, ICloneable, IEquatable, IEquatable, IComparable, IComparable, IComparable
+ {
+ public FormattedMultilineText()
+ {
+ // no-op
+ } // constructor
+
+ public FormattedMultilineText(string text, string format)
+ {
+ Text = text;
+ Format = format;
+ } // constructor
+
+ public string Format { get; set; }
+
+ public string Text { get; set; }
+
+ public override string ToString() => Text;
+
+ public FormattedMultilineText Clone()
+ {
+ return new FormattedMultilineText(Text, Format);
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+
+ protected void CopyTo(FormattedMultilineText other)
+ {
+ other.Text = Text;
+ other.Format = Format;
+ } // CopyTo
+
+ XmlSchema IXmlSerializable.GetSchema()
+ {
+ return null;
+ } // IXmlSerializable.GetSchema
+
+ void IXmlSerializable.ReadXml(XmlReader reader) => ReadXml(reader);
+
+ void IXmlSerializable.WriteXml(XmlWriter writer) => WriteXml(writer);
+
+ protected virtual void ReadXml([NotNull] XmlReader reader)
+ {
+ if (reader.MoveToAttribute("format"))
+ {
+ Format = reader.Value;
+ reader.MoveToElement();
+ } // if
+
+ Text = reader.ReadElementContentAsString();
+ } // ReadXml
+
+ protected virtual void WriteXml([NotNull] XmlWriter writer)
+ {
+ if (string.IsNullOrWhiteSpace(Text)) return;
+ if (Format != null) writer.WriteAttributeString("format", Format);
+
+ if (Text.Contains("\r") || Text.Contains("\n"))
+ {
+ writer.WriteCData(Text);
+ }
+ else
+ {
+ writer.WriteString(Text);
+ } // if-else
+ } // WriteXml
+
+ public static implicit operator FormattedMultilineText(string text) => new FormattedMultilineText(text, null);
+
+ public static implicit operator string(FormattedMultilineText multiline) => multiline?.Text;
+
+ #region Equality members
+
+ public bool Equals(FormattedMultilineText other)
+ {
+ if (other is null) return false;
+ if (ReferenceEquals(this, other)) return true;
+ return string.Equals(Text, other.Text, StringComparison.CurrentCulture);
+ } // Equals
+
+ public bool Equals(string other)
+ {
+ if (other is null) return false;
+ return string.Equals(Text, other, StringComparison.CurrentCulture);
+ } // Equals
+
+ public override bool Equals(object obj)
+ {
+ return ReferenceEquals(this, obj) || (obj is FormattedMultilineText other && Equals(other)) || (obj is string text && Equals(text));
+ } // Equals
+
+ public override int GetHashCode()
+ {
+ return (Text != null ? StringComparer.CurrentCulture.GetHashCode(Text) : 0);
+ } // GetHashCode
+
+ public static bool operator ==(FormattedMultilineText left, FormattedMultilineText right)
+ {
+ if (ReferenceEquals(left, right)) return true;
+ return !(left is null) && left.Equals(right);
+ } // operator ==
+
+ public static bool operator !=(FormattedMultilineText left, FormattedMultilineText right)
+ {
+ return !(left == right);
+ } // operator !=
+
+ public static bool operator ==(FormattedMultilineText left, string right)
+ {
+ return !(left is null) && left.Equals(right);
+ } // operator ==
+
+ public static bool operator !=(FormattedMultilineText left, string right)
+ {
+ return !(left == right);
+ } // operator !=
+
+ public static bool operator ==(string left, FormattedMultilineText right)
+ {
+ return !(right is null) && right.Equals(left);
+ } // operator ==
+
+ public static bool operator !=(string left, FormattedMultilineText right)
+ {
+ return !(left == right);
+ } // operator !=
+
+ #endregion
+
+ #region Relational members: MultilineText
+
+ public int CompareTo(FormattedMultilineText other)
+ {
+ if (ReferenceEquals(this, other)) return 0;
+ if (other is null) return 1;
+ return string.Compare(Text, other.Text, StringComparison.CurrentCulture);
+ }
+
+ public int CompareTo(object obj)
+ {
+ if (obj is null) return 1;
+ if (ReferenceEquals(this, obj)) return 0;
+ switch (obj)
+ {
+ case FormattedMultilineText other:
+ return CompareTo(other);
+ case string text:
+ return CompareTo(text);
+ default:
+ throw new ArgumentException($"CompareTo: Object must be of type {nameof(FormattedMultilineText)} -or- {nameof(String)}");
+ } // switch
+ } // CompareTo
+
+ public static bool operator <(FormattedMultilineText left, FormattedMultilineText right)
+ {
+ return Comparer.Default.Compare(left, right) < 0;
+ } // operator <
+
+ public static bool operator >(FormattedMultilineText left, FormattedMultilineText right)
+ {
+ return Comparer.Default.Compare(left, right) > 0;
+ } // operator >
+
+ public static bool operator <=(FormattedMultilineText left, FormattedMultilineText right)
+ {
+ return Comparer.Default.Compare(left, right) <= 0;
+ } // operator <=
+
+ public static bool operator >=(FormattedMultilineText left, FormattedMultilineText right)
+ {
+ return Comparer.Default.Compare(left, right) >= 0;
+ } // operator >=
+
+ #endregion
+
+ #region Relational members: string
+
+ public int CompareTo(string other)
+ {
+ return (other is null) ? 1 : string.Compare(Text, other, StringComparison.CurrentCulture);
+ } // CompareTo
+
+ #endregion
+ } // class MultilineText
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LibraryDependency.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LibraryDependency.cs
new file mode 100644
index 00000000..8e1938f1
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LibraryDependency.cs
@@ -0,0 +1,53 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Xml.Serialization;
+using JetBrains.Annotations;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ public sealed class LibraryDependency : LicensedComponentDependency, ICloneable
+ {
+ [XmlElement("File")]
+ public string Assembly { get; set; }
+
+ public LicensedItemType Type { get; set; }
+
+ public override string ToString() => $"{DependencyTypeMark}{Name}";
+
+ public LibraryDependency Clone()
+ {
+ var clone = new LibraryDependency
+ {
+ Assembly = Assembly
+ };
+ CopyToDependency(clone);
+
+ return clone;
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+
+ public void Inherit([CanBeNull] LibraryDependency from)
+ {
+ if (from == null) return;
+
+ Assembly ??= from.Assembly;
+ if (Type == LicensedItemType.Unknown) Type = from.Type;
+
+ base.Inherit(from);
+ } // Inherit
+ } // class LibraryDependency
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/License.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/License.cs
new file mode 100644
index 00000000..150f14df
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/License.cs
@@ -0,0 +1,141 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Xml;
+using System.Xml.Schema;
+using System.Xml.Serialization;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ public sealed class License : IXmlSerializable, IEquatable, ICloneable
+ {
+ public string Id { get; set; }
+
+ public string Name { get; set; }
+
+ public string Format { get; set; }
+
+ public string Text { get; set; }
+
+ public override string ToString() => Id;
+
+ public License Clone()
+ {
+ return new License
+ {
+ Id = Id,
+ Name = Name,
+ Format = Format,
+ Text = Text
+ };
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+
+ public void Inherit(License from)
+ {
+ if (from == null) return;
+
+ Id ??= from.Id;
+ Name ??= from.Name;
+ Format ??= from.Format;
+ Text ??= from.Format;
+ } // Inherit
+
+ #region IEquatable
+
+ public bool Equals(License other)
+ {
+ return string.Compare(Id, other?.Id, StringComparison.InvariantCulture) == 0;
+ } // Equals
+
+ public override int GetHashCode()
+ {
+ unchecked
+ {
+ return 539060726 + Id.GetHashCode();
+ } // unchecked
+ } // GetHashCode
+
+ public override bool Equals(object obj)
+ {
+ if ((obj is null) || !(obj is License other)) return false;
+
+ return Equals(other);
+ } // Equals
+
+ public static bool operator ==(License left, License right)
+ {
+ if (ReferenceEquals(left, right)) return true;
+ return left?.Equals(right) ?? false;
+ } // operator ==
+
+ public static bool operator !=(License left, License right)
+ {
+ return !(left == right);
+ } // operator !=
+
+ #endregion
+
+ #region IXmlSerializable
+
+ XmlSchema IXmlSerializable.GetSchema()
+ {
+ return null;
+ } // IXmlSerializable.GetSchema
+
+ void IXmlSerializable.ReadXml(XmlReader reader)
+ {
+ if (reader.MoveToAttribute("id"))
+ {
+ Id = reader.Value;
+ reader.MoveToElement();
+ } // if
+
+ if (reader.MoveToAttribute("name"))
+ {
+ Name = reader.Value;
+ reader.MoveToElement();
+ } // if
+
+ if (reader.MoveToAttribute("format"))
+ {
+ Format = reader.Value;
+ reader.MoveToElement();
+ } // if
+
+ Text = reader.ReadElementContentAsString();
+ } // IXmlSerializable.ReadXml
+
+ void IXmlSerializable.WriteXml(XmlWriter writer)
+ {
+ if (Id != null) writer.WriteAttributeString("id", Id);
+ if (Name != null) writer.WriteAttributeString("name", Name);
+ if (Format != null) writer.WriteAttributeString("format", Format);
+
+ if (Text == null) return;
+ if (Text.Contains("'\r") || Text.Contains("\n"))
+ {
+ writer.WriteCData(Text);
+ }
+ else
+ {
+ writer.WriteString(Text);
+ } // if-else
+ } // IXmlSerializable.WriteXml
+
+ #endregion
+ } // class License
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicenseAppliesTo.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicenseAppliesTo.cs
new file mode 100644
index 00000000..991170cd
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicenseAppliesTo.cs
@@ -0,0 +1,48 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Xml.Serialization;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ public class LicenseAppliesTo: ICloneable
+ {
+ [XmlArrayItem("Library")]
+ public List Libraries { get; set; }
+
+ [XmlArrayItem("Component")]
+ public List ThirdParty { get; set; }
+
+ public LicenseAppliesTo Clone()
+ {
+ var clone = new LicenseAppliesTo();
+ if (LibrariesSpecified) clone.Libraries = Libraries.Clone();
+ if (ThirdPartySpecified) clone.ThirdParty = ThirdParty.Clone();
+
+ return clone;
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+
+ public override string ToString() => $"{nameof(Libraries)}={(Libraries != null ? Libraries.Count.ToString(CultureInfo.InvariantCulture) : "")}; {nameof(ThirdParty)}={(ThirdParty != null ? ThirdParty.Count.ToString(CultureInfo.InvariantCulture) : "")}";
+
+ // avoid empty lists when serializing
+ public bool LibrariesSpecified => (Libraries != null) && (Libraries.Count > 0);
+
+ public bool ThirdPartySpecified => (ThirdParty != null) && (ThirdParty.Count > 0);
+ } // class LicenseAppliesTo
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicenseUsage.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicenseUsage.cs
new file mode 100644
index 00000000..897308e9
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicenseUsage.cs
@@ -0,0 +1,38 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ public class LicenseUsage: ICloneable
+ {
+ public License License { get; set; }
+
+ public override string ToString() => $"{nameof(License.Id)} = {License?.ToString() ?? ""}";
+
+ public LicenseAppliesTo AppliesTo { get; set; }
+
+ public LicenseUsage Clone()
+ {
+ return new LicenseUsage
+ {
+ License = License.Clone(),
+ AppliesTo = AppliesTo.Clone()
+ };
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+ } // class LicenseUsage
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedComponent.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedComponent.cs
new file mode 100644
index 00000000..2853e6d8
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedComponent.cs
@@ -0,0 +1,56 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Xml.Serialization;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ public abstract class LicensedComponent
+ {
+ [XmlAttribute("name")]
+ public string Name { get; set; }
+
+ [XmlElement("License")]
+ public string LicenseId { get; set; }
+
+ public string Authors { get; set; }
+
+ public string Copyright { get; set; }
+
+ public FormattedMultilineText Remarks { get; set; }
+
+ public void Inherit(LicensedComponent from)
+ {
+ if (from == null) return;
+
+ Name ??= from.Name;
+ LicenseId ??= from.LicenseId;
+ Authors ??= from.Authors;
+ Copyright ??= from.Copyright;
+ Remarks ??= from.Remarks;
+ } // Inherit
+
+ public override string ToString() => Name;
+
+ protected void CopyToComponent(LicensedComponent other)
+ {
+ other.Name = Name;
+ other.LicenseId = LicenseId;
+ other.Authors = Authors;
+ other.Copyright = Copyright;
+ other.Remarks = Remarks?.Clone();
+ } // CopyToComponent
+ } // class Component
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedComponentDependency.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedComponentDependency.cs
new file mode 100644
index 00000000..0473bed3
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedComponentDependency.cs
@@ -0,0 +1,53 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using JetBrains.Annotations;
+using System.ComponentModel;
+using System.Xml.Serialization;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ public abstract class LicensedComponentDependency: LicensedComponent
+ {
+ [XmlAttribute("dependency")]
+ [DefaultValue(LicensedDependencyType.Direct)]
+ public LicensedDependencyType DependencyType { get; set; }
+
+ [XmlAttribute("version")]
+ public string Version { get; set; }
+
+ protected string DependencyTypeMark => DependencyType switch
+ {
+ LicensedDependencyType.Direct => null,
+ LicensedDependencyType.Indirect => "+",
+ LicensedDependencyType.Dynamic => "*",
+ _ => "?"
+ };
+
+ public void Inherit([CanBeNull] LicensedComponentDependency from)
+ {
+ if (from == null) return;
+
+ if (DependencyType != LicensedDependencyType.Direct) DependencyType = from.DependencyType;
+
+ base.Inherit(from);
+ } // Inherit
+
+ protected void CopyToDependency(LicensedComponentDependency other)
+ {
+ other.DependencyType = DependencyType;
+ other.Version = Version;
+ CopyToComponent(other);
+ } // CopyToDependency
+ } // class ComponentDependency:
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedDependencyType.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedDependencyType.cs
new file mode 100644
index 00000000..946d628f
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedDependencyType.cs
@@ -0,0 +1,29 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Xml.Serialization;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ public enum LicensedDependencyType
+ {
+ [XmlEnum("direct")]
+ Direct = 0,
+
+ [XmlEnum("dynamic")]
+ Dynamic = 5, // a.k.a. runtime
+
+ [XmlEnum("indirect")]
+ Indirect = 10
+ } // enum LicensedDependencyType
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedInstaller.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedInstaller.cs
new file mode 100644
index 00000000..00087192
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedInstaller.cs
@@ -0,0 +1,63 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using JetBrains.Annotations;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ public class LicensedInstaller: LicensedProgram, ICloneable
+ {
+ public string Technology { get; set; }
+
+ public override LicensedItemType Type => LicensedItemType.Installer;
+
+ public new LicensedInstaller Clone()
+ {
+ return (LicensedInstaller) base.Clone();
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+
+ public void Inherit([CanBeNull] LicensedInstaller from)
+ {
+ if (from == null) return;
+
+ Technology ??= from.Technology;
+
+ ProtectedInherit(from);
+ } // Inherit
+
+ public override void Inherit([CanBeNull] LicensedItem from)
+ {
+ if (from is LicensedInstaller installer)
+ {
+ Inherit(installer);
+ }
+ else
+ {
+ ProtectedInherit(from);
+ } // if-else
+ } // Override
+
+ protected override LicensedItem CreateNewForCloning()
+ {
+ var result = new LicensedInstaller
+ {
+ Technology = Technology
+ };
+
+ return result;
+ } // CreateNewForCloning
+ } // class LicensedInstaller
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedItem.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedItem.cs
new file mode 100644
index 00000000..f2e8b4d5
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedItem.cs
@@ -0,0 +1,109 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using JetBrains.Annotations;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml.Serialization;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ public abstract class LicensedItem : LicensedComponent, ICloneable
+ {
+ [XmlAttribute("file")]
+ public string Assembly { get; set; }
+
+ public string Product { get; set; }
+
+ [XmlElement("TermsAndConditions")]
+ public List TermsConditions { get; set; }
+
+ public FormattedMultilineText Notes { get; set; }
+
+ [XmlIgnore]
+ public abstract LicensedItemType Type { get; }
+
+ public override string ToString()
+ {
+ return $"{Type}:{Name}";
+ } // ToString
+
+ public LicensedItem Clone()
+ {
+ var clone = CreateNewForCloning();
+ clone.Assembly = Assembly;
+ clone.Product = Product;
+ clone.Notes = Notes?.Clone();
+ if (TermsConditionsSpecified)
+ {
+ clone.TermsConditions = TermsConditions.Select(term => term.Clone()).ToList();
+ } // if
+
+ return clone;
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+
+ public abstract void Inherit([CanBeNull] LicensedItem from);
+
+ public void CopyTo(LibraryDependency item) => CopyToLibraryDependency(item);
+
+ public void CopyTo(LicensedItem item)
+ {
+ if (item == null) return;
+ item.Assembly = Assembly;
+ item.Product = Product;
+ item.TermsConditions = TermsConditions.Clone();
+ item.Notes = Notes.Clone();
+
+ CopyToComponent(item);
+ } // CopyTo
+
+ public LibraryDependency ConvertToLibraryDependency()
+ {
+ var item = new LibraryDependency();
+ CopyToLibraryDependency(item);
+
+ return item;
+ } // ConvertTo
+
+ public bool TermsConditionsSpecified => (TermsConditions != null) && (TermsConditions.Count > 0);
+
+ protected abstract LicensedItem CreateNewForCloning();
+
+ protected virtual void CopyToLibraryDependency(LibraryDependency item)
+ {
+ item.Type = Type;
+ item.Name = Name;
+ item.Assembly = Assembly;
+ item.LicenseId = LicenseId;
+ item.Authors = Authors;
+ item.Copyright = Copyright;
+ item.Remarks = Remarks?.Clone();
+ } // CopyToLibraryDependency
+
+ protected void ProtectedInherit([CanBeNull] LicensedItem from)
+ {
+ if (from == null) return;
+
+ Assembly ??= from.Assembly;
+ Product ??= from.Product;
+ TermsConditions = TermsAndConditions.Inherit(TermsConditions, from.TermsConditions);
+ Notes ??= from.Notes?.Clone();
+
+ Inherit((LicensedComponent)from);
+ } // ProtectedOverride
+ } // class LicensedItem
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedItemType.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedItemType.cs
new file mode 100644
index 00000000..35939300
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedItemType.cs
@@ -0,0 +1,24 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ public enum LicensedItemType
+ {
+ Unknown,
+ Library,
+ Program,
+ Installer,
+ Solution
+ } // enum LicensedItemType
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedLibrary.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedLibrary.cs
new file mode 100644
index 00000000..b2970474
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedLibrary.cs
@@ -0,0 +1,48 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using JetBrains.Annotations;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ public class LicensedLibrary: LicensedItem, ICloneable
+ {
+ public override LicensedItemType Type => LicensedItemType.Library;
+
+ public new LicensedLibrary Clone()
+ {
+ return (LicensedLibrary)base.Clone();
+ } // Clone
+
+ public void Inherit([CanBeNull] LicensedLibrary from)
+ {
+ ProtectedInherit(from);
+ } // Inherit
+
+ public override void Inherit([CanBeNull] LicensedItem from)
+ {
+ if (from is LicensedLibrary library)
+ {
+ Inherit(library);
+ }
+ else
+ {
+ ProtectedInherit(from);
+ } // if-else
+ } // Inherit
+
+ protected override LicensedItem CreateNewForCloning() => new LicensedLibrary();
+ } // class LicensedLibrary
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedProgram.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedProgram.cs
new file mode 100644
index 00000000..a3287b91
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedProgram.cs
@@ -0,0 +1,73 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.ComponentModel;
+using System.Xml.Serialization;
+using JetBrains.Annotations;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ public class LicensedProgram: LicensedItem, ICloneable
+ {
+ [XmlAttribute("userInterface")]
+ [DefaultValue(true)]
+ public bool IsGuiApp { get; set; }
+
+ public LicensedProgram()
+ {
+ IsGuiApp = true;
+ } // constructor
+
+ public override LicensedItemType Type => LicensedItemType.Program;
+
+ public new LicensedProgram Clone()
+ {
+ return (LicensedProgram)base.Clone();
+ } // Clone
+
+ public void CopyTo(LicensedProgram program)
+ {
+ if (program == null) return;
+
+ program.IsGuiApp = IsGuiApp;
+ CopyTo((LicensedItem) program);
+ } // CopyTo
+
+ public void Inherit([CanBeNull] LicensedProgram from)
+ {
+ if (from == null) return;
+
+ if (!IsGuiApp) IsGuiApp = from.IsGuiApp;
+ ProtectedInherit(from);
+ } // Inherit
+
+ public override void Inherit([CanBeNull] LicensedItem from)
+ {
+ if (from is LicensedProgram program)
+ {
+ Inherit(program);
+ }
+ else
+ {
+ ProtectedInherit(from);
+ } // if-else
+ } // Override
+
+ protected override LicensedItem CreateNewForCloning() => new LicensedProgram
+ {
+ IsGuiApp = IsGuiApp
+ };
+ } // class LicensedProgram
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedSolution.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedSolution.cs
new file mode 100644
index 00000000..1cd71ebb
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensedSolution.cs
@@ -0,0 +1,46 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using JetBrains.Annotations;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ public class LicensedSolution: LicensedLibrary
+ {
+ public override LicensedItemType Type => LicensedItemType.Solution;
+
+ public new LicensedSolution Clone()
+ {
+ return (LicensedSolution)base.Clone();
+ } // Clone
+
+ public void Inherit([CanBeNull] LicensedSolution from)
+ {
+ ProtectedInherit(from);
+ } // Inherit
+
+ public override void Inherit([CanBeNull] LicensedItem from)
+ {
+ if (from is LicensedSolution solution)
+ {
+ Inherit(solution);
+ }
+ else
+ {
+ ProtectedInherit(from);
+ } // if-else
+ } // Inherit
+
+ protected override LicensedItem CreateNewForCloning() => new LicensedSolution();
+ } // class LicensedSolution
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensesPool.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensesPool.cs
new file mode 100644
index 00000000..34df5f8e
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensesPool.cs
@@ -0,0 +1,44 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml.Serialization;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ [XmlRoot("Licenses.Pool", Namespace = LicensingData.Namespace)]
+ public class LicensesPool: ICloneable
+ {
+ [XmlElement("License")]
+ public List Licenses { get; set; }
+
+ public License GetLicense(string licenseId)
+ {
+ if ((Licenses == null) || (Licenses.Count == 0)) return null;
+ return Licenses.FirstOrDefault(license => string.Equals(license.Id, licenseId, StringComparison.InvariantCultureIgnoreCase));
+ } // GetLicense
+
+ public LicensesPool Clone()
+ {
+ return new LicensesPool
+ {
+ Licenses = Licenses.Clone()
+ };
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+ } // class LicensesPool
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingData.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingData.cs
new file mode 100644
index 00000000..dc9795fd
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingData.cs
@@ -0,0 +1,70 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml.Serialization;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ [XmlRoot("Licensing", Namespace = Namespace, IsNullable = false)]
+ public class LicensingData: ICloneable
+ {
+ public const string Namespace = "http://alphacentaury.org/Licensing.Data/v1";
+
+ [XmlElement("Library", typeof(LicensedLibrary))]
+ [XmlElement("Program", typeof(LicensedProgram))]
+ [XmlElement("Installer", typeof(LicensedInstaller))]
+ [XmlElement("Solution", typeof(LicensedSolution))]
+ public LicensedItem Licensed { get; set; }
+
+ public LicensingDependencies Dependencies { get; set; }
+
+ public List Licenses { get; set; }
+
+ [XmlIgnore]
+ public string FilePath { get; set; }
+
+ public override string ToString()
+ {
+ return Licensed?.ToString() ?? "";
+ } // ToString
+
+ public License GetLicense(string licenseId)
+ {
+ if (!LicensesSpecified || string.IsNullOrEmpty(licenseId)) return null;
+ return Licenses.FirstOrDefault(license => string.Equals(license.Id, licenseId, StringComparison.InvariantCultureIgnoreCase));
+ } // GetLicense
+
+ public LicensingData Clone()
+ {
+ var clone = new LicensingData
+ {
+ Licensed = Licensed.Clone(),
+ Dependencies = Dependencies.Clone(),
+ Licenses = Licenses.Clone()
+ };
+
+ return clone;
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+
+ public bool DependenciesSpecified => (Dependencies != null) && (Dependencies.LibrariesSpecified || Dependencies.ThirdPartySpecified);
+
+ // avoid serializing empty lists
+ public bool LicensesSpecified => (Licenses != null) && (Licenses.Count > 0);
+ } // class LicensingData
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingDefaults.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingDefaults.cs
new file mode 100644
index 00000000..f52cfa66
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingDefaults.cs
@@ -0,0 +1,84 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using JetBrains.Annotations;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ [XmlRoot("Licensing.Defaults", Namespace = LicensingData.Namespace)]
+ public class LicensingDefaults : ICloneable
+ {
+ public class CommonDefaults : LicensedItem
+ {
+ public override LicensedItemType Type => LicensedItemType.Unknown;
+
+ public override void Inherit(LicensedItem from) => ProtectedInherit(from);
+
+ protected override LicensedItem CreateNewForCloning() => new CommonDefaults();
+ } // class CommonDefaults
+
+ [XmlAttribute("appliesTo")]
+ public string AppliesTo { get; set; }
+
+ [XmlAttribute("inheritsFrom")]
+ public string InheritsFrom { get; set; }
+
+ [XmlElement("Common", typeof(CommonDefaults))]
+ public CommonDefaults Common { get; set; }
+
+ [XmlElement("Libraries", typeof(LicensedLibrary))]
+ public LicensedLibrary ForLibraries { get; set; }
+
+ [XmlElement("Programs", typeof(LicensedProgram))]
+ public LicensedProgram ForPrograms { get; set; }
+
+ [XmlArrayItem("License")]
+ public List Licenses { get; set; }
+
+ public void Inherit([CanBeNull] LicensingDefaults inheritFrom)
+ {
+ Common ??= new CommonDefaults();
+ ForLibraries ??= new LicensedLibrary();
+ ForPrograms ??= new LicensedProgram();
+
+ Common.Inherit(inheritFrom?.Common);
+
+ ForLibraries.Inherit(Common);
+ ForLibraries.Inherit(inheritFrom?.ForLibraries);
+
+ ForPrograms.Inherit(Common);
+ ForPrograms.Inherit(inheritFrom?.ForPrograms);
+ } // Inherit
+
+ public LicensingDefaults Clone()
+ {
+ return new LicensingDefaults
+ {
+ AppliesTo = AppliesTo,
+ ForLibraries = ForLibraries.Clone(),
+ ForPrograms = ForPrograms.Clone(),
+ Licenses = Licenses.Clone()
+ };
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+
+ // avoid empty list when serializing
+ public bool LicensesSpecified => (Licenses != null) && (Licenses.Count > 0);
+ } // class LicensingDefaults
+} // class LicensingDefaults
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingDependencies.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingDependencies.cs
new file mode 100644
index 00000000..73b2fb48
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingDependencies.cs
@@ -0,0 +1,49 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Xml.Serialization;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ public sealed class LicensingDependencies: ICloneable
+ {
+ [XmlArrayItem("Library")]
+ public List Libraries { get; set; }
+
+ [XmlArrayItem("Component")]
+ public List ThirdParty { get; set; }
+
+ public override string ToString() => $"{nameof(Libraries)}={(Libraries != null ? Libraries.Count.ToString(CultureInfo.InvariantCulture) : "")}; {nameof(ThirdParty)}={(ThirdParty != null ? ThirdParty.Count.ToString(CultureInfo.InvariantCulture) : "")}";
+
+ public LicensingDependencies Clone()
+ {
+ return new LicensingDependencies
+ {
+ Libraries = LibrariesSpecified ? Libraries.Clone() : null,
+ ThirdParty = ThirdPartySpecified ? ThirdParty.Clone() : null,
+ };
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+
+ // avoid serializing empty lists
+ public bool LibrariesSpecified => (Libraries != null) && (Libraries.Count > 0);
+
+ public bool ThirdPartySpecified => (ThirdParty != null) && (ThirdParty.Count > 0);
+ } // class LicensingDependencies
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingThirdPartyPool.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingThirdPartyPool.cs
new file mode 100644
index 00000000..bce1eb22
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingThirdPartyPool.cs
@@ -0,0 +1,64 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml.Serialization;
+using JetBrains.Annotations;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ [XmlRoot("Licensing.ThirdParty.Pool", Namespace = LicensingData.Namespace)]
+
+ public class LicensingThirdPartyPool: ICloneable
+ {
+ private IReadOnlyDictionary _components;
+
+ [XmlElement("Component")]
+ public List Components { get; set; }
+
+ public bool ComponentsSpecified => (Components != null) && (Components.Count > 0);
+
+ public ThirdPartyDependency this[[CanBeNull] ThirdPartyDependency component] => ComponentsDictionary.TryGetValue(GetComponentKey(component), out var value) ? value : null;
+
+ public LicensingThirdPartyPool Clone()
+ {
+ return new LicensingThirdPartyPool
+ {
+ Components = ComponentsSpecified ? Components.Clone() : null
+ };
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+
+ private IReadOnlyDictionary ComponentsDictionary
+ {
+ get
+ {
+ if (_components != null) return _components;
+
+ _components = ComponentsSpecified switch
+ {
+ true => Components.ToDictionary(GetComponentKey),
+ false => new Dictionary()
+ };
+
+ return _components;
+ } // get
+ } // ComponentsDictionary
+
+ private string GetComponentKey([CanBeNull] ThirdPartyDependency component) => (component == null)? "" : component.GetKey();
+ } // class LicensingThirdPartyPool
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingUsage.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingUsage.cs
new file mode 100644
index 00000000..ccbd7506
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/LicensingUsage.cs
@@ -0,0 +1,48 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ [XmlRoot("Licensing.Usage", Namespace = LicensingData.Namespace)]
+
+ public class LicensingUsage: ICloneable
+ {
+ [XmlElement("Library", typeof(LicensedLibrary))]
+ [XmlElement("Program", typeof(LicensedProgram))]
+ [XmlElement("Installer", typeof(LicensedInstaller))]
+ public LicensedItem Licensed { get; set; }
+
+ [XmlElement("Usage")]
+ public List Usage { get; set; }
+
+ public override string ToString() => (Usage != null) ? $"{nameof(Usage.Count)} = {Usage.Count}" : "";
+
+ public LicensingUsage Clone()
+ {
+ return new LicensingUsage
+ {
+ Licensed = Licensed.Clone(),
+ Usage = UsageSpecified ? Usage.Clone() : null
+ };
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+
+ public bool UsageSpecified => (Usage != null) && (Usage.Count > 0);
+ } // ReversedLicensingFile
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/TermsAndConditions.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/TermsAndConditions.cs
new file mode 100644
index 00000000..014abf02
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/TermsAndConditions.cs
@@ -0,0 +1,95 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml;
+using System.Xml.Serialization;
+using JetBrains.Annotations;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ public class TermsAndConditions: FormattedMultilineText, ICloneable
+ {
+ [XmlAttribute("language")]
+ public string Language { set; get; }
+
+ public new TermsAndConditions Clone()
+ {
+ var clone = new TermsAndConditions
+ {
+ Language = Language
+ };
+ CopyTo(clone);
+
+ return clone;
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+
+ public void CopyTo(TermsAndConditions other)
+ {
+ other.Language = Language;
+ base.CopyTo(other);
+ } // CopyTo
+
+ public static List Inherit([CanBeNull] List list, [CanBeNull]IList from)
+ {
+ if (from == null) return null;
+
+ if ((list is null) || (list.Count == 0))
+ {
+ return from.Clone();
+ } // if
+
+ var d = new HashSet(StringComparer.InvariantCultureIgnoreCase);
+ foreach (var terms in list)
+ {
+ d.Add(terms.Language ?? "");
+ } // foreach
+
+ foreach (var fromTerms in from)
+ {
+ if (d.Contains(fromTerms.Language ?? "")) continue;
+
+ d.Add(fromTerms.Language ?? "");
+ list.Add(fromTerms.Clone());
+ } // foreach
+
+ return list;
+ } // if
+
+ #region Overrides of FormattedMultilineText
+
+ protected override void ReadXml(XmlReader reader)
+ {
+ if (reader.MoveToAttribute("language"))
+ {
+ Language = reader.Value;
+ reader.MoveToElement();
+ } // if
+
+ base.ReadXml(reader);
+ } // ReadXml
+
+ protected override void WriteXml(XmlWriter writer)
+ {
+ if (Language != null) writer.WriteAttributeString("language", Language);
+ base.WriteXml(writer);
+ } // WriteXml
+
+ #endregion
+ } // class TermsAndConditions
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/ThirdPartyDependency.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/ThirdPartyDependency.cs
new file mode 100644
index 00000000..cd142630
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/ThirdPartyDependency.cs
@@ -0,0 +1,98 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.ComponentModel;
+using System.Xml.Serialization;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ [Serializable]
+ public sealed class ThirdPartyDependency: LicensedComponentDependency, ICloneable, IEquatable
+ {
+ [XmlAttribute("type")]
+ [DefaultValue(ThirdPartyDependencyType.Other)]
+ public ThirdPartyDependencyType Type { get; set; }
+
+ public string Description { get; set; }
+
+ public override string ToString() => $"{DependencyTypeMark}{Type}:{Name}";
+
+ public ThirdPartyDependency Clone()
+ {
+ var clone = new ThirdPartyDependency
+ {
+ Type = Type,
+ Description = Description,
+ };
+ CopyToDependency(clone);
+
+ return clone;
+ } // Clone
+
+ object ICloneable.Clone() => Clone();
+
+ #region Equality members
+
+ public bool Equals(ThirdPartyDependency x, ThirdPartyDependency y)
+ {
+ return (x?.Equals(y)) ?? false;
+ } // Equals
+
+ public bool Equals(ThirdPartyDependency other) => Equals(other, StringComparison.InvariantCulture);
+
+ public bool Equals(ThirdPartyDependency other, StringComparison stringComparison)
+ {
+ if (other is null) return false;
+ if (ReferenceEquals(this, other)) return true;
+
+ if (Type != other.Type) return false;
+ if (LicenseId != other.LicenseId) return false;
+ if (!string.Equals(Name, other.Name, stringComparison)) return false;
+ if (!string.Equals(Version, other.Version, StringComparison.InvariantCultureIgnoreCase)) return false;
+ if (!string.Equals(LicenseId, other.LicenseId, StringComparison.InvariantCultureIgnoreCase)) return false;
+ if (!string.Equals(Copyright, other.Copyright, stringComparison)) return false;
+ if (!string.Equals(Authors, other.Authors, stringComparison)) return false;
+ if (!string.Equals(Description, other.Description, stringComparison)) return false;
+ if (!string.Equals(Remarks?.Text, other.Remarks?.Text, stringComparison)) return false;
+ if (!string.Equals(Remarks?.Format, other.Remarks?.Format, stringComparison)) return false;
+
+ return true;
+ } // Equals
+
+ public override bool Equals(object obj)
+ {
+ return ReferenceEquals(this, obj) || (obj is ThirdPartyDependency other && Equals(other));
+ } // Equals
+
+ public override int GetHashCode()
+ {
+ return StringComparer.CurrentCulture.GetHashCode(GetKey());
+ } // GetHashCode
+
+ public string GetKey() => Type + "~" + Name + (string.IsNullOrEmpty(Version) ? "" : " #") + Version;
+
+ public static bool operator ==(ThirdPartyDependency left, ThirdPartyDependency right)
+ {
+ if (ReferenceEquals(left, right)) return true;
+ return !(left is null) && left.Equals(right);
+ } // operator ==
+
+ public static bool operator !=(ThirdPartyDependency left, ThirdPartyDependency right)
+ {
+ return !(left == right);
+ } // operator !=
+
+ #endregion
+ } // class ThirdPartyDependency
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/ThirdPartyDependencyType.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/ThirdPartyDependencyType.cs
new file mode 100644
index 00000000..35f4b4b1
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/Serialization/ThirdPartyDependencyType.cs
@@ -0,0 +1,35 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Xml.Serialization;
+
+namespace AlphaCentaury.Licensing.Data.Serialization
+{
+ public enum ThirdPartyDependencyType
+ {
+ [XmlEnum("other")]
+ Other = 0,
+
+ [XmlEnum("nuget")]
+ NugetPackage,
+
+ [XmlEnum("library")]
+ Library,
+
+ [XmlEnum("images")]
+ ImageLibrary,
+
+ [XmlEnum("code")]
+ SourceCode,
+ } // enum ThirdPartyDependencyType
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/ThirdPartyDependencyNameComparer.cs b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/ThirdPartyDependencyNameComparer.cs
new file mode 100644
index 00000000..f561cda9
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/ThirdPartyDependencyNameComparer.cs
@@ -0,0 +1,69 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using AlphaCentaury.Licensing.Data.Serialization;
+
+namespace AlphaCentaury.Licensing.Data
+{
+ public class ThirdPartyDependencyNameComparer : IEqualityComparer, IComparer
+ {
+ private readonly StringComparison _comparisonType;
+
+ public ThirdPartyDependencyNameComparer()
+ {
+ _comparisonType = StringComparison.InvariantCulture;
+ } // constructor
+
+ public ThirdPartyDependencyNameComparer(StringComparison comparisonType)
+ {
+ _comparisonType = comparisonType;
+ } // constructor
+
+ #region Implementation of IEqualityComparer
+
+ public bool Equals(ThirdPartyDependency x, ThirdPartyDependency y)
+ {
+ if (ReferenceEquals(x, y)) return true;
+ if (x == null) return false;
+ if (y == null) return false;
+
+ if (x.Type != y.Type) return false;
+ if (!string.Equals(x.LicenseId, y.LicenseId, StringComparison.InvariantCultureIgnoreCase)) return false;
+ return string.Equals(x?.Name, y?.Name, _comparisonType);
+ } // Equals
+
+ public int GetHashCode(ThirdPartyDependency obj)
+ {
+ return obj.Name.GetHashCode();
+ } // GetHashCode
+
+ #endregion
+
+ #region Implementation of IComparer
+
+ public int Compare(ThirdPartyDependency x, ThirdPartyDependency y)
+ {
+ if (ReferenceEquals(x, y)) return 0;
+ if (x == null) return -1;
+ if (y == null) return 1;
+
+ if (x.Type != y.Type) return (int)(x.Type - y.Type);
+ var compare = string.Compare(x.LicenseId, y.LicenseId, StringComparison.InvariantCultureIgnoreCase);
+ return compare != 0 ? compare : string.Compare(x.Name, y.Name, _comparisonType);
+ } // Compare
+
+ #endregion
+ } // class ThirdPartyLibraryComparer
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/license.txt b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/license.txt
new file mode 100644
index 00000000..9bb8ebdf
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/license.txt
@@ -0,0 +1,98 @@
+##############################################################################
+##
+## Library 'AlphaCentaury.Licensing.Data'
+##
+##############################################################################
+##
+## IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+## by Codeplex/GitHub user AlphaCentaury
+##
+## Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+##
+## http://www.alphacentaury.org/movistartv
+## https://github.com/AlphaCentaury
+##
+##############################################################################
+
+A.- Terms and conditions
+==============================================================================
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+
+B.- Licenses
+==============================================================================
+
+ * Microsoft Reciprocal License (Ms-RL)
+ * The MIT License (MIT)
+
+
+////////////////////////////////////////////////////////////
+//
+// Microsoft Reciprocal License (Ms-RL)
+//
+////////////////////////////////////////////////////////////
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+////////////////////////////////////////////////////////////
+
+>>> 'Microsoft Reciprocal License (Ms-RL)' applies to the following components: <<<
+
+1. AlphaCentaury.Licensing.Data
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+
+
+////////////////////////////////////////////////////////////
+//
+// The MIT License (MIT)
+//
+////////////////////////////////////////////////////////////
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+////////////////////////////////////////////////////////////
+
+>>> 'The MIT License (MIT)' applies to the following THIRD-PARTY components: <<<
+
+1. JetBrains.Annotations
+------------------------------
+'nuget' package by JetBrains
+Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/licensing.xml b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/licensing.xml
new file mode 100644
index 00000000..3a79e508
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/licensing.xml
@@ -0,0 +1,117 @@
+
+
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+
+
+
+
+
+
+
+ MIT
+ JetBrains
+ Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
+
+
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/packages.config b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/packages.config
new file mode 100644
index 00000000..52cb031c
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/AlphaCentaury.Licensing.Data/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/EPG/ProgramEpgInfo.cs b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/EPG/ProgramEpgInfo.cs
new file mode 100644
index 00000000..e6782967
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/EPG/ProgramEpgInfo.cs
@@ -0,0 +1,39 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery;
+using IpTviewr.Services.EpgDiscovery;
+
+namespace IpTviewr.IpTvServices.EPG
+{
+ public class ProgramEpgInfo
+ {
+ public BroadcastDiscoveryRoot Service
+ {
+ get;
+ set;
+ } // Service
+
+ public EpgProgram Base
+ {
+ get;
+ set;
+ } // Base
+
+ public EpgProgramExtended Extended
+ {
+ get;
+ set;
+ } // Extended
+ } // ProgramEpgInfo
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/EpgProviderCapabilities.cs b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/EpgProviderCapabilities.cs
new file mode 100644
index 00000000..50ea7de6
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/EpgProviderCapabilities.cs
@@ -0,0 +1,24 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+
+namespace IpTviewr.IpTvServices
+{
+ [Flags]
+ public enum EpgProviderCapabilities
+ {
+ ExtendedInfo = 0x01,
+ ProgramThumbnail = 0x02,
+ } // enum EpgProviderCapabilities
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/IEpgInfoProvider.cs b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/IEpgInfoProvider.cs
new file mode 100644
index 00000000..4335b18b
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/IEpgInfoProvider.cs
@@ -0,0 +1,24 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace IpTviewr.IpTvServices
+{
+ public interface IEpgInfoProvider
+ {
+ EpgProviderCapabilities Capabilities { get; }
+
+ //EpgProgramExtended GetEpgInfo(UiBroadcastService service, EpgProgram epgEvent, bool portrait);
+
+ //string GetEpgProgramThumbnailUrl(UiBroadcastService service, EpgProgram epgEvent, bool portrait);
+ } // interface IEpgInfoProvider
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/ITvService.cs b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/ITvService.cs
new file mode 100644
index 00000000..0ae07e4b
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/ITvService.cs
@@ -0,0 +1,26 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using IpTviewr.Common.Configuration;
+
+namespace IpTviewr.IpTvServices
+{
+ public interface ITvService
+ {
+ IEpgInfoProvider EpgInfo { get; }
+
+ ITvServiceTexts Texts { get; }
+
+ InitializationResult Initialize();
+ } // interface ITvService
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/ITvServiceProviderTexts.cs b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/ITvServiceProviderTexts.cs
new file mode 100644
index 00000000..4f9f994c
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/ITvServiceProviderTexts.cs
@@ -0,0 +1,48 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace IpTviewr.IpTvServices
+{
+ public interface ITvServiceProviderTexts
+ {
+ string MenuEntry { get; }
+
+ string MenuSelect { get; }
+
+ string MenuDetails { get; }
+
+ string NoSelection { get; }
+
+ string ListRefreshError { get; }
+
+ string ObtainingList { get; }
+
+ string ParsingList { get; }
+
+ string PropertiesCaption { get; }
+
+ string LogoLoadError { get; }
+
+ string LogoNotFound { get; }
+
+ string UnknownDisplayDescription { get; }
+
+ // UiServices.Discovery.Texts: FormatProviderFriendlyDisplayName
+ string FormatFriendlyName { get; }
+
+ // UiServices.Discovery.Texts: FormatProviderUnknownDisplayName
+ string FormatUnknownName { get; }
+
+ string SelectCaption { get; }
+ } // interface ITvServiceProviderTexts
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/ITvServiceTexts.cs b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/ITvServiceTexts.cs
new file mode 100644
index 00000000..a57865ce
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/ITvServiceTexts.cs
@@ -0,0 +1,20 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace IpTviewr.IpTvServices
+{
+ public interface ITvServiceTexts
+ {
+ ITvServiceProviderTexts Provider { get; }
+ } // interface ITvServiceTexts
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Implementation/DvbIpTvService.cs b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Implementation/DvbIpTvService.cs
new file mode 100644
index 00000000..226fe0b1
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Implementation/DvbIpTvService.cs
@@ -0,0 +1,27 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace IpTviewr.IpTvServices.Implementation
+{
+ public sealed class DvbIpTvService : IpTvService
+ {
+ public override IEpgInfoProvider EpgInfo => null;
+
+ /*
+ public override InitializationResult Initialize()
+ {
+ throw new NotImplementedException();
+ }
+ */
+ }
+}
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Implementation/ServiceProviderTexts.cs b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Implementation/ServiceProviderTexts.cs
new file mode 100644
index 00000000..abd7e532
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Implementation/ServiceProviderTexts.cs
@@ -0,0 +1,35 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using IpTviewr.IpTvServices.Properties;
+
+namespace IpTviewr.IpTvServices.Implementation
+{
+ public class ServiceProviderTexts : ITvServiceProviderTexts
+ {
+ public string MenuEntry => Texts.ProviderMenuEntry;
+ public string MenuSelect => Texts.ProviderMenuSelect;
+ public string MenuDetails => Texts.ProviderMenuDetails;
+ public string NoSelection => Texts.ProviderNoSelection;
+ public string ListRefreshError => Texts.ProviderListRefreshError;
+ public string ObtainingList => Texts.ProviderObtainingList;
+ public string ParsingList => Texts.ProviderParsingList;
+ public string PropertiesCaption => Texts.ProviderPropertiesCaption;
+ public string LogoLoadError => Texts.ProviderLogoLoadError;
+ public string LogoNotFound => Texts.ProviderLogoNotFound;
+ public string UnknownDisplayDescription => Texts.ProviderUnknownDisplayDescription;
+ public string FormatFriendlyName => Texts.ProviderFormatFriendlyName;
+ public string FormatUnknownName => Texts.ProviderFormatUnknownName;
+ public string SelectCaption => Texts.ProviderSelectCaption;
+ } // class ServiceProviderTexts;
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Implementation/ServiceTexts.cs b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Implementation/ServiceTexts.cs
new file mode 100644
index 00000000..f4985c67
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Implementation/ServiceTexts.cs
@@ -0,0 +1,27 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace IpTviewr.IpTvServices.Implementation
+{
+ public class ServiceTexts: ITvServiceTexts
+ {
+ public ITvServiceProviderTexts Provider { get; private set; }
+
+ public void Initialize()
+ {
+ Provider = GetProviderTexts();
+ } // Initialize
+
+ protected virtual ITvServiceProviderTexts GetProviderTexts() => new ServiceProviderTexts();
+ } // class ServiceTexts
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/IpTvService.cs b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/IpTvService.cs
new file mode 100644
index 00000000..e284f56e
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/IpTvService.cs
@@ -0,0 +1,48 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using IpTviewr.Common.Configuration;
+using IpTviewr.IpTvServices.Implementation;
+
+namespace IpTviewr.IpTvServices
+{
+ public abstract class IpTvService : ITvService
+ {
+ #region ITvService implementation
+
+ public abstract IEpgInfoProvider EpgInfo { get; }
+
+ public ITvServiceTexts Texts { get; private set; }
+
+ public virtual InitializationResult Initialize()
+ {
+ Texts = CreateServiceTexts();
+ if (Texts is ServiceTexts texts)
+ {
+ texts.Initialize();
+ } // if
+
+ return InitializationResult.Ok;
+ } // Initialize
+
+ #endregion
+
+ protected virtual ITvServiceTexts CreateServiceTexts()
+ {
+ var result = new ServiceTexts();
+ result.Initialize();
+
+ return result;
+ } // CreateServiceTexts
+ } // class IpTvService
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/IpTviewr.IpTvServices.csproj b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/IpTviewr.IpTvServices.csproj
new file mode 100644
index 00000000..02e1497d
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/IpTviewr.IpTvServices.csproj
@@ -0,0 +1,100 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {36B8E0A1-F1B1-498D-8FE7-A39BB7FD68CA}
+ Library
+ Properties
+ IpTviewr.IpTvServices
+ IpTViewr.IpTvServices
+ v4.6.2
+ 512
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ false
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ false
+
+
+
+
+
+
+ Properties\AssemblySolutionInfo.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ True
+ Texts.resx
+
+
+
+
+
+
+
+
+ {B91C438D-0333-4D06-86CD-74CE82DF6F40}
+ Etsi.Ts102034
+
+
+ {8da15060-5a78-4f89-a9f1-7aa56b0d622c}
+ IpTviewr.Common
+
+
+ {5A171DBB-855C-452B-93C6-229C7AA6C7A6}
+ Services.EpgDiscovery
+
+
+
+
+
+ ResXFileCodeGenerator
+ Texts.Designer.cs
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/LICENSE.ES.MD b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/LICENSE.ES.MD
new file mode 100644
index 00000000..f013df67
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/LICENSE.ES.MD
@@ -0,0 +1,132 @@
+# Biblioteca 'IpTViewr.IpTvServices'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Términos y condiciones de uso
+
+Este COMPONENTE (el “SOFTWARE”), ya sea en forma de código binario o fuente, está **sujeto a los términos de la Licencia Recíproca de Microsoft _“Microsoft Reciprocal License” (Ms-RL)_**, excepto en lo relativo a componentes de terceras partes (“THIRD-PARTY”). \
+Todos los demás derechos están reservados por el/los autor(es) del software.
+
+**EL SOFTWARE SE PROPORCIONA “TAL CUAL”, SIN GARANTÍA DE NINGÚN TIPO**, expresa o implícita, incluyendo (pero no limitándose a) las garantías de comerciabilidad, idoneidad para un propósito particular y no infracción. \
+En ningún caso, los autores o titulares del Copyright serán responsables de ninguna reclamación, daños o cualquier otra responsabilidad, ya sea en una acción de contrato, agravio o cualquier otro motivo, con o sin relación con el software o el uso u otros aspectos del software.
+
+Todas las marcas comerciales, marcas de servicio, nombres comerciales, nombres de productos y logotipos son propiedad de sus respectivos propietarios.
+Su uso en el contexto de este software no constituye un respaldo ni apoyo por parte de sus respectivos propietarios.
+
+----------------------------------------------------------------------
+
+
+_A continuación se proporciona una traducción aproximada de la **Licencia recíproca de Microsoft (Ms-RL)** al español. Esta traducción carece de cualquier validez legal._
+
+Esta licencia rige el uso del software que lo acompaña. Si utiliza el software, usted acepta esta licencia. Si no acepta la licencia, no use el software.
+
+1. **Definiciones**
+
+ - Los términos “reproducir”, “reproducción”, “obras derivadas” y “distribución” tienen el mismo significado en este acuerdo de licencia que en la Ley de Derechos de Autor de EE. UU.
+ - Una “contribución” es el software original, o cualquier adición o cambio al software.
+ - Un “colaborador” es cualquier persona que distribuye su contribución bajo esta licencia.
+ - Las “patentes licenciadas” son declaraciones de patente de un contribuyente y que aplican directamente sobre su contribución.
+
+2. **Concesión de derechos**
+
+ - (A) _Concesión de derechos de autor:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le otorga una licencia de copyright no exclusiva, mundial y libre de regalías para reproducir su contribución, preparar crear trabajos derivados de su contribución, y distribuir su contribución o cualquier trabajo derivado que usted cree.
+ - (B) _Concesión de patentes:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le concede una licencia no exclusiva, mundial y libre de regalías bajo sus patentes autorizadas para realizar, haber realizado, usar, vender, ofrecer para la venta, importar y/o disponer de su contribución en el software o trabajos derivados de la contribución en el software.
+
+3. **Condiciones y limitaciones**
+
+ - (A) _Derechos recíprocos:_ Para cualquier archivo que distribuya que contenga código del software (en código fuente o formato binario), debe proporcionar a los destinatarios el código fuente de ese archivo junto con una copia de esta licencia, que será la licencia que regirá sobre el archivo. Puede licenciar otros archivos que son totalmente de su propiedad y que no contengan código alguno del software en los términos de licenciamiento que usted elija.
+ - (B) _Sin licencia de marca comercial:_ esta licencia no le concede el derecho a utilizar el nombre, el logotipo o las marcas comerciales de ningún colaborador.
+ - (C) Si presenta una reclamación de patente contra un contribuyente por patentes que usted alega son infringidas por el software, la licencia de patente sobre el software que dicho colaborador le proporcionó finaliza automáticamente.
+ - (D) Si distribuye cualquier parte del software, debe conservar todos los avisos de copyright, patente, marca comercial y atribución que están presentes en el software.
+ - (E) Si distribuye cualquier porción del software en forma de código fuente, puede hacerlo solo bajo esta licencia incluyendo una copia completa de esta licencia con su distribución. Si distribuye cualquier porción del software en forma de código compilado u objeto, solo puede hacerlo bajo una licencia que cumpla con esta licencia.
+ - (F) El software se proporciona “tal cual está”. Usted asume los riesgos derivados de su uso. Los colaboradores no proporcionan expresamente garantías o condiciones. Es posible que tenga derechos adicionales como consumidor bajo las leyes locales que esta licencia no puede cambiar. En la medida permitida por las leyes locales, los contribuyentes excluyen las garantías implícitas de comerciabilidad, idoneidad para un propósito particular y no infracción.
+
+## Licencias de uso
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+ * [The MIT License (MIT)]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** aplica a los siguientes componentes:
+
+#### 1. DvbStpClient
+_Componente por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 2. Etsi.Ts102034
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 3. IpTviewr.Common
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 4. IpTViewr.IpTvServices
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 5. Services.EpgDiscovery
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
+### The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+> **'The MIT License (MIT)'** aplica a los siguientes **componentes de terceros _(“THIRD-PARTY”)_:**
+
+#### 1. JetBrains.Annotations
+_Paquete 'nuget' por JetBrains_
+
+**Copyright (c) 2016 JetBrains http://www.jetbrains.com**
+
+ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/LICENSE.MD b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/LICENSE.MD
new file mode 100644
index 00000000..89206296
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/LICENSE.MD
@@ -0,0 +1,104 @@
+# Library 'IpTViewr.IpTvServices'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Terms and conditions
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+## Licenses
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+ * [The MIT License (MIT)]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** applies to the following components:
+
+#### 1. DvbStpClient
+_Component by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 2. Etsi.Ts102034
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 3. IpTviewr.Common
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 4. IpTViewr.IpTvServices
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 5. Services.EpgDiscovery
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
+### The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+> **'The MIT License (MIT)'** applies to the following **third-party components:**
+
+#### 1. JetBrains.Annotations
+_'nuget' package by JetBrains_
+
+**Copyright (c) 2016 JetBrains http://www.jetbrains.com**
+
+ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/License.txt b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/License.txt
new file mode 100644
index 00000000..fbaf8fa1
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/License.txt
@@ -0,0 +1,118 @@
+##############################################################################
+##
+## Library 'IpTViewr.IpTvServices'
+##
+##############################################################################
+##
+## IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+## by Codeplex/GitHub user AlphaCentaury
+##
+## Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+##
+## http://www.alphacentaury.org/movistartv
+## https://github.com/AlphaCentaury
+##
+##############################################################################
+
+A.- Terms and conditions
+==============================================================================
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+
+B.- Licenses
+==============================================================================
+
+ * Microsoft Reciprocal License (Ms-RL)
+ * The MIT License (MIT)
+
+
+////////////////////////////////////////////////////////////
+//
+// Microsoft Reciprocal License (Ms-RL)
+//
+////////////////////////////////////////////////////////////
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+////////////////////////////////////////////////////////////
+
+>>> 'Microsoft Reciprocal License (Ms-RL)' applies to the following components: <<<
+
+1. DvbStpClient
+------------------------------
+Component by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+2. Etsi.Ts102034
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+3. IpTviewr.Common
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+4. IpTViewr.IpTvServices
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+5. Services.EpgDiscovery
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+
+
+////////////////////////////////////////////////////////////
+//
+// The MIT License (MIT)
+//
+////////////////////////////////////////////////////////////
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+////////////////////////////////////////////////////////////
+
+>>> 'The MIT License (MIT)' applies to the following THIRD-PARTY components: <<<
+
+1. JetBrains.Annotations
+------------------------------
+'nuget' package by JetBrains
+Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Properties/AssemblyInfo.cs b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..c3faa8d1
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Properties/AssemblyInfo.cs
@@ -0,0 +1,39 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("IpTViewr.IpTvService")]
+[assembly: AssemblyDescription("IpTviewr.Core.IpTvService")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCopyright(SolutionVersion.DefaultCopyright)]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("64e2117e-9b83-4d77-8cf0-243bc3864598")]
+
+// Version information for an assembly consists of the following four values:
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+[assembly: AssemblyVersion(SolutionVersion.DefaultAssemblyVersion)]
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Properties/Texts.Designer.cs b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Properties/Texts.Designer.cs
new file mode 100644
index 00000000..f6683350
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Properties/Texts.Designer.cs
@@ -0,0 +1,192 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace IpTviewr.IpTvServices.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Texts {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Texts() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IpTviewr.IpTvServices.Properties.Texts", typeof(Texts).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to {0} (*).
+ ///
+ internal static string ProviderFormatFriendlyName {
+ get {
+ return ResourceManager.GetString("ProviderFormatFriendlyName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to (Name not provided) {0}.
+ ///
+ internal static string ProviderFormatUnknownName {
+ get {
+ return ResourceManager.GetString("ProviderFormatUnknownName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Unable to obtain the list of service providers..
+ ///
+ internal static string ProviderListRefreshError {
+ get {
+ return ResourceManager.GetString("ProviderListRefreshError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Unable to load provider logo file <{0}>..
+ ///
+ internal static string ProviderLogoLoadError {
+ get {
+ return ResourceManager.GetString("ProviderLogoLoadError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Provider logo file <{0}> not found..
+ ///
+ internal static string ProviderLogoNotFound {
+ get {
+ return ResourceManager.GetString("ProviderLogoNotFound", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Show technical &details....
+ ///
+ internal static string ProviderMenuDetails {
+ get {
+ return ResourceManager.GetString("ProviderMenuDetails", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to &Provider.
+ ///
+ internal static string ProviderMenuEntry {
+ get {
+ return ResourceManager.GetString("ProviderMenuEntry", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to &Select provider....
+ ///
+ internal static string ProviderMenuSelect {
+ get {
+ return ResourceManager.GetString("ProviderMenuSelect", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to No service provider has been selected..
+ ///
+ internal static string ProviderNoSelection {
+ get {
+ return ResourceManager.GetString("ProviderNoSelection", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Obtaining the list of service providers....
+ ///
+ internal static string ProviderObtainingList {
+ get {
+ return ResourceManager.GetString("ProviderObtainingList", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Parsing and extracting the list of providers....
+ ///
+ internal static string ProviderParsingList {
+ get {
+ return ResourceManager.GetString("ProviderParsingList", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Properties of service provider.
+ ///
+ internal static string ProviderPropertiesCaption {
+ get {
+ return ResourceManager.GetString("ProviderPropertiesCaption", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Select service provider.
+ ///
+ internal static string ProviderSelectCaption {
+ get {
+ return ResourceManager.GetString("ProviderSelectCaption", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to No description is available for this service provider..
+ ///
+ internal static string ProviderUnknownDisplayDescription {
+ get {
+ return ResourceManager.GetString("ProviderUnknownDisplayDescription", resourceCulture);
+ }
+ }
+ }
+}
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Properties/Texts.es.resx b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Properties/Texts.es.resx
new file mode 100644
index 00000000..ea5ac88b
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Properties/Texts.es.resx
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ {0} (*)
+
+
+ (Sin nombre) {0}
+
+
+ No ha sido posible obtener la lista de proveedores de servicios.
+
+
+ Error al cargar el archivo con el logo del proveedor <{0}>.
+
+
+ El archivo con el logo del proveedor <{0}> no existe.
+
+
+ Ver &detalles técnicos...
+
+
+ &Proveedor
+
+
+ &Seleccionar proveedor...
+
+
+ No se ha seleccionado un proveedor de servicios.
+
+
+ Obteniendo la lista de proveedores de servicios...
+
+
+ Analizando y extrayendo la lista de proveedores...
+
+
+ Propiedades del proveedor de servicios
+
+
+ Seleccionar proveedor de servicios
+
+
+ No existe una descripción de este proveedor de servicios.
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Properties/Texts.resx b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Properties/Texts.resx
new file mode 100644
index 00000000..0ec8932a
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/Properties/Texts.resx
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ {0} (*)
+
+
+ (Name not provided) {0}
+
+
+ Unable to obtain the list of service providers.
+
+
+ Unable to load provider logo file <{0}>.
+
+
+ Provider logo file <{0}> not found.
+
+
+ Show technical &details...
+
+
+ &Provider
+
+
+ &Select provider...
+
+
+ No service provider has been selected.
+
+
+ Obtaining the list of service providers...
+
+
+ Parsing and extracting the list of providers...
+
+
+ Properties of service provider
+
+
+ Select service provider
+
+
+ No description is available for this service provider.
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/licensing.xml b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/licensing.xml
new file mode 100644
index 00000000..8059016a
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Core.IpTvProvider/licensing.xml
@@ -0,0 +1,147 @@
+
+
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+
+
+
+
+
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ Etsi.Ts102034
+ Library
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ IpTviewr.Common
+ Library
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ Services.EpgDiscovery
+ Library
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ DvbStpClient
+ Unknown
+
+
+
+
+ MIT
+ JetBrains
+ Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
+
+
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/DvbStpClient/DvbStpBaseClient.cs b/1.5 'Kruger 60'/Assemblies/DvbStpClient/DvbStpBaseClient.cs
new file mode 100644
index 00000000..2837f087
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/DvbStpClient/DvbStpBaseClient.cs
@@ -0,0 +1,234 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.IO;
+using System.Net;
+using System.Net.Sockets;
+using System.Threading;
+
+namespace IpTviewr.DvbStp.Client
+{
+ public abstract class DvbStpBaseClient
+ {
+ public const int UdpMaxDatagramSize = 0xFFFF;
+
+ protected DvbStpBaseClient(IPAddress ip, int port) : this(ip, port, CancellationToken.None)
+ {
+ // no-op
+ } // constructor
+
+ protected DvbStpBaseClient(IPAddress ip, int port, CancellationToken cancellationToken)
+ {
+ MulticastIpAddress = ip;
+ MulticastPort = port;
+ ReceiveDatagramTimeout = 20000; // 20 seconds (20 s * 1,000 ms)
+ OperationTimeout = 600000; // 10 minutes (10 m * 60 s * 1,000 ms)
+ CancellationToken = cancellationToken;
+ } // constructor
+
+ public IPAddress MulticastIpAddress
+ {
+ get;
+ } // MulticastIpAddress
+
+ public int MulticastPort
+ {
+ get;
+ } // MulticastPort
+
+ public CancellationToken CancellationToken
+ {
+ get;
+ } // CancellationToken
+
+ public int ReceiveDatagramTimeout // in milliseconds
+ {
+ get;
+ set;
+ } // ReceiveDatagramTimeout
+
+ public int DatagramCount
+ {
+ get;
+ private set;
+ } // public
+
+ public bool CancelRequested => CancellationToken.IsCancellationRequested;
+
+ public DateTime StartTime
+ {
+ get;
+ private set;
+ } // StartTime
+
+ public DateTime NoDataTimeoutStartTime
+ {
+ get;
+ private set;
+ } // NoDataTimeoutStartTime
+
+ public int NoDataTimeout // in milliseconds
+ {
+ get;
+ set;
+ } // NoDataTimeout
+
+ public int OperationTimeout // in milliseconds
+ {
+ get;
+ set;
+ } // OperationTimeout
+
+ protected Socket Socket
+ {
+ get;
+ private set;
+ } // Socket
+
+ protected byte[] DatagramData
+ {
+ get;
+ private set;
+ } // DatagramData
+
+ protected DvbStpHeader Header
+ {
+ get;
+ private set;
+ } // Header
+
+ protected int ReceivedBytes
+ {
+ get;
+ private set;
+ } // ReceivedBytes
+
+ public virtual void Close()
+ {
+ if (Socket == null) return;
+
+ Socket.Close();
+ DatagramData = null;
+ Header = null;
+ } // Close
+
+ protected void ReceiveData()
+ {
+ Connect();
+
+ while (!CancelRequested)
+ {
+ CheckTimeouts();
+
+ Receive();
+ if (Header.Version != 0) continue;
+
+ // filter received section
+ if (FilterSection()) continue;
+
+ // requested payloadId & segmentId found!
+ DecodeHeader();
+
+ // process data
+ ProcessReceivedData();
+
+ // got all expected data?
+ if (EndReceptionLoop)
+ {
+ break;
+ } // if
+ } // while
+ } // ReceiveData
+
+ protected virtual bool FilterSection()
+ {
+ return false;
+ } // FilterSection
+
+ protected abstract void ProcessReceivedData();
+
+ protected bool EndReceptionLoop
+ {
+ get;
+ set;
+ } // EndReceptionLoop
+
+ protected virtual void Connect()
+ {
+ if (Socket != null) return;
+
+ DatagramData = new byte[UdpMaxDatagramSize];
+
+ var s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
+ s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
+ s.ReceiveTimeout = ReceiveDatagramTimeout;
+ s.Bind(new IPEndPoint(IPAddress.Any, MulticastPort));
+ var multicastData = new MulticastOption(MulticastIpAddress, IPAddress.Any);
+ s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, multicastData);
+
+ Socket = s;
+ StartNoDataTimeout();
+ } // Connect
+
+ protected void Receive(bool decodeHeader = false)
+ {
+ ReceivedBytes = Socket.Receive(DatagramData);
+ DatagramCount += 1;
+
+ if (ReceivedBytes < DvbStpHeader.MinHeaderLength) throw new InvalidDataException("ReceivedBytes < MinHeaderLength");
+
+ Header = (decodeHeader)? DvbStpHeader.Decode(DatagramData, ReceivedBytes) : DvbStpHeader.PartialDecode(DatagramData);
+ } // Receive
+
+ protected void DecodeHeader()
+ {
+ Header.CompleteDecoding(DatagramData, ReceivedBytes);
+ if ((Header.Encryption != 0) || (Header.Compression != DvbStpHeader.CompressionMethod.None))
+ {
+ throw new NotImplementedException();
+ } // if
+ } // DecodeHeader
+
+ #region Timeout handling
+
+ private void StartNoDataTimeout()
+ {
+ StartTime = DateTime.Now;
+ NoDataTimeoutStartTime = StartTime;
+ } // StartTimeout
+
+ protected void ResetNoDataTimeout()
+ {
+ NoDataTimeoutStartTime = DateTime.Now;
+ } // ResetNoDataTimeout
+
+ protected void CheckTimeouts()
+ {
+ TimeSpan elapsed;
+
+ if (NoDataTimeout > 0)
+ {
+ elapsed = DateTime.Now - NoDataTimeoutStartTime;
+ if (elapsed.TotalMilliseconds > NoDataTimeout) throw new TimeoutException();
+ } // if
+ if (OperationTimeout > 0)
+ {
+ elapsed = DateTime.Now - StartTime;
+ if (elapsed.TotalMilliseconds > OperationTimeout) throw new TimeoutException();
+ } // if
+ } // CheckTimeouts
+
+ #endregion
+ } // class DvbStpBaseClient
+} // namespace
diff --git a/1.5 'Kruger 60'/DvbStpClient/DvbStpClient.csproj b/1.5 'Kruger 60'/Assemblies/DvbStpClient/DvbStpClient.csproj
similarity index 80%
rename from 1.5 'Kruger 60'/DvbStpClient/DvbStpClient.csproj
rename to 1.5 'Kruger 60'/Assemblies/DvbStpClient/DvbStpClient.csproj
index 5a2b24b7..9f0fedfb 100644
--- a/1.5 'Kruger 60'/DvbStpClient/DvbStpClient.csproj
+++ b/1.5 'Kruger 60'/Assemblies/DvbStpClient/DvbStpClient.csproj
@@ -9,7 +9,7 @@
Properties
IpTviewr.DvbStp.Client
DvbStpClient
- v4.5.2
+ v4.6.2
512
SAK
SAK
@@ -37,23 +37,25 @@
false
+
+ ..\..\packages\JetBrains.Annotations.2019.1.3\lib\net20\JetBrains.Annotations.dll
+
-
-
-
-
-
-
+
Properties\AssemblySolutionInfo.cs
+
+
+
+
@@ -70,6 +72,12 @@
+
+
+
+
+
+
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+
+
+
+
+
+
+
+ MIT
+ JetBrains
+ Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
+
+
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/DvbStpClient/packages.config b/1.5 'Kruger 60'/Assemblies/DvbStpClient/packages.config
new file mode 100644
index 00000000..3d5fd2ef
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/DvbStpClient/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/Docs/DVB-IPTV_Factsheet.pdf b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/DVB-IPTV_Factsheet.pdf
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/Docs/DVB-IPTV_Factsheet.pdf
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/DVB-IPTV_Factsheet.pdf
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-01-01.pdf b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-01-01.pdf
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-01-01.pdf
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-01-01.pdf
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-01-01.zip b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-01-01.zip
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-01-01.zip
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-01-01.zip
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-02-01.pdf b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-02-01.pdf
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-02-01.pdf
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-02-01.pdf
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-02-01.zip b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-02-01.zip
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-02-01.zip
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-02-01.zip
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-03-01.pdf b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-03-01.pdf
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-03-01.pdf
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-03-01.pdf
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-03-01.zip b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-03-01.zip
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-03-01.zip
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-03-01.zip
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-04-01.pdf b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-04-01.pdf
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-04-01.pdf
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-04-01.pdf
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-04-01.zip b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-04-01.zip
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-04-01.zip
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-04-01.zip
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-05-01.pdf b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-05-01.pdf
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-05-01.pdf
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-05-01.pdf
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-05-01.zip b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-05-01.zip
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/Docs/TS 102 034 v01-05-01.zip
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Docs/TS 102 034 v01-05-01.zip
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/Etsi.Ts102034.csproj b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Etsi.Ts102034.csproj
similarity index 97%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/Etsi.Ts102034.csproj
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Etsi.Ts102034.csproj
index 3874a2f3..f9a85837 100644
--- a/1.5 'Kruger 60'/Etsi.Ts102034/Etsi.Ts102034.csproj
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Etsi.Ts102034.csproj
@@ -9,7 +9,7 @@
Properties
Etsi.Ts102034
Etsi.Ts102034
- v4.5.2
+ v4.6.2
512
SAK
SAK
@@ -38,14 +38,10 @@
-
-
-
-
-
+
Properties\AssemblySolutionInfo.cs
@@ -128,10 +124,13 @@
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/LICENSE.ES.MD b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/LICENSE.ES.MD
new file mode 100644
index 00000000..73dfe3a5
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/LICENSE.ES.MD
@@ -0,0 +1,87 @@
+# Biblioteca 'Etsi.Ts102034'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Términos y condiciones de uso
+
+Este COMPONENTE (el “SOFTWARE”), ya sea en forma de código binario o fuente, está **sujeto a los términos de la Licencia Recíproca de Microsoft _“Microsoft Reciprocal License” (Ms-RL)_**, excepto en lo relativo a componentes de terceras partes (“THIRD-PARTY”). \
+Todos los demás derechos están reservados por el/los autor(es) del software.
+
+**EL SOFTWARE SE PROPORCIONA “TAL CUAL”, SIN GARANTÍA DE NINGÚN TIPO**, expresa o implícita, incluyendo (pero no limitándose a) las garantías de comerciabilidad, idoneidad para un propósito particular y no infracción. \
+En ningún caso, los autores o titulares del Copyright serán responsables de ninguna reclamación, daños o cualquier otra responsabilidad, ya sea en una acción de contrato, agravio o cualquier otro motivo, con o sin relación con el software o el uso u otros aspectos del software.
+
+Todas las marcas comerciales, marcas de servicio, nombres comerciales, nombres de productos y logotipos son propiedad de sus respectivos propietarios.
+Su uso en el contexto de este software no constituye un respaldo ni apoyo por parte de sus respectivos propietarios.
+
+----------------------------------------------------------------------
+
+
+_A continuación se proporciona una traducción aproximada de la **Licencia recíproca de Microsoft (Ms-RL)** al español. Esta traducción carece de cualquier validez legal._
+
+Esta licencia rige el uso del software que lo acompaña. Si utiliza el software, usted acepta esta licencia. Si no acepta la licencia, no use el software.
+
+1. **Definiciones**
+
+ - Los términos “reproducir”, “reproducción”, “obras derivadas” y “distribución” tienen el mismo significado en este acuerdo de licencia que en la Ley de Derechos de Autor de EE. UU.
+ - Una “contribución” es el software original, o cualquier adición o cambio al software.
+ - Un “colaborador” es cualquier persona que distribuye su contribución bajo esta licencia.
+ - Las “patentes licenciadas” son declaraciones de patente de un contribuyente y que aplican directamente sobre su contribución.
+
+2. **Concesión de derechos**
+
+ - (A) _Concesión de derechos de autor:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le otorga una licencia de copyright no exclusiva, mundial y libre de regalías para reproducir su contribución, preparar crear trabajos derivados de su contribución, y distribuir su contribución o cualquier trabajo derivado que usted cree.
+ - (B) _Concesión de patentes:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le concede una licencia no exclusiva, mundial y libre de regalías bajo sus patentes autorizadas para realizar, haber realizado, usar, vender, ofrecer para la venta, importar y/o disponer de su contribución en el software o trabajos derivados de la contribución en el software.
+
+3. **Condiciones y limitaciones**
+
+ - (A) _Derechos recíprocos:_ Para cualquier archivo que distribuya que contenga código del software (en código fuente o formato binario), debe proporcionar a los destinatarios el código fuente de ese archivo junto con una copia de esta licencia, que será la licencia que regirá sobre el archivo. Puede licenciar otros archivos que son totalmente de su propiedad y que no contengan código alguno del software en los términos de licenciamiento que usted elija.
+ - (B) _Sin licencia de marca comercial:_ esta licencia no le concede el derecho a utilizar el nombre, el logotipo o las marcas comerciales de ningún colaborador.
+ - (C) Si presenta una reclamación de patente contra un contribuyente por patentes que usted alega son infringidas por el software, la licencia de patente sobre el software que dicho colaborador le proporcionó finaliza automáticamente.
+ - (D) Si distribuye cualquier parte del software, debe conservar todos los avisos de copyright, patente, marca comercial y atribución que están presentes en el software.
+ - (E) Si distribuye cualquier porción del software en forma de código fuente, puede hacerlo solo bajo esta licencia incluyendo una copia completa de esta licencia con su distribución. Si distribuye cualquier porción del software en forma de código compilado u objeto, solo puede hacerlo bajo una licencia que cumpla con esta licencia.
+ - (F) El software se proporciona “tal cual está”. Usted asume los riesgos derivados de su uso. Los colaboradores no proporcionan expresamente garantías o condiciones. Es posible que tenga derechos adicionales como consumidor bajo las leyes locales que esta licencia no puede cambiar. En la medida permitida por las leyes locales, los contribuyentes excluyen las garantías implícitas de comerciabilidad, idoneidad para un propósito particular y no infracción.
+
+## Licencias de uso
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** aplica a los siguientes componentes:
+
+#### 1. Etsi.Ts102034
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/LICENSE.MD b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/LICENSE.MD
new file mode 100644
index 00000000..769f6508
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/LICENSE.MD
@@ -0,0 +1,59 @@
+# Library 'Etsi.Ts102034'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Terms and conditions
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+## Licenses
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** applies to the following components:
+
+#### 1. Etsi.Ts102034
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/License.txt b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/License.txt
new file mode 100644
index 00000000..3d4cc979
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/License.txt
@@ -0,0 +1,73 @@
+##############################################################################
+##
+## Library 'Etsi.Ts102034'
+##
+##############################################################################
+##
+## IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+## by Codeplex/GitHub user AlphaCentaury
+##
+## Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+##
+## http://www.alphacentaury.org/movistartv
+## https://github.com/AlphaCentaury
+##
+##############################################################################
+
+A.- Terms and conditions
+==============================================================================
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+
+B.- Licenses
+==============================================================================
+
+ * Microsoft Reciprocal License (Ms-RL)
+
+
+////////////////////////////////////////////////////////////
+//
+// Microsoft Reciprocal License (Ms-RL)
+//
+////////////////////////////////////////////////////////////
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+////////////////////////////////////////////////////////////
+
+>>> 'Microsoft Reciprocal License (Ms-RL)' applies to the following components: <<<
+
+1. Etsi.Ts102034
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Properties/AssemblyInfo.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..cab1a975
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/Properties/AssemblyInfo.cs
@@ -0,0 +1,40 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ETSI TS 102-034 XML data types")]
+[assembly: AssemblyDescription("Etsi.Ts102034")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCopyright(SolutionVersion.DefaultCopyright)]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("e7f4ce33-4e27-4f04-a71d-11e98480534d")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+[assembly: AssemblyVersion(SolutionVersion.DefaultAssemblyVersion)]
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/licensing.xml b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/licensing.xml
new file mode 100644
index 00000000..59b57a96
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/licensing.xml
@@ -0,0 +1,100 @@
+
+
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+
+
+
+
+
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/AnnouncementSupport.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/AnnouncementSupport.cs
new file mode 100644
index 00000000..05d76d75
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/AnnouncementSupport.cs
@@ -0,0 +1,39 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ ///
+ /// [en] Implementation of the Announcement support indicator from ETSI EN 300 468.
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:AnnouncementSupport
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class AnnouncementSupport
+ {
+ [XmlElement("Announcement")]
+ public AnnouncementSupportAnnouncement[] Announcement;
+
+ [XmlAttribute]
+ public string SupportIndicator;
+ } // class AnnouncementSupport
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/AnnouncementSupportAnnouncement.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/AnnouncementSupportAnnouncement.cs
new file mode 100644
index 00000000..5d3520e9
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/AnnouncementSupportAnnouncement.cs
@@ -0,0 +1,45 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class AnnouncementSupportAnnouncement
+ {
+ [XmlElement("DVBTriplet", typeof(DvbTriplet))]
+ public DvbTriplet DvbTriplet;
+
+ [XmlElement("TextualIdentifier", typeof(TextualIdentifier))]
+ public TextualIdentifier TextualIdentifier;
+
+ [XmlAttribute]
+ public string Type;
+
+ [XmlAttribute]
+ public string ReferenceType;
+
+ [XmlAttribute]
+ public string ComponentTag;
+ } // class AnnouncementSupportAnnouncement
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/BroadcastDiscoveryRoot.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/BroadcastDiscoveryRoot.cs
new file mode 100644
index 00000000..eb5bfb49
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/BroadcastDiscoveryRoot.cs
@@ -0,0 +1,39 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ [XmlRoot(ElementName = "ServiceDiscovery", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1", IsNullable = false)]
+ public class BroadcastDiscoveryRoot
+ {
+ ///
+ /// Version of this record. A change in this value indicates a change in one of the BroadcastDiscovery Records
+ ///
+ [XmlAttribute]
+ public string Version;
+
+ [XmlElement("BroadcastDiscovery")]
+ public BroadcastOffering[] BroadcastDiscovery;
+ } // class BroadcastDiscoveryRoot
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/BroadcastOffering.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/BroadcastOffering.cs
new file mode 100644
index 00000000..4ff71f52
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/BroadcastOffering.cs
@@ -0,0 +1,37 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ ///
+ /// [en] Provides a list of TS or services discovery information
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:BroadcastOffering
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(TypeName = "BroadcastOffering", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class BroadcastOffering : OfferingBase
+ {
+ [XmlElement("ServiceList")]
+ public IpServiceList[] Services;
+ } // class BroadcastOffering
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/CountryAvailability.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/CountryAvailability.cs
new file mode 100644
index 00000000..3f1f29f6
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/CountryAvailability.cs
@@ -0,0 +1,41 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class CountryAvailability
+ {
+ [XmlAttribute]
+ public string Countries;
+
+ [XmlAttribute]
+ [DefaultValue(true)]
+ public bool Available;
+
+ public CountryAvailability()
+ {
+ Available = true;
+ } // default constructor
+ } // class CountryAvailability
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/FecLayerAddress.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/FecLayerAddress.cs
new file mode 100644
index 00000000..c3af4021
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/FecLayerAddress.cs
@@ -0,0 +1,59 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(TypeName="FecLayerAddress", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class FecLayerAddress
+ {
+ [XmlAttribute]
+ public string Address;
+
+ [XmlAttribute]
+ public string Source;
+
+ [XmlAttribute]
+ public ushort Port;
+
+ [XmlIgnore]
+ public bool PortSpecified;
+
+ [XmlAttribute(DataType = "positiveInteger")]
+ public string MaxBitrate;
+
+ [XmlAttribute("RTSPControlURL", DataType = "anyURI")]
+ public string RtspControlUrl;
+
+ [XmlAttribute("PayloadTypeNumber")]
+ public uint PayloadTypeNumber;
+
+ [XmlIgnore]
+ public bool PayloadTypeNumberSpecified;
+
+ [XmlAttribute("TransportProtocol")]
+ public TransportProtocolKind TransportProtocol;
+
+ [XmlIgnore]
+ public bool TransportProtocolSpecified;
+ } // class FecLayerAddress
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/IpMulticastAddress.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/IpMulticastAddress.cs
new file mode 100644
index 00000000..2501a141
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/IpMulticastAddress.cs
@@ -0,0 +1,88 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class IpMulticastAddress
+ {
+ [XmlElement("FECBaseLayer")]
+ public FecLayerAddress FecBaseLayer;
+
+ [XmlElement("FECEnhancementLayer")]
+ public FecLayerAddress[] FecEnhancementLayer;
+
+ [XmlElement("CNAME")]
+ public string CName;
+
+ [XmlElement("ssrc")]
+ public uint Ssrc;
+
+ [XmlIgnore]
+ public bool SsrcSpecified;
+
+ [XmlElement("RTPRetransmission")]
+ public RetransmissionInfo RtpRetransmission;
+
+ [XmlAttribute]
+ public string Source;
+
+ [XmlAttribute]
+ public string Address;
+
+ [XmlAttribute]
+ public ushort Port;
+
+ [XmlAttribute("Streaming")]
+ public StreamingKind Streaming;
+
+ ///
+ [XmlIgnore]
+ public bool StreamingSpecified;
+
+ [XmlIgnore]
+ public string Url => $"{Protocol}://@{Address}:{Port}";
+
+ [XmlIgnore]
+ public string Protocol
+ {
+ get
+ {
+ if ((!StreamingSpecified) || (Streaming == StreamingKind.Rtp))
+ {
+ return "rtp";
+ } // if
+
+ if (Streaming == StreamingKind.Udp)
+ {
+ return "udp";
+ } // if
+
+ throw new IndexOutOfRangeException();
+ } // get
+ } // Protocol
+
+ public override string ToString() => Url;
+
+ } // class IpMulticastAddress
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/IpService.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/IpService.cs
new file mode 100644
index 00000000..bf595b03
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/IpService.cs
@@ -0,0 +1,63 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(TypeName="IPService", Namespace = Namespace)]
+ public class IpService
+ {
+ public const string Namespace = "urn:dvb:metadata:iptv:sdns:2012-1";
+
+ [XmlElement("ServiceLocation")]
+ public ServiceLocation ServiceLocation;
+
+ [XmlElement("TextualIdentifier")]
+ public TextualIdentifier TextualIdentifier;
+
+ [XmlElement("DVBTriplet")]
+ public DvbTriplet[] DvbTriplet;
+
+ [XmlElement(DataType = "positiveInteger")]
+ public string MaxBitrate;
+
+ [XmlElement("SI")]
+ public ServiceInformation ServiceInformation;
+
+ [XmlElement("AudioAttributes")]
+ public AudioAttributes[] AudioAttributes;
+
+ [XmlElement("VideoAttributes")]
+ public VideoAttributes[] VideoAttributes;
+
+ [XmlElement("ServiceAvailability")]
+ public ServiceAvailability[] ServiceAvailability;
+
+ [XmlElement("Usage")]
+ public ServiceUsage[] Usage;
+
+ [XmlElement("LinkedService")]
+ public IpService[] LinkedService;
+ } // class IpService
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/IpServiceList.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/IpServiceList.cs
new file mode 100644
index 00000000..5b15256a
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/IpServiceList.cs
@@ -0,0 +1,36 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(TypeName="IPServiceList", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class IpServiceList
+ {
+ [XmlElement("ServicesDescriptionLocation")]
+ public DescriptionLocation[] ServicesDescriptionLocation;
+
+ [XmlElement("SingleService")]
+ public IpService[] Services;
+ } // class IpServiceList
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescription.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescription.cs
new file mode 100644
index 00000000..2f441c57
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescription.cs
@@ -0,0 +1,47 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class MosaicDescription
+ {
+ [XmlElement("LogicalCell")]
+ public MosaicDescriptionLogicalCell[] LogicalCell;
+
+ [XmlAttribute]
+ [DefaultValue(true)]
+ public bool EntryPoint;
+
+ [XmlAttribute]
+ public string HorizontalCellsNumber;
+
+ [XmlAttribute]
+ public string VerticalCellsNumber;
+
+ public MosaicDescription()
+ {
+ EntryPoint = true;
+ } // default constructor
+ } // class MosaicDescription
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescriptionAudioLink.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescriptionAudioLink.cs
new file mode 100644
index 00000000..c44149f2
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescriptionAudioLink.cs
@@ -0,0 +1,35 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class MosaicDescriptionAudioLink
+ {
+ [XmlAttribute]
+ public string Language;
+
+ [XmlAttribute]
+ public string ComponentTag;
+ }// class MosaicDescriptionAudioLink
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescriptionElementaryCell.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescriptionElementaryCell.cs
new file mode 100644
index 00000000..50192df2
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescriptionElementaryCell.cs
@@ -0,0 +1,32 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class MosaicDescriptionElementaryCell
+ {
+ [XmlAttribute]
+ public ushort CellId;
+ } // class MosaicDescriptionElementaryCell
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescriptionLogicalCell.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescriptionLogicalCell.cs
new file mode 100644
index 00000000..eff1086c
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescriptionLogicalCell.cs
@@ -0,0 +1,57 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class MosaicDescriptionLogicalCell
+ {
+ [XmlElement("ElementaryCell")]
+ public MosaicDescriptionElementaryCell[] ElementaryCell;
+
+ [XmlElement("AudioLink")]
+ public MosaicDescriptionAudioLink[] AudioLink;
+
+ [XmlElement("DVBTriplet", typeof(DvbTriplet))]
+ public DvbTriplet DvbTriplet;
+
+ [XmlElement("PackageId", typeof(MosaicDescriptionPackageId))]
+ public MosaicDescriptionPackageId PackageId;
+
+ [XmlElement("TextualId", typeof(TextualIdentifier))]
+ public TextualIdentifier TextualId;
+
+ [XmlAttribute]
+ public ushort CellId;
+
+ [XmlAttribute]
+ public string PresentationInfo;
+
+ [XmlAttribute]
+ public string LinkageInfo;
+
+ [XmlAttribute]
+ public string EventId;
+ } // class MosaicDescriptionLogicalCell
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescriptionPackageId.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescriptionPackageId.cs
new file mode 100644
index 00000000..8ceeb562
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MosaicDescriptionPackageId.cs
@@ -0,0 +1,35 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class MosaicDescriptionPackageId
+ {
+ [XmlAttribute]
+ public string Domain;
+
+ [XmlText]
+ public string Value;
+ } // class MosaicDescriptionPackageId
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MulticastRetransmission.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MulticastRetransmission.cs
new file mode 100644
index 00000000..6d1f5408
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/MulticastRetransmission.cs
@@ -0,0 +1,71 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class MulticastRetransmission
+ {
+ [XmlAttribute]
+ public string SourceAddress;
+
+ [XmlAttribute]
+ public string GroupAddress;
+
+ [XmlAttribute("ssrc")]
+ public uint Ssrc;
+
+ [XmlIgnore]
+ public bool SsrcSpecified;
+
+ [XmlAttribute("RTPPayloadTypeNumber")]
+ public uint RtpPayloadTypeNumber;
+
+ [XmlIgnore]
+ public bool RtpPayloadTypeNumberSpecified;
+
+ [XmlAttribute("dvb-original-copy-ret")]
+ public bool DvbOriginalCopyRet;
+
+ [XmlIgnore]
+ public bool DvbOriginalCopyRetSpecified;
+
+ [XmlAttribute("rtcp-mux")]
+ [DefaultValue(false)]
+ public bool RtcpMux;
+
+ [XmlAttribute]
+ public uint DestinationPort;
+
+ [XmlIgnore]
+ public bool DestinationPortSpecified;
+
+ [XmlAttribute("rtx-time")]
+ public uint RtxTime;
+
+ public MulticastRetransmission()
+ {
+ RtcpMux = false;
+ } // default constructor
+ } // MulticastRetransmission
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/PrimaryServiceInformationSource.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/PrimaryServiceInformationSource.cs
new file mode 100644
index 00000000..abae7ae6
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/PrimaryServiceInformationSource.cs
@@ -0,0 +1,30 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType("PrimaryServiceInformationSource", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public enum PrimaryServiceInformationSource
+ {
+ [XmlEnum("Stream")]
+ Stream,
+ [XmlEnum("XML")]
+ Xml,
+ } // enum PrimaryServiceInformationSource
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ProprietaryServiceGenre.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ProprietaryServiceGenre.cs
new file mode 100644
index 00000000..4323fc06
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ProprietaryServiceGenre.cs
@@ -0,0 +1,39 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [Serializable]
+ [DebuggerStepThrough]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class ProprietaryServiceGenre
+ {
+ [XmlAttribute("href")]
+ public string Code
+ {
+ get;
+ set;
+ } // Code
+
+ [XmlElement(Namespace = "urn:tva:metadata:2007")]
+ public string Name
+ {
+ get;
+ set;
+ } // Name
+ } // class ProprietaryServiceGenre
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ReplacementService.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ReplacementService.cs
new file mode 100644
index 00000000..431c8900
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ReplacementService.cs
@@ -0,0 +1,49 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ ///
+ /// [en] implementation of The replacement_Service part of the Linkage_Descriptor in ETSI EN 300 468. Describes a service to try if the specified one fails.
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:ReplacementService
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class ReplacementService
+ {
+ [XmlElement("DVBTriplet", typeof(DvbTriplet))]
+ public DvbTriplet DvbTriplet;
+
+ [XmlElement("TextualIdentifier", typeof(TextualIdentifier))]
+ public TextualIdentifier TextualIdentifier;
+
+ [XmlAttribute("ReplacementType")]
+ [DefaultValue("5")]
+ public string Kind;
+
+ public ReplacementService()
+ {
+ Kind = "5";
+ } // default constructor
+ } // class ReplacementService
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/RetransmissionInfo.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/RetransmissionInfo.cs
new file mode 100644
index 00000000..fbfbc256
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/RetransmissionInfo.cs
@@ -0,0 +1,38 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("RetransmissionInfo", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class RetransmissionInfo
+ {
+ [XmlElement("RTCPReporting")]
+ public RtcpRetransmissionReporting RtcpReporting;
+
+ [XmlElement("UnicastRET")]
+ public UnicastRetransmission UnicastRetransmission;
+
+ [XmlElement("MulticastRET")]
+ public MulticastRetransmission MulticastRetransmission;
+ } // class RetransmissionInfo
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/RtcpRetransmissionReporting.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/RtcpRetransmissionReporting.cs
new file mode 100644
index 00000000..0b0b9ca5
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/RtcpRetransmissionReporting.cs
@@ -0,0 +1,88 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("RtcpRetransmissionReporting", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class RtcpRetransmissionReporting
+ {
+ [XmlAttribute]
+ public string DestinationAddress;
+
+ [XmlAttribute]
+ public ushort DestinationPort;
+
+ [XmlIgnore]
+ public bool DestinationPortSpecified;
+
+ [XmlAttribute("dvb-t-ret", DataType = "positiveInteger")]
+ public string DvbRetransmission;
+
+ [XmlAttribute("rtcp-bandwidth", DataType = "positiveInteger")]
+ public string TtcpBandwidth;
+
+ [XmlAttribute("rtcp-rsize", DataType = "positiveInteger")]
+ public string RtcpRetransmissionSize;
+
+ [XmlAttribute("trr-int", DataType = "positiveInteger")]
+ public string TrrInt;
+
+ [XmlAttribute("dvb-disable-rtcp-rr")]
+ [DefaultValue(false)]
+ public bool DvbDisableTtcpRr;
+
+ [XmlAttribute("dvb-enable-byte")]
+ [DefaultValue(false)]
+ public bool DvbEnableByte;
+
+ [XmlAttribute("dvb-t-wait-min")]
+ [DefaultValue(typeof(uint), "0")]
+ public uint DvbTWaitMin;
+
+ [XmlAttribute("dvb-t-wait-max")]
+ [DefaultValue(typeof(uint), "0")]
+ public uint DvbTWaitMax;
+
+ [XmlAttribute("dvb-ssrc-bitmask")]
+ [DefaultValue("ffffffff")]
+ public string DvbSsrcBitmask;
+
+ [XmlAttribute("dvb-rsi-mc-ret")]
+ public bool DvbRsiMcRet;
+
+ [XmlIgnore]
+ public bool DvbRsiMcRetSpecified;
+
+ [XmlAttribute("dvb-ssrc-upstream-client", DataType = "positiveInteger")]
+ public string DvbSsrcUpstreamClient;
+
+ public RtcpRetransmissionReporting()
+ {
+ DvbDisableTtcpRr = false;
+ DvbEnableByte = false;
+ DvbTWaitMin = 0;
+ DvbTWaitMax = 0;
+ DvbSsrcBitmask = "ffffffff";
+ } // default constructor
+ } // class RtcpRetransmissionReporting
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/RtspUrl.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/RtspUrl.cs
new file mode 100644
index 00000000..e5fc2c3f
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/RtspUrl.cs
@@ -0,0 +1,35 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class RtspUrl
+ {
+ [XmlAttribute("RTSPControlURL", DataType = "anyURI")]
+ public string ControlUrl;
+
+ [XmlText(DataType = "anyURI")]
+ public string Value;
+ } // class RtspUrl
+} // namespace
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ServiceInformation.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ServiceInformation.cs
similarity index 79%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ServiceInformation.cs
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ServiceInformation.cs
index fab89888..22e72208 100644
--- a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ServiceInformation.cs
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ServiceInformation.cs
@@ -1,85 +1,94 @@
-// Copyright (C) 2014-2016, Codeplex/GitHub user AlphaCentaury
-// All rights reserved, except those granted by the governing license of this software. See 'license.txt' file in the project root for complete license information.
-
-using Etsi.Ts102034.v010501.XmlSerialization.Common;
-using System;
-using System.CodeDom.Compiler;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Diagnostics;
-using System.Xml;
-using System.Xml.Serialization;
-
-namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
-{
- ///
- /// Implementation of traditional DVB SI information about a service
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SI
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType("SI", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class ServiceInformation
- {
- [XmlElement("Name")]
- public MultilingualText[] Name;
-
- [XmlElement("Description")]
- public MultilingualText[] Description;
-
- [XmlElement("ServiceDescriptionLocation")]
- public DescriptionLocation[] ServiceDescriptionLocation;
-
- [XmlElement("ContentGenre")]
- public sbyte[] ContentGenre;
-
- [XmlElement("CountryAvailability")]
- public CountryAvailability[] CountryAvailability;
-
- [XmlElement("ReplacementService")]
- public ReplacementService[] ReplacementService;
-
- [XmlElement("MosaicDescription")]
- public MosaicDescription MosaicDescription;
-
- [XmlElement("AnnouncementSupport")]
- public AnnouncementSupport AnnouncementSupport;
-
- [XmlAttribute]
- public string ServiceType;
-
- [XmlAttribute]
- [DefaultValue(PrimaryServiceInformationSource.Xml)]
- public PrimaryServiceInformationSource PrimaryServiceInformationSource;
-
- #region Extensions -- Content provider proprietary tags
-
- [XmlAnyElement()]
- public XmlElement[] ExtraData
- {
- get;
- set;
- } // ExtraData
-
- ///
- /// movistar+ short name
- ///
- [XmlElement("ShortName")]
- public MultilingualText[] ProprietaryShortName;
-
- [XmlElement("Genre")]
- public ProprietaryServiceGenre ProprietaryGenre;
-
- [XmlElement("ParentalGuidance")]
- public TvAnytime.Mpeg7.ParentalGuidance ProprietaryParentalGuidance;
-
- #endregion
-
- public ServiceInformation()
- {
- this.PrimaryServiceInformationSource = PrimaryServiceInformationSource.Xml;
- } // default constructor
- } // class ServiceInformation
-} // namespace
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ ///
+ /// Implementation of traditional DVB SI information about a service
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SI
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("SI", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class ServiceInformation
+ {
+ [XmlElement("Name")]
+ public MultilingualText[] Name;
+
+ [XmlElement("Description")]
+ public MultilingualText[] Description;
+
+ [XmlElement("ServiceDescriptionLocation")]
+ public DescriptionLocation[] ServiceDescriptionLocation;
+
+ [XmlElement("ContentGenre")]
+ public sbyte[] ContentGenre;
+
+ [XmlElement("CountryAvailability")]
+ public CountryAvailability[] CountryAvailability;
+
+ [XmlElement("ReplacementService")]
+ public ReplacementService[] ReplacementService;
+
+ [XmlElement("MosaicDescription")]
+ public MosaicDescription MosaicDescription;
+
+ [XmlElement("AnnouncementSupport")]
+ public AnnouncementSupport AnnouncementSupport;
+
+ [XmlAttribute]
+ public string ServiceType;
+
+ [XmlAttribute]
+ [DefaultValue(PrimaryServiceInformationSource.Xml)]
+ public PrimaryServiceInformationSource PrimaryServiceInformationSource;
+
+ #region Extensions -- Content provider proprietary tags
+
+ [XmlAnyElement()]
+ public XmlElement[] ExtraData
+ {
+ get;
+ set;
+ } // ExtraData
+
+ ///
+ /// movistar+ short name
+ ///
+ [XmlElement("ShortName")]
+ public MultilingualText[] ProprietaryShortName;
+
+ [XmlElement("Genre")]
+ public ProprietaryServiceGenre ProprietaryGenre;
+
+ [XmlElement("ParentalGuidance")]
+ public TvAnytime.Mpeg7.ParentalGuidance ProprietaryParentalGuidance;
+
+ #endregion
+
+ public ServiceInformation()
+ {
+ PrimaryServiceInformationSource = PrimaryServiceInformationSource.Xml;
+ } // default constructor
+ } // class ServiceInformation
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ServiceLocation.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ServiceLocation.cs
new file mode 100644
index 00000000..29048608
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ServiceLocation.cs
@@ -0,0 +1,52 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ ///
+ /// [en] The location of a service. Currently this supports either a broadcast system identifier or a multicast address (ASM and SSM) or RTSP.
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:ServiceLocation
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(TypeName = "ServiceLocation", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class ServiceLocation
+ {
+ [XmlElement("BroadcastSystem", typeof(string))]
+ public string BroadcastSystem;
+
+ [XmlElement("IPMulticastAddress", typeof(IpMulticastAddress))]
+ public IpMulticastAddress IpMulticastAddress;
+
+ [XmlElement("RTSPURL", typeof(RtspUrl))]
+ public RtspUrl RtspUrl;
+
+ [XmlIgnore]
+ public string LocationUrl
+ {
+ get
+ {
+ if (IpMulticastAddress != null) return IpMulticastAddress.Url;
+ return RtspUrl?.Value;
+ } // get
+ } // LocationUrl
+ } // class ServiceLocation
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ServiceUsage.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ServiceUsage.cs
new file mode 100644
index 00000000..b4b2ed30
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/ServiceUsage.cs
@@ -0,0 +1,34 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType("Usage", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public enum ServiceUsage
+ {
+ Fcc,
+ PiP,
+ Main,
+ Hd,
+ Sd,
+ [XmlEnum("3D")]
+ ThreeD,
+ } // ServiceUsage
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/StreamingKind.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/StreamingKind.cs
new file mode 100644
index 00000000..3ae14233
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/StreamingKind.cs
@@ -0,0 +1,30 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(TypeName="StreamingType", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public enum StreamingKind
+ {
+ [XmlEnum("rtp")]
+ Rtp,
+ [XmlEnum("udp")]
+ Udp,
+ } // enum StreamingKind
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/TransportProtocolKind.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/TransportProtocolKind.cs
new file mode 100644
index 00000000..0e5f7022
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/TransportProtocolKind.cs
@@ -0,0 +1,31 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.Xml.Serialization;
+
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType("TransportProtocolType", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public enum TransportProtocolKind
+ {
+ [XmlEnum("RTP-AVP")]
+ RtpAvp,
+ [XmlEnum("UDP-FEC")]
+ UdpFec,
+ } // enum TransportProtocolKind
+} // namespace
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/UnicastRetransmission.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/UnicastRetransmission.cs
similarity index 77%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/UnicastRetransmission.cs
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/UnicastRetransmission.cs
index 03374c49..5e69cdc3 100644
--- a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/UnicastRetransmission.cs
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/BroadcastDiscovery/UnicastRetransmission.cs
@@ -1,78 +1,87 @@
-// Copyright (C) 2014-2016, Codeplex/GitHub user AlphaCentaury
-// All rights reserved, except those granted by the governing license of this software. See 'license.txt' file in the project root for complete license information.
-
-using System;
-using System.CodeDom.Compiler;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Diagnostics;
-using System.Xml.Serialization;
-
-namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
-{
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType("UnicastRetransmission", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class UnicastRetransmission
- {
- [XmlAttribute("trr-int")]
- public uint TrrInt;
-
- [XmlIgnore]
- public bool TrrIntSpecified;
-
- [XmlAttribute("DestinationPort-ForRTCPReporting")]
- public uint DestinationPortForRtcpReporting;
-
- ///
- [XmlIgnore]
- public bool DestinationPortForRtcpReportingSpecified;
-
- [XmlAttribute]
- public uint SourcePort;
-
- [XmlIgnore]
- public bool SourcePortSpecified;
-
- [XmlAttribute("RTSPControlURL", DataType = "anyURI")]
- public string RtspControlUrl;
-
- [XmlAttribute("ssrc")]
- public uint Ssrc;
-
- [XmlIgnore]
- public bool SsrcSpecified;
-
- [XmlAttribute("RTPPayloadTypeNumber")]
- public uint RtpPayloadTypeNumber;
-
- [XmlIgnore]
- public bool RtpPayloadTypeNumberSpecified;
-
- [XmlAttribute("dvb-original-copy-ret")]
- public bool DvbOriginalCopyRet;
-
- [XmlIgnore]
- public bool DvbOriginalCopyRetSpecified;
-
- [XmlAttribute("rtcp-mux")]
- [DefaultValue(false)]
- public bool RtcpMux;
-
- [XmlAttribute]
- public uint DestinationPort;
-
- [XmlIgnore]
- public bool DestinationPortSpecified;
-
- [XmlAttribute("rtx-time")]
- public uint RtxTime;
-
- public UnicastRetransmission()
- {
- this.RtcpMux = false;
- } // default constructor
- } // class UnicastRetransmission
-} // namespace
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("UnicastRetransmission", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class UnicastRetransmission
+ {
+ [XmlAttribute("trr-int")]
+ public uint TrrInt;
+
+ [XmlIgnore]
+ public bool TrrIntSpecified;
+
+ [XmlAttribute("DestinationPort-ForRTCPReporting")]
+ public uint DestinationPortForRtcpReporting;
+
+ ///
+ [XmlIgnore]
+ public bool DestinationPortForRtcpReportingSpecified;
+
+ [XmlAttribute]
+ public uint SourcePort;
+
+ [XmlIgnore]
+ public bool SourcePortSpecified;
+
+ [XmlAttribute("RTSPControlURL", DataType = "anyURI")]
+ public string RtspControlUrl;
+
+ [XmlAttribute("ssrc")]
+ public uint Ssrc;
+
+ [XmlIgnore]
+ public bool SsrcSpecified;
+
+ [XmlAttribute("RTPPayloadTypeNumber")]
+ public uint RtpPayloadTypeNumber;
+
+ [XmlIgnore]
+ public bool RtpPayloadTypeNumberSpecified;
+
+ [XmlAttribute("dvb-original-copy-ret")]
+ public bool DvbOriginalCopyRet;
+
+ [XmlIgnore]
+ public bool DvbOriginalCopyRetSpecified;
+
+ [XmlAttribute("rtcp-mux")]
+ [DefaultValue(false)]
+ public bool RtcpMux;
+
+ [XmlAttribute]
+ public uint DestinationPort;
+
+ [XmlIgnore]
+ public bool DestinationPortSpecified;
+
+ [XmlAttribute("rtx-time")]
+ public uint RtxTime;
+
+ public UnicastRetransmission()
+ {
+ RtcpMux = false;
+ } // default constructor
+ } // class UnicastRetransmission
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/DescriptionLocation.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/DescriptionLocation.cs
new file mode 100644
index 00000000..2b482c08
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/DescriptionLocation.cs
@@ -0,0 +1,39 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.Common
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(TypeName = "DescriptionLocationBCG", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class DescriptionLocation
+ {
+ [XmlAttribute("preferred")]
+ public bool Preferred;
+
+ /// True if Preferred is present in XML
+ [XmlIgnore]
+ public bool PreferredSpecified;
+
+ [XmlText]
+ public string Value;
+ } // class DescriptionLocation
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/DvbStpTransportMode.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/DvbStpTransportMode.cs
new file mode 100644
index 00000000..2a8b9d5b
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/DvbStpTransportMode.cs
@@ -0,0 +1,38 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.Common
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class DvbStpTransportMode : PayloadList
+ {
+ [XmlAttribute]
+ public string Source;
+
+ [XmlAttribute]
+ public string Address;
+
+ [XmlAttribute]
+ public ushort Port;
+ } // class DvbStpTransportMode
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/DvbTriplet.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/DvbTriplet.cs
new file mode 100644
index 00000000..da582da9
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/DvbTriplet.cs
@@ -0,0 +1,46 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.Common
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class DvbTriplet
+ {
+ [XmlAttribute]
+ public ushort OrigNetId;
+
+ [XmlAttribute]
+ public ushort TsId;
+
+ [XmlAttribute]
+ public ushort ServiceId;
+
+ [XmlAttribute]
+ public string TsIdWildcard;
+
+ public DvbTriplet()
+ {
+ TsIdWildcard = "*";
+ } // default constructor
+ } // class DvbTriplet
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/HttpTransportMode.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/HttpTransportMode.cs
new file mode 100644
index 00000000..efb24c69
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/HttpTransportMode.cs
@@ -0,0 +1,41 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.Common
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class HttpTransportMode : PayloadList
+ {
+ [XmlAttribute(DataType = "anyURI")]
+ public string Location;
+
+ [XmlAttribute("SOAP")]
+ [DefaultValue("false")]
+ public string Soap;
+
+ public HttpTransportMode()
+ {
+ Soap = "false";
+ } // default constructor
+ } // class HttpTransportMode
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/MultilingualText.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/MultilingualText.cs
new file mode 100644
index 00000000..a9a2b8fc
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/MultilingualText.cs
@@ -0,0 +1,39 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.Common
+{
+ ///
+ /// Specifies an element containing a textual message, which has a Language attribute specifying the language of the
+ /// string, using the ISO 639-2 three letter language code.
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class MultilingualText
+ {
+ [XmlAttribute]
+ public string Language;
+
+ [XmlText]
+ public string Value;
+ } // class MultilingualText
+} // namespace
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/Common/OfferingBase.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/OfferingBase.cs
similarity index 76%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/Common/OfferingBase.cs
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/OfferingBase.cs
index 753d973b..9b816dfa 100644
--- a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/Common/OfferingBase.cs
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/OfferingBase.cs
@@ -1,47 +1,56 @@
-// Copyright (C) 2014-2016, Codeplex/GitHub user AlphaCentaury
-// All rights reserved, except those granted by the governing license of this software. See 'license.txt' file in the project root for complete license information.
-
-using Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery;
-using Etsi.Ts102034.v010501.XmlSerialization.PackageDiscovery;
-using System;
-using System.CodeDom.Compiler;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Diagnostics;
-using System.Xml.Serialization;
-
-namespace Etsi.Ts102034.v010501.XmlSerialization.Common
-{
- ///
- /// [en] Base class from which all offerings should be derived
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:OfferingBase
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
- //[XmlInclude(typeof(RmsFusDiscovery))]
- //[XmlInclude(typeof(RegionalizationOffering))]
- //[XmlInclude(typeof(BroadcastContentGuideOffering))]
- //[XmlInclude(typeof(CoDOffering))]
- //[XmlInclude(typeof(SRMOffering))]
- //[XmlInclude(typeof(ReferencedServices))]
- [XmlInclude(typeof(PackagedServices))]
- [XmlInclude(typeof(BroadcastOffering))]
- public abstract partial class OfferingBase
- {
- ///
- /// An internet DNS domain name registered by the Service Provider that uniquely identifies the Service Provider
- ///
- [XmlAttribute]
- public string DomainName;
-
- ///
- /// Version of the Service Provider(s) Discovery record; the version number shall be incremented every time a change in
- /// any of the records that comprise the service discovery information for this Service Provider occurs.
- ///
- [XmlAttribute]
- public string Version;
- } // class OfferingBase
-} // namespace
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery;
+using Etsi.Ts102034.v010501.XmlSerialization.PackageDiscovery;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.Common
+{
+ ///
+ /// [en] Base class from which all offerings should be derived
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:OfferingBase
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ //[XmlInclude(typeof(RmsFusDiscovery))]
+ //[XmlInclude(typeof(RegionalizationOffering))]
+ //[XmlInclude(typeof(BroadcastContentGuideOffering))]
+ //[XmlInclude(typeof(CoDOffering))]
+ //[XmlInclude(typeof(SRMOffering))]
+ //[XmlInclude(typeof(ReferencedServices))]
+ [XmlInclude(typeof(PackagedServices))]
+ [XmlInclude(typeof(BroadcastOffering))]
+ public abstract class OfferingBase
+ {
+ ///
+ /// An internet DNS domain name registered by the Service Provider that uniquely identifies the Service Provider
+ ///
+ [XmlAttribute]
+ public string DomainName;
+
+ ///
+ /// Version of the Service Provider(s) Discovery record; the version number shall be incremented every time a change in
+ /// any of the records that comprise the service discovery information for this Service Provider occurs.
+ ///
+ [XmlAttribute]
+ public string Version;
+ } // class OfferingBase
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/PackageAvailabilityCountryCode.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/PackageAvailabilityCountryCode.cs
new file mode 100644
index 00000000..0b08fdf0
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/PackageAvailabilityCountryCode.cs
@@ -0,0 +1,41 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.Common
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class PackageAvailabilityCountryCode
+ {
+ [XmlAttribute("Availability")]
+ [DefaultValue(true)]
+ public bool Availability;
+
+ [XmlText]
+ public string Value;
+
+ public PackageAvailabilityCountryCode()
+ {
+ Availability = true;
+ } // default constructor
+ } // class PackageAvailabilityCountryCode
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/PayloadList.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/PayloadList.cs
new file mode 100644
index 00000000..c60912ec
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/PayloadList.cs
@@ -0,0 +1,36 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.ProviderDiscovery;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.Common
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ [XmlInclude(typeof(DvbStpTransportMode))]
+ [XmlInclude(typeof(HttpTransportMode))]
+ [XmlInclude(typeof(ProviderOfferingPull))]
+ public class PayloadList
+ {
+ [XmlElement("PayloadId")]
+ public PayloadListPayloadId[] PayloadId;
+ } // PayloadList
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/PayloadListPayloadId.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/PayloadListPayloadId.cs
new file mode 100644
index 00000000..0f95d754
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/PayloadListPayloadId.cs
@@ -0,0 +1,35 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.Common
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class PayloadListPayloadId
+ {
+ [XmlElement("Segment")]
+ public PayloadListSegment[] Segment;
+
+ [XmlAttribute]
+ public string Id;
+ } // PayloadListPayloadId
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/PayloadListSegment.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/PayloadListSegment.cs
new file mode 100644
index 00000000..26a7f3ef
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/PayloadListSegment.cs
@@ -0,0 +1,38 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.Common
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("PayloadListSegmentType", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class PayloadListSegment
+ {
+ [XmlElement("TargetPackage")]
+ public TargetPackage[] TargetPackage;
+
+ [XmlAttribute]
+ public string Version;
+
+ [XmlAttribute("ID")]
+ public string Id;
+ } // class PayloadListSegment
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/ServiceAvailability.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/ServiceAvailability.cs
new file mode 100644
index 00000000..226c98d9
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/ServiceAvailability.cs
@@ -0,0 +1,34 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.Common
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class ServiceAvailability
+ {
+ public PackageAvailabilityCountryCode CountryCode;
+
+ [XmlElement("Cells")]
+ public string[] Cells;
+ } // ServiceAvailability
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/TargetPackage.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/TargetPackage.cs
new file mode 100644
index 00000000..94b9fd20
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/TargetPackage.cs
@@ -0,0 +1,35 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.Common
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("TargetPackageType", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class TargetPackage
+ {
+ [XmlElement("PackageType")]
+ public MultilingualText[] PackageType;
+
+ [XmlAttribute("PackageIDRef")]
+ public string PackageIdRef;
+ } // class TargetPackage
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/TextualIdentifier.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/TextualIdentifier.cs
new file mode 100644
index 00000000..653c2593
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Common/TextualIdentifier.cs
@@ -0,0 +1,36 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.Common
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ //[XmlInclude(typeof(PackageTextualIdentifier))]
+ public class TextualIdentifier
+ {
+ [XmlAttribute]
+ public string DomainName;
+
+ [XmlAttribute]
+ public string ServiceName;
+ } // class TextualIdentifier
+} // namespace
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/ContentGuideDiscovery/BroadcastContentGuide.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ContentGuideDiscovery/BroadcastContentGuide.cs
similarity index 77%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/ContentGuideDiscovery/BroadcastContentGuide.cs
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ContentGuideDiscovery/BroadcastContentGuide.cs
index 64a045b7..483ca3cd 100644
--- a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/ContentGuideDiscovery/BroadcastContentGuide.cs
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ContentGuideDiscovery/BroadcastContentGuide.cs
@@ -1,65 +1,74 @@
-// Copyright (C) 2014-2016, Codeplex/GitHub user AlphaCentaury
-// All rights reserved, except those granted by the governing license of this software. See 'license.txt' file in the project root for complete license information.
-
-using Etsi.Ts102034.v010501.XmlSerialization.Common;
-using Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata;
-using System;
-using System.CodeDom.Compiler;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Diagnostics;
-using System.Xml.Serialization;
-
-namespace Etsi.Ts102034.v010501.XmlSerialization.ContentGuideDiscovery
-{
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class BroadcastContentGuide
- {
- // TODO: clean-up code
- public class TransportModeClass
- {
- [XmlElement("DVBSTP", typeof(DvbStpTransportMode), IsNullable = false)]
- public DvbStpTransportMode[] Push;
-
- [XmlElement("HTTP", typeof(HttpTransportMode), IsNullable = false)]
- public HttpTransportMode[] Pull;
- } // class TransportModeClass
-
- [XmlElement("Name")]
- public MultilingualText[] Name;
-
- [XmlElement("Description")]
- public MultilingualText[] Description;
-
- [XmlElement("TransportMode")]
- public TransportModeClass TransportMode;
-
- [XmlElement("Logo", DataType = "anyURI")]
- public string Logo;
-
- [XmlElement("Type")]
- public ControlledTerm GuideType;
-
- [XmlElement("TargetProvider")]
- public string[] TargetProvider;
-
- [XmlElement("BCGProviderName")]
- public MultilingualText[] BCGProviderName;
-
- /*
- [XmlArrayItem("DVBSTP", typeof(CdsDownloadSessionDescriptionLocationDVBSTP), IsNullable = false)]
- [XmlArrayItem("SAP", typeof(CdsDownloadSessionDescriptionLocationSAP), IsNullable = false)]
- public object[] CDSDownloadSessionDescriptionLocation;
- */
-
- [XmlAttribute("Id")]
- public string Id;
-
- [XmlAttribute("Version")]
- public string Version;
- } // class BroadcastContentGuide
-} // namespace
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.ContentGuideDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class BroadcastContentGuide
+ {
+ // TODO: clean-up code
+ public class TransportModeClass
+ {
+ [XmlElement("DVBSTP", typeof(DvbStpTransportMode), IsNullable = false)]
+ public DvbStpTransportMode[] Push;
+
+ [XmlElement("HTTP", typeof(HttpTransportMode), IsNullable = false)]
+ public HttpTransportMode[] Pull;
+ } // class TransportModeClass
+
+ [XmlElement("Name")]
+ public MultilingualText[] Name;
+
+ [XmlElement("Description")]
+ public MultilingualText[] Description;
+
+ [XmlElement("TransportMode")]
+ public TransportModeClass TransportMode;
+
+ [XmlElement("Logo", DataType = "anyURI")]
+ public string Logo;
+
+ [XmlElement("Type")]
+ public ControlledTerm GuideType;
+
+ [XmlElement("TargetProvider")]
+ public string[] TargetProvider;
+
+ [XmlElement("BCGProviderName")]
+ public MultilingualText[] BcgProviderName;
+
+ /*
+ [XmlArrayItem("DVBSTP", typeof(CdsDownloadSessionDescriptionLocationDVBSTP), IsNullable = false)]
+ [XmlArrayItem("SAP", typeof(CdsDownloadSessionDescriptionLocationSAP), IsNullable = false)]
+ public object[] CDSDownloadSessionDescriptionLocation;
+ */
+
+ [XmlAttribute("Id")]
+ public string Id;
+
+ [XmlAttribute("Version")]
+ public string Version;
+ } // class BroadcastContentGuide
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ContentGuideDiscovery/BroadcastContentGuideDiscoveryRoot.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ContentGuideDiscovery/BroadcastContentGuideDiscoveryRoot.cs
new file mode 100644
index 00000000..8e37b400
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ContentGuideDiscovery/BroadcastContentGuideDiscoveryRoot.cs
@@ -0,0 +1,48 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.ContentGuideDiscovery
+{
+ ///
+ /// This element is used in the first stage of service discovery. It is sent by service providers and is used as a link to their
+ /// own service discovery information.
+ ///
+ ///
+ /// An aggregating service provide may send multiple ServiceProvider elements in a single document.
+ /// If the element Offering is missing, then the ServiceProvider is not currently providing any services, but simply
+ /// announcing its presence.
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ [XmlRoot(ElementName = "ServiceDiscovery", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1", IsNullable = false)]
+ public class BroadcastContentGuideDiscoveryRoot // ServiceDiscovery
+ {
+ ///
+ /// Version of this record. A change in this value indicates a change in one of the ServiceProviderDiscovery Records
+ ///
+ [XmlAttribute]
+ public string Version;
+
+ [XmlElement("BCGDiscovery")]
+ public BroadcastContentGuideOffering[] Offering;
+ } // class BroadcastContentGuideDiscoveryRoot
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ContentGuideDiscovery/BroadcastContentGuideOffering.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ContentGuideDiscovery/BroadcastContentGuideOffering.cs
new file mode 100644
index 00000000..b9664d13
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ContentGuideDiscovery/BroadcastContentGuideOffering.cs
@@ -0,0 +1,37 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.ContentGuideDiscovery
+{
+ ///
+ /// [en] Provides information on Broadband Content Guide Offerings
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:BroadcastContentGuideOffering
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class BroadcastContentGuideOffering : OfferingBase
+ {
+ [XmlElement("BCG")]
+ public BroadcastContentGuide[] ContentGuides;
+ } // class BroadcastContentGuideOffering
+} // namespace
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/Extensions.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Extensions.cs
similarity index 82%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/Extensions.cs
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Extensions.cs
index 76e4d81d..2e89365b 100644
--- a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/Extensions.cs
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/Extensions.cs
@@ -1,89 +1,95 @@
-// Copyright (C) 2014-2016, Codeplex/GitHub user AlphaCentaury
-// All rights reserved, except those granted by the governing license of this software. See 'license.txt' file in the project root for complete license information.
-
-using Etsi.Ts102034.v010501.XmlSerialization.Common;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace Etsi.Ts102034.v010501.XmlSerialization
-{
- public static class Extensions
- {
- private class LanguageOrder
- {
- public int Order;
- public string Language;
- } // private class LanguageOrder
-
- public static MultilingualText SafeGetFirstItem(this MultilingualText[] text)
- {
- return SafeGetLanguageItem(text, null, true);
- } // MultilingualText[].SafeGetFirstItem
-
- public static MultilingualText SafeGetLanguageItem(this MultilingualText[] text, IEnumerable preferredLanguages, bool preferredOrFirst)
- {
- if (text == null) return null;
- if (text.Length == 0) return null;
- if (text[0] == null) return null;
- if (preferredLanguages == null) return text[0];
-
- var q = from lang in OrderLanguages(preferredLanguages)
- join item in text on lang.Language equals item.Language.ToLowerInvariant()
- orderby lang.Order
- select new { Item = item, Order = lang.Order };
-
- var found = q.FirstOrDefault();
- if (found == null)
- {
- if (preferredOrFirst) return text[0];
- return null;
- } // if
-
- return found.Item;
- } // MultilingualText[].SafeGetLanguageItem
-
- public static string SafeGetValue(this MultilingualText text)
- {
- if (text == null) return null;
- return text.Value;
- } // MultilingualText.SafeGetValue
-
- public static string SafeGetValue(this MultilingualText text, string defaultValue)
- {
- if (text == null) return defaultValue;
- return text.Value ?? defaultValue;
- } // MultilingualText.SafeGetValue
-
- public static string SafeGetValue(this MultilingualText[] text)
- {
- return text.SafeGetFirstItem().SafeGetValue();
- } // MultilingualText[].SafeGetValue
-
- public static string SafeGetValue(this MultilingualText[] text, string defaultValue)
- {
- return text.SafeGetFirstItem().SafeGetValue(defaultValue);
- } // MultilingualText[].SafeGetValue
-
- public static string SafeGetLanguageValue(this MultilingualText[] text, IEnumerable preferredLanguages, bool preferredOrFirst, string defaultValue)
- {
- return text.SafeGetLanguageItem(preferredLanguages, preferredOrFirst).SafeGetValue(defaultValue);
- } // SafeGetLanguageValue
-
- private static IEnumerable OrderLanguages(IEnumerable preferredLanguages)
- {
- int order;
-
- order = 0;
- foreach (string lang in preferredLanguages)
- {
- yield return new LanguageOrder()
- {
- Order = order++,
- Language = lang,
- };
- } // foreach
- } // OrderLanguages
- } // static class Extensions
-} // namespace
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization
+{
+ public static class Extensions
+ {
+ private class LanguageOrder
+ {
+ public int Order;
+ public string Language;
+ } // private class LanguageOrder
+
+ public static MultilingualText SafeGetFirstItem(this MultilingualText[] text)
+ {
+ return SafeGetLanguageItem(text, null, true);
+ } // MultilingualText[].SafeGetFirstItem
+
+ public static MultilingualText SafeGetLanguageItem(this MultilingualText[] text, IEnumerable preferredLanguages, bool preferredOrFirst)
+ {
+ if (text == null) return null;
+ if (text.Length == 0) return null;
+ if (text[0] == null) return null;
+ if (preferredLanguages == null) return text[0];
+
+ var q = from lang in OrderLanguages(preferredLanguages)
+ join item in text on lang.Language equals item.Language.ToLowerInvariant()
+ orderby lang.Order
+ select new { Item = item, Order = lang.Order };
+
+ var found = q.FirstOrDefault();
+ if (found == null)
+ {
+ return preferredOrFirst ? text[0] : null;
+ } // if
+
+ return found.Item;
+ } // MultilingualText[].SafeGetLanguageItem
+
+ public static string SafeGetValue(this MultilingualText text)
+ {
+ return text?.Value;
+ } // MultilingualText.SafeGetValue
+
+ public static string SafeGetValue(this MultilingualText text, string defaultValue)
+ {
+ if (text == null) return defaultValue;
+ return text.Value ?? defaultValue;
+ } // MultilingualText.SafeGetValue
+
+ public static string SafeGetValue(this MultilingualText[] text)
+ {
+ return text.SafeGetFirstItem().SafeGetValue();
+ } // MultilingualText[].SafeGetValue
+
+ public static string SafeGetValue(this MultilingualText[] text, string defaultValue)
+ {
+ return text.SafeGetFirstItem().SafeGetValue(defaultValue);
+ } // MultilingualText[].SafeGetValue
+
+ public static string SafeGetLanguageValue(this MultilingualText[] text, IEnumerable preferredLanguages, bool preferredOrFirst, string defaultValue)
+ {
+ return text.SafeGetLanguageItem(preferredLanguages, preferredOrFirst).SafeGetValue(defaultValue);
+ } // SafeGetLanguageValue
+
+ private static IEnumerable OrderLanguages(IEnumerable preferredLanguages)
+ {
+ int order;
+
+ order = 0;
+ foreach (var lang in preferredLanguages)
+ {
+ yield return new LanguageOrder()
+ {
+ Order = order++,
+ Language = lang,
+ };
+ } // foreach
+ } // OrderLanguages
+ } // static class Extensions
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/NamespaceUnification.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/NamespaceUnification.cs
new file mode 100644
index 00000000..d39937de
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/NamespaceUnification.cs
@@ -0,0 +1,50 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace Etsi.Ts102034.v010501.XmlSerialization
+{
+ ///
+ /// This class is intended to help in "unifying" the different TS 102 034 namespaces.
+ /// This allows to parse all XML documents from v01.01.01 to v01.05.01 using the same
+ /// XML .Net objects, regardless of document version. This is possible as v01.05.01 is
+ /// 100% backwards-compatible (at XML schema level, but not at code level)
+ ///
+ public static class NamespaceUnification
+ {
+ ///
+ ///
+ ///
+ /// Original TS 102 034 XML document namespace, possibly obsolete or not up-to-date
+ /// v01.05.01 equivalent up-to-date namespace
+ public static string Replacer(string ns)
+ {
+ switch (ns)
+ {
+ //v01.01.01
+ case "urn:dvb:ipisdns:2003": return "urn:dvb:metadata:iptv:sdns:2012-1";
+ // v01.02.01
+ case "urn:dvb:ipisdns:2006": return "urn:dvb:metadata:iptv:sdns:2012-1";
+ case "urn:tva:metadata:2004": return "urn:tva:metadata:2011";
+ case "urn:mpeg:mpeg7:schema:2001": return "urn:tva:mpeg7:2008";
+ // v01.03.01
+ case "urn:dvb:ipi:sdns:2006": return "urn:dvb:metadata:iptv:sdns:2012-1";
+ case "urn:tva:metadata:2005": return "urn:tva:metadata:2011";
+ case "urn:tva:mpeg7:2005": return "urn:tva:mpeg7:2008";
+ // v01.04.01
+ case "urn:dvb:metadata:iptv:sdns:2008-1": return "urn:dvb:metadata:iptv:sdns:2012-1";
+ default:
+ return ns;
+ } // switch
+ } // Replacer
+ } // NamespaceUnification
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/Package.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/Package.cs
new file mode 100644
index 00000000..b7b45f28
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/Package.cs
@@ -0,0 +1,62 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.BroadcastDiscovery;
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.PackageDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class Package
+ {
+ [XmlElement("PackageName")]
+ public MultilingualText[] Name;
+
+ [XmlElement("CountryAvailability")]
+ public CountryAvailability[] CountryAvailability;
+
+ [XmlElement("PackageDescription")]
+ public DescriptionLocation[] Description;
+
+ [XmlElement("Service")]
+ public List Services;
+
+ [XmlElement("PackageReference")]
+ public PackageReference[] References;
+
+ [XmlElement("PackageAvailability")]
+ public ServiceAvailability[] PackageAvailability;
+
+ [XmlAttribute]
+ public string Id;
+
+ [XmlAttribute]
+ [DefaultValue(true)]
+ public bool Visible;
+
+ public Package()
+ {
+ Visible = true;
+ } // default constructor
+ } // class Package
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackageDiscoveryRoot.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackageDiscoveryRoot.cs
new file mode 100644
index 00000000..0b42039b
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackageDiscoveryRoot.cs
@@ -0,0 +1,54 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Linq;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.PackageDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ [XmlRoot(ElementName = "ServiceDiscovery", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1", IsNullable = false)]
+ public class PackageDiscoveryRoot
+ {
+ ///
+ /// Version of this record. A change in this value indicates a change in one of the PackageDiscovery Records
+ ///
+ [XmlAttribute]
+ public string Version;
+
+ [XmlElement("PackageDiscovery")]
+ public PackagedServices[] PackageDiscovery;
+
+ ///
+ /// Returns all packages of all PackageDiscoveries in a linear fashion
+ ///
+ /// Inemerable of all packages
+ public IEnumerable GetPackages()
+ {
+ var packages = from discovery in PackageDiscovery
+ from package in discovery.Packages
+ select package;
+
+ return packages;
+ } // GetPackages
+ } // class BroadcastDiscoveryRoot
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackageReference.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackageReference.cs
new file mode 100644
index 00000000..db8bbdfc
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackageReference.cs
@@ -0,0 +1,32 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.PackageDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class PackageReference
+ {
+ [XmlAttribute]
+ public string Id;
+ } // PackageReference
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackageTextualIdentifier.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackageTextualIdentifier.cs
new file mode 100644
index 00000000..be3e9e49
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackageTextualIdentifier.cs
@@ -0,0 +1,33 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.PackageDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class PackageTextualIdentifier : TextualIdentifier
+ {
+ [XmlAttribute(DataType = "positiveInteger")]
+ public string Priority;
+ } // PackageTextualIdentifier
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackagedService.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackagedService.cs
new file mode 100644
index 00000000..890ff90a
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackagedService.cs
@@ -0,0 +1,41 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.PackageDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("PackagedServiceType", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class PackagedService
+ {
+ [XmlElement("TextualID")]
+ public PackageTextualIdentifier[] TextualIdentifiers;
+
+ [XmlElement("DVBTriplet")]
+ public DvbTriplet DvbTriplet;
+
+ public DescriptionLocation DescriptionLocation;
+
+ [XmlElement(DataType = "positiveInteger")]
+ public string LogicalChannelNumber;
+ } // class PackagedService
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackagedServices.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackagedServices.cs
new file mode 100644
index 00000000..ab8083db
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/PackageDiscovery/PackagedServices.cs
@@ -0,0 +1,33 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.PackageDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class PackagedServices : OfferingBase
+ {
+ [XmlElement("Package")]
+ public Package[] Packages;
+ } // class PackagedServices
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ProviderDiscoveryRoot.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ProviderDiscoveryRoot.cs
new file mode 100644
index 00000000..bc4abfba
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ProviderDiscoveryRoot.cs
@@ -0,0 +1,48 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.ProviderDiscovery
+{
+ ///
+ /// This element is used in the first stage of service discovery. It is sent by service providers and is used as a link to their
+ /// own service discovery information.
+ ///
+ ///
+ /// An aggregating service provide may send multiple ServiceProvider elements in a single document.
+ /// If the element Offering is missing, then the ServiceProvider is not currently providing any services, but simply
+ /// announcing its presence.
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ [XmlRoot(ElementName = "ServiceDiscovery", Namespace = "urn:dvb:metadata:iptv:sdns:2012-1", IsNullable = false)]
+ public class ProviderDiscoveryRoot // ServiceDiscovery
+ {
+ ///
+ /// Version of this record. A change in this value indicates a change in one of the ServiceProviderDiscovery Records
+ ///
+ [XmlAttribute]
+ public string Version;
+
+ [XmlElement("ServiceProviderDiscovery")]
+ public ServiceProviderDiscovery[] ServiceProviderDiscovery;
+ } // class BroadcastDiscoveryRoot
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ProviderOffering.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ProviderOffering.cs
new file mode 100644
index 00000000..efb64246
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ProviderOffering.cs
@@ -0,0 +1,51 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.ProviderDiscovery
+{
+ ///
+ /// Provides the Push and/or Pull Offering of the Service Provider
+ ///
+ [Serializable()]
+ [DebuggerStepThrough()]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class ProviderOffering
+ {
+ ///
+ /// One entry per Pull Offering
+ ///
+ [XmlElement("Pull")]
+ public ProviderOfferingPull[] Pull
+ {
+ get;
+ set;
+ } // PullOffering
+
+ ///
+ /// One entry per Push Offering
+ ///
+ [XmlElement("Push")]
+ public DvbStpTransportMode[] Push
+ {
+ get;
+ set;
+ } // PullOffering
+ } // class ProviderOffering
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ProviderOfferingPull.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ProviderOfferingPull.cs
new file mode 100644
index 00000000..c2640742
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ProviderOfferingPull.cs
@@ -0,0 +1,33 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.ProviderDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class ProviderOfferingPull : PayloadList
+ {
+ [XmlAttribute(DataType = "anyURI")]
+ public string Location;
+ } // class ProviderOfferingPull
+} // namespace
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ServiceProvider.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ServiceProvider.cs
similarity index 76%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ServiceProvider.cs
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ServiceProvider.cs
index 65e853f9..d6334de6 100644
--- a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ServiceProvider.cs
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ServiceProvider.cs
@@ -1,51 +1,60 @@
-// Copyright (C) 2014-2016, Codeplex/GitHub user AlphaCentaury
-// All rights reserved, except those granted by the governing license of this software. See 'license.txt' file in the project root for complete license information.
-
-using Etsi.Ts102034.v010501.XmlSerialization.Common;
-using System;
-using System.CodeDom.Compiler;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Diagnostics;
-using System.Xml.Serialization;
-
-namespace Etsi.Ts102034.v010501.XmlSerialization.ProviderDiscovery
-{
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class ServiceProvider
- {
- ///
- /// Name of the Service Provider for display in one or more languages; one Service Provider name is allowed per
- /// language code, and at least one language shall be provided (though not necessarily more than one).
- ///
- [XmlElement("Name")]
- public MultilingualText[] Name;
-
- ///
- /// Description of the Service Provider for potential display in one or more languages; one description is allowed per language code.
- ///
- [XmlElement("Description")]
- public MultilingualText[] Description;
-
- ///
- /// Provides the Push and/or Pull Offering of the Service Provider
- ///
- public ProviderOffering Offering;
-
- [XmlAttribute]
- public string DomainName;
-
- [XmlAttribute]
- public string Version;
-
- ///
- /// Pointer to a Service Provider logo for potential display. The pointer shall be a URI
- ///
- [XmlAttribute("LogoURI", DataType = "anyURI")]
- public string LogoUrl;
- } // class ServiceProvider
-} // namespace
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.Common;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.ProviderDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class ServiceProvider
+ {
+ ///
+ /// Name of the Service Provider for display in one or more languages; one Service Provider name is allowed per
+ /// language code, and at least one language shall be provided (though not necessarily more than one).
+ ///
+ [XmlElement("Name")]
+ public MultilingualText[] Name;
+
+ ///
+ /// Description of the Service Provider for potential display in one or more languages; one description is allowed per language code.
+ ///
+ [XmlElement("Description")]
+ public MultilingualText[] Description;
+
+ ///
+ /// Provides the Push and/or Pull Offering of the Service Provider
+ ///
+ public ProviderOffering Offering;
+
+ [XmlAttribute]
+ public string DomainName;
+
+ [XmlAttribute]
+ public string Version;
+
+ ///
+ /// Pointer to a Service Provider logo for potential display. The pointer shall be a URI
+ ///
+ [XmlAttribute("LogoURI", DataType = "anyURI")]
+ public string LogoUrl;
+ } // class ServiceProvider
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ServiceProviderDiscovery.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ServiceProviderDiscovery.cs
new file mode 100644
index 00000000..536f4802
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/ProviderDiscovery/ServiceProviderDiscovery.cs
@@ -0,0 +1,35 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.ProviderDiscovery
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:dvb:metadata:iptv:sdns:2012-1")]
+ public class ServiceProviderDiscovery
+ {
+ [XmlElement("ServiceProvider")]
+ public ServiceProvider[] Providers;
+
+ [XmlAttribute]
+ public string Version;
+ } // ServiceProviderDiscovery
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/AspectRatio.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/AspectRatio.cs
new file mode 100644
index 00000000..eb0dc1a2
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/AspectRatio.cs
@@ -0,0 +1,41 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("AspectRatioType", Namespace = "urn:tva:metadata:2011")]
+ public class AspectRatio
+ {
+ [XmlAttribute("type")]
+ [DefaultValue(AspectRatioKind.Original)]
+ public AspectRatioKind Kind;
+
+ [XmlText]
+ public string Value;
+
+ public AspectRatio()
+ {
+ Kind = AspectRatioKind.Original;
+ } // default constructor
+ } // class AspectRatio
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/AspectRatioKind.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/AspectRatioKind.cs
new file mode 100644
index 00000000..573a42b1
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/AspectRatioKind.cs
@@ -0,0 +1,30 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType = true, Namespace = "urn:tva:metadata:2011")]
+ public enum AspectRatioKind
+ {
+ [XmlEnum("original")]
+ Original,
+ [XmlEnum("publication")]
+ Publication,
+ } // enum AspectRatioKind
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/AudioAttributes.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/AudioAttributes.cs
new file mode 100644
index 00000000..87956b9b
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/AudioAttributes.cs
@@ -0,0 +1,53 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("AudioAttributesType", Namespace = "urn:tva:metadata:2011")]
+ public class AudioAttributes
+ {
+ public ControlledTerm Coding;
+
+ [XmlElement("NumOfChannels")]
+ public ushort NumberOfChannels;
+
+ [XmlIgnore]
+ public bool NumberOfChannelsSpecified;
+
+ public ControlledTerm MixType;
+
+ public AudioLanguage AudioLanguage;
+
+ public uint SampleFrequency;
+
+ [XmlIgnore]
+ public bool SampleFrequencySpecified;
+
+ public uint BitsPerSample;
+
+ [XmlIgnore]
+ public bool BitsPerSampleSpecified;
+
+ public BitRate BitRate;
+ } // class AudioAttributes
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/AudioLanguage.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/AudioLanguage.cs
new file mode 100644
index 00000000..69096df2
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/AudioLanguage.cs
@@ -0,0 +1,33 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("AudioLanguageType", Namespace = "urn:tva:metadata:2011")]
+ public class AudioLanguage : ExtendedLanguage
+ {
+ [XmlAttribute("purpose")]
+ public string Purpose;
+ } // AudioLanguage
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/BitRate.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/BitRate.cs
new file mode 100644
index 00000000..14343db0
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/BitRate.cs
@@ -0,0 +1,59 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("BitRateType", Namespace = "urn:tva:metadata:2011")]
+ public class BitRate
+ {
+ [XmlAttribute("variable")]
+ [DefaultValue(false)]
+ public bool Variable;
+
+ [XmlAttribute("minimum")]
+ public ulong Minimum;
+
+ [XmlIgnore]
+ public bool MinimumSpecified;
+
+ [XmlAttribute("average")]
+ public ulong Average;
+
+ [XmlIgnore]
+ public bool AverageSpecified;
+
+ [XmlAttribute("maximum")]
+ public ulong Maximum;
+
+ [XmlIgnore]
+ public bool MaximumSpecified;
+
+ [XmlText(DataType = "nonNegativeInteger")]
+ public string Value;
+
+ public BitRate()
+ {
+ Variable = false;
+ } // default constructor
+ } // class BitRate
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/ControlledTerm.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/ControlledTerm.cs
new file mode 100644
index 00000000..31f8e740
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/ControlledTerm.cs
@@ -0,0 +1,38 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("ControlledTermType", Namespace = "urn:tva:metadata:2011")]
+ //[XmlInclude(typeof(GenreType))]
+ public class ControlledTerm
+ {
+ public TermName Name;
+
+ public TextualData Definition;
+
+ [XmlAttribute("href")]
+ public string Href;
+ } // ControlledTerm
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/Explanation.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/Explanation.cs
new file mode 100644
index 00000000..05df06da
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/Explanation.cs
@@ -0,0 +1,36 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace = "urn:tva:metadata:2011")]
+ public class Explanation : TextualData
+ {
+ [XmlAttribute("length")]
+ public ExplanationLength Length;
+
+ [XmlIgnore]
+ public bool LengthSpecified;
+ } // class Explanation
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/ExplanationLength.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/ExplanationLength.cs
new file mode 100644
index 00000000..602577d9
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/ExplanationLength.cs
@@ -0,0 +1,32 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType("ExplanationLengthType", Namespace = "urn:tva:metadata:2011")]
+ public enum ExplanationLength
+ {
+ [XmlEnum("short")]
+ Short,
+ [XmlEnum("medium")]
+ Medium,
+ [XmlEnum("long")]
+ Long,
+ } // enum ExplanationLength
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/ScanKind.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/ScanKind.cs
new file mode 100644
index 00000000..bacfc116
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/ScanKind.cs
@@ -0,0 +1,30 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType("ScanType", Namespace = "urn:tva:metadata:2011")]
+ public enum ScanKind
+ {
+ [XmlEnum("interlaced")]
+ Interlaced,
+ [XmlEnum("progressive")]
+ Progressive,
+ } // enum ScanKind
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/TermName.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/TermName.cs
new file mode 100644
index 00000000..fe92f2bb
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/TermName.cs
@@ -0,0 +1,36 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("TermNameType", Namespace = "urn:tva:metadata:2011")]
+ public class TermName : TextualData
+ {
+ [XmlAttribute("preferred")]
+ public bool Preferred;
+
+ [XmlIgnore]
+ public bool PreferredSpecified;
+ } // TextualData
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/TvaParentalGuidance.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/TvaParentalGuidance.cs
new file mode 100644
index 00000000..ee2cd29f
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/TvaParentalGuidance.cs
@@ -0,0 +1,33 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("TVAParentalGuidanceType", Namespace = "urn:tva:metadata:2011")]
+ public class TvaParentalGuidance : ParentalGuidance
+ {
+ [XmlElement("ExplanatoryText")]
+ public Explanation[] ExplanatoryText;
+ } // class TvaParentalGuidance
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/VideoAttributes.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/VideoAttributes.cs
new file mode 100644
index 00000000..4829ba75
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/VideoAttributes.cs
@@ -0,0 +1,57 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("VideoAttributesType", Namespace = "urn:tva:metadata:2011")]
+ public class VideoAttributes
+ {
+ public ControlledTerm Coding;
+
+ public ScanKind Scan;
+
+ [XmlIgnore]
+ public bool ScanSpecified;
+
+ public ushort HorizontalSize;
+
+ [XmlIgnore]
+ public bool HorizontalSizeSpecified;
+
+ public ushort VerticalSize;
+
+ [XmlIgnore]
+ public bool VerticalSizeSpecified;
+
+ [XmlElement("AspectRatio")]
+ public AspectRatio[] AspectRatio;
+
+ public VideoColor Color;
+
+ public string FrameRate;
+
+ public BitRate BitRate;
+
+ public ControlledTerm PictureFormat;
+ } // class VideoAttributes
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/VideoColor.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/VideoColor.cs
new file mode 100644
index 00000000..bbefe35b
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/VideoColor.cs
@@ -0,0 +1,32 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("ColorType", Namespace = "urn:tva:metadata:2011")]
+ public class VideoColor
+ {
+ [XmlAttribute("type")]
+ public VideoColorKind Kind;
+ } // class VideoColor
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/VideoColorKind.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/VideoColorKind.cs
new file mode 100644
index 00000000..86059bcb
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Metadata/VideoColorKind.cs
@@ -0,0 +1,37 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType("ColorTypeType", Namespace = "urn:tva:metadata:2011")]
+ public enum VideoColorKind
+ {
+ [XmlEnum("color")]
+ Color,
+
+ [XmlEnum("blackAndWhite")]
+ BlackAndWhite,
+
+ [XmlEnum("blackAndWhiteAndColor")]
+ BlackAndWhiteAndColor,
+
+ [XmlEnum("colorized")]
+ Colorized,
+ } // VideoColorKind
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/ControlledTermUse.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/ControlledTermUse.cs
new file mode 100644
index 00000000..9db24331
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/ControlledTermUse.cs
@@ -0,0 +1,32 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("ControlledTermUseType", Namespace = "urn:tva:mpeg7:2008")]
+ public class ControlledTermUse : InlineTermDefinition
+ {
+ [XmlAttribute("href")]
+ public string TermUrl;
+ } // class ControlledTermUse
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/ExtendedLanguage.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/ExtendedLanguage.cs
new file mode 100644
index 00000000..de88d5ab
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/ExtendedLanguage.cs
@@ -0,0 +1,49 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("ExtendedLanguageType", Namespace = "urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(AudioLanguage))]
+ public class ExtendedLanguage
+ {
+
+ [XmlAttribute("type")]
+ [DefaultValue(ExtendedLanguageKind.Original)]
+ public ExtendedLanguageKind Kind;
+
+ [XmlAttribute("supplemental")]
+ [DefaultValue(false)]
+ public bool Supplemental;
+
+ [XmlText(DataType = "language")]
+ public string Value;
+
+ public ExtendedLanguage()
+ {
+ Kind = ExtendedLanguageKind.Original;
+ Supplemental = false;
+ } // default constructor
+ } // class ExtendedLanguage
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/ExtendedLanguageKind.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/ExtendedLanguageKind.cs
new file mode 100644
index 00000000..7d59d355
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/ExtendedLanguageKind.cs
@@ -0,0 +1,32 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType = true, Namespace = "urn:tva:mpeg7:2008")]
+ public enum ExtendedLanguageKind // original: ExtendedLanguageTypeType
+ {
+ [XmlEnum("original")]
+ Original,
+ [XmlEnum("dubbed")]
+ Dubbed,
+ [XmlEnum("background")]
+ Background,
+ } // enum ExtendedLanguageKind
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/InlineTermDefinition.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/InlineTermDefinition.cs
new file mode 100644
index 00000000..7ea2a46c
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/InlineTermDefinition.cs
@@ -0,0 +1,37 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("InlineTermDefinitionType", Namespace = "urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(TermUse))]
+ [XmlInclude(typeof(ControlledTermUse))]
+ public abstract class InlineTermDefinition
+ {
+ [XmlElement("Name")]
+ public InlineTermDefinitionTypeName[] Name;
+
+ [XmlElement("Definition")]
+ public TextualData[] Definition;
+ } // class InlineTermDefinitionType
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/InlineTermDefinitionTypeName.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/InlineTermDefinitionTypeName.cs
new file mode 100644
index 00000000..be3b1f0b
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/InlineTermDefinitionTypeName.cs
@@ -0,0 +1,35 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = "urn:tva:mpeg7:2008")]
+ public class InlineTermDefinitionTypeName : TextualData
+ {
+ [XmlAttribute("preferred")]
+ public bool Preferred;
+
+ [XmlIgnore]
+ public bool PreferredSpecified;
+ } // class InlineTermDefinitionTypeName
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/ParentalGuidance.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/ParentalGuidance.cs
new file mode 100644
index 00000000..9a3381f5
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/ParentalGuidance.cs
@@ -0,0 +1,40 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("ParentalGuidance", Namespace = "urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(TvaParentalGuidance))]
+ public class ParentalGuidance
+ {
+ [XmlElement("MinimumAge", typeof(string), DataType = "nonNegativeInteger")]
+ public string MinimumAge;
+
+ [XmlElement("ParentalRating", typeof(ControlledTermUse))]
+ public ControlledTermUse ParentalRating;
+
+ [XmlElement("Region")]
+ public string[] Region;
+ } // ParentalGuidance
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/TermUse.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/TermUse.cs
new file mode 100644
index 00000000..9e16d3b5
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/TermUse.cs
@@ -0,0 +1,32 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("TermUseType", Namespace = "urn:tva:mpeg7:2008")]
+ public class TermUse : InlineTermDefinition
+ {
+ [XmlAttribute("href")]
+ public string TermUrl;
+ } // class TermUseType
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/TextualBase.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/TextualBase.cs
new file mode 100644
index 00000000..890ef953
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/TextualBase.cs
@@ -0,0 +1,47 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Schema;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("TextualBaseType", Namespace = "urn:tva:mpeg7:2008")]
+ //[XmlInclude(typeof(TitleType))]
+ //[XmlInclude(typeof(ShortTitleType))]
+ //[XmlInclude(typeof(TextualType))]
+ //[XmlInclude(typeof(OrganizationNameType))]
+ //[XmlInclude(typeof(ServiceInformationNameType))]
+ [XmlInclude(typeof(Explanation))]
+ //[XmlInclude(typeof(SynopsisType))]
+ //[XmlInclude(typeof(KeywordType))]
+ [XmlInclude(typeof(TermName))]
+ //[XmlInclude(typeof(NameComponentType))]
+ public abstract class TextualBase
+ {
+ [XmlAttribute("lang", Form = XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/XML/1998/namespace")]
+ public string Language;
+
+ [XmlText]
+ public string Value;
+ } // TextualBase
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/TextualData.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/TextualData.cs
new file mode 100644
index 00000000..f17d7088
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/XmlSerialization/TvAnytime/Mpeg7/TextualData.cs
@@ -0,0 +1,38 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Metadata;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace Etsi.Ts102034.v010501.XmlSerialization.TvAnytime.Mpeg7
+{
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType("TextualType", Namespace = "urn:tva:mpeg7:2008")]
+ //[XmlInclude(typeof(OrganizationNameType))]
+ //[XmlInclude(typeof(ServiceInformationNameType))]
+ [XmlInclude(typeof(Explanation))]
+ //[XmlInclude(typeof(SynopsisType))]
+ //[XmlInclude(typeof(KeywordType))]
+ [XmlInclude(typeof(TermName))]
+ public class TextualData : TextualBase
+ {
+ // no new elements or attributes
+ } // class TextualData
+} // namespace
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.4r13_subset.xsd b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.4r13_subset.xsd
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.4r13_subset.xsd
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.4r13_subset.xsd
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.5r25b.xsd b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.5r25b.xsd
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.5r25b.xsd
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.5r25b.xsd
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.cs b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.cs
similarity index 96%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.cs
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.cs
index 10bce63e..4ed2dc63 100644
--- a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.cs
+++ b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/Xsd.Unified/sdns_v1.cs
@@ -1,6951 +1,6951 @@
-// Copyright (C) 2014-2016, Codeplex/GitHub user AlphaCentaury
-// All rights reserved, except those granted by the governing license of this software. See 'license.txt' file in the project root for complete license information.
-
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.18444
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-using System;
-using System.CodeDom.Compiler;
-using System.ComponentModel;
-using System.Diagnostics;
-using System.Xml.Serialization;
-
-//
-// This source code was auto-generated by myxsdtool, Version=0.0.0.0.
-// Sun, 12 Oct 2014 02:56:35 GMT
-//
-
-namespace v010501r3 {
- using System.Xml.Serialization;
- using System;
- using System.Diagnostics;
- using System.ComponentModel;
-
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- [XmlRoot(Namespace="urn:dvb:metadata:iptv:sdns:2012-1", IsNullable=false)]
- public partial class ServiceDiscovery {
-
- [XmlElement("BCGDiscovery", typeof(BroadcastContentGuideOffering))]
- [XmlElement("BroadcastDiscovery", typeof(BroadcastOffering))]
- [XmlElement("CoDDiscovery", typeof(CoDOffering))]
- [XmlElement("PackageDiscovery", typeof(PackagedServices))]
- [XmlElement("RMSFUSDiscovery", typeof(RmsFusDiscovery))]
- [XmlElement("RegionalizationDiscovery", typeof(RegionalizationOffering))]
- [XmlElement("SRMDiscovery", typeof(SRMOffering))]
- [XmlElement("ServiceProviderDiscovery", typeof(ServiceProviderDiscovery))]
- [XmlElement("ServicesFromOtherSP", typeof(ReferencedServices))]
- public object[] Items;
-
- [XmlAttribute]
- public string Version;
- }
-
- ///
- /// [en] Provides information on Broadband Content Guide Offerings
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:BroadcastContentGuideOffering
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class BroadcastContentGuideOffering : OfferingBase {
-
- [XmlElement("BCG")]
- public BroadcastContentGuideOfferingBCG[] BCG;
- }
-
- ///
- /// [en] Provides a list of TS or services discovery information
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:BroadcastOffering
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class BroadcastOffering : OfferingBase {
-
- [XmlElement("ServiceList")]
- public IPServiceList[] ServiceList;
- }
-
- ///
- /// [en] Provides information on Content on Demand Offerings. Note that use of this is now deprecated and BCGOffering should be used instead
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:CoDOffering
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class CoDOffering : OfferingBase {
-
- [XmlElement("Catalogue")]
- public CoDOfferingCatalogue[] Catalogue;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class PackagedServices : OfferingBase {
-
- [XmlElement("Package")]
- public Package[] Package;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class RmsFusDiscovery : OfferingBase {
-
- [XmlElement("FUSProvider", typeof(FirmwareUpdateProvider))]
- [XmlElement("RMSProvider", typeof(RemoteManagementProvider))]
- public object[] Items;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class RegionalizationOffering : OfferingBase {
-
- [XmlElement("Cell")]
- public RegionalizationCell[] Cell;
- }
-
- ///
- /// [en] Provides a list of SRM Announcement and Download Services
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMOffering
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class SRMOffering : OfferingBase {
-
- [XmlElement("SRMAnnouncementService")]
- public SRMAnnouncementServiceType[] SRMAnnouncementService;
-
- [XmlElement("SRMDownloadService")]
- public SRMDownloadServiceType[] SRMDownloadService;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class ServiceProviderDiscovery {
-
- [XmlElement("ServiceProvider")]
- public ServiceProvider[] ServiceProvider;
-
- [XmlAttribute]
- public string Version;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class ReferencedServices : OfferingBase {
-
- [XmlElement("ReferencedServiceProvider")]
- public ReferencedServiceProviderType[] ReferencedServiceProvider;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class BroadcastContentGuideOfferingBCG {
-
- [XmlElement("Name")]
- public MultilingualText[] Name;
-
- [XmlElement("Description")]
- public MultilingualText[] Description;
-
- [XmlArrayItem("DVBSTP", typeof(DvbStpTransportMode), IsNullable=false)]
- [XmlArrayItem("HTTP", typeof(HttpTransportMode), IsNullable=false)]
- public PayloadList[] TransportMode;
-
- [XmlElement(DataType="anyURI")]
- public string Logo;
-
- public ControlledTermType Type;
-
- [XmlElement("TargetProvider")]
- public string[] TargetProvider;
-
- [XmlElement("BCGProviderName")]
- public MultilingualText[] BCGProviderName;
-
- [XmlArrayItem("DVBSTP", typeof(CdsDownloadSessionDescriptionLocationDVBSTP), IsNullable=false)]
- [XmlArrayItem("SAP", typeof(CdsDownloadSessionDescriptionLocationSAP), IsNullable=false)]
- public object[] CDSDownloadSessionDescriptionLocation;
-
- [XmlAttribute]
- public string Id;
-
- [XmlAttribute]
- public string Version;
- }
-
- ///
- /// [en] Base class from which all offerings should be derived
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:OfferingBase
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- [XmlInclude(typeof(RmsFusDiscovery))]
- [XmlInclude(typeof(RegionalizationOffering))]
- [XmlInclude(typeof(BroadcastContentGuideOffering))]
- [XmlInclude(typeof(CoDOffering))]
- [XmlInclude(typeof(SRMOffering))]
- [XmlInclude(typeof(ReferencedServices))]
- [XmlInclude(typeof(PackagedServices))]
- [XmlInclude(typeof(BroadcastOffering))]
- public partial class OfferingBase {
-
- [XmlAttribute]
- public string DomainName;
-
- [XmlAttribute]
- public string Version;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class IPServiceList {
-
- [XmlElement("ServicesDescriptionLocation")]
- public DescriptionLocationBCG[] ServicesDescriptionLocation;
-
- [XmlElement("SingleService")]
- public IPService[] SingleService;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class CoDOfferingCatalogue {
-
- [XmlElement("Name")]
- public MultilingualText[] Name;
-
- [XmlElement("Description")]
- public MultilingualText[] Description;
-
- [XmlElement("Locator", DataType="anyURI")]
- public string[] Locator;
-
- [XmlAttribute]
- public string Id;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class Package {
-
- [XmlElement("PackageName")]
- public MultilingualText[] PackageName;
-
- [XmlElement("CountryAvailability")]
- public CountryAvailability[] CountryAvailability;
-
- [XmlElement("PackageDescription")]
- public DescriptionLocationBCG[] PackageDescription;
-
- [XmlElement("Service")]
- public PackagedServiceType[] Service;
-
- [XmlElement("PackageReference")]
- public PackagePackageReference[] PackageReference;
-
- [XmlElement("PackageAvailability")]
- public ServiceAvailability[] PackageAvailability;
-
- [XmlAttribute]
- public string Id;
-
- [XmlAttribute]
- [DefaultValue(true)]
- public bool Visible;
-
- public Package() {
- this.Visible = true;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class FirmwareUpdateProvider {
-
- [XmlElement("FUSName")]
- public MultilingualText[] FUSName;
-
- public decimal FUSID;
-
- [XmlElement("Description")]
- public MultilingualText[] Description;
-
- [XmlElement("FUSAnnouncement")]
- public FirmwareUpdateAnnouncement[] FUSAnnouncement;
-
- [XmlAttribute(DataType="anyURI")]
- public string LogoURI;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class RemoteManagementProvider {
-
- [XmlElement("RMSName")]
- public MultilingualText[] RMSName;
-
- public decimal RMSID;
-
- ///
- [XmlIgnore]
- public bool RMSIDSpecified;
-
- [XmlElement("Description")]
- public MultilingualText[] Description;
-
- [XmlAttribute(DataType="anyURI")]
- public string LogoURI;
-
- [XmlAttribute(DataType="anyURI")]
- public string RMSLocation;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class RegionalizationCell {
-
- public string CountryCode;
-
- [XmlElement("CA")]
- public CivicAddress[] CA;
-
- [XmlAttribute]
- public string Id;
- }
-
- ///
- /// [en] SRM Announcement Service information
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMAnnouncementServiceType
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class SRMAnnouncementServiceType {
-
- [XmlElement("SRMID")]
- public SRMIDType[] SRMID;
-
- public SRMAnnouncementModeType SRMAnnouncementMode;
-
- [XmlAttribute]
- public string AnnouncementServiceVersion;
- }
-
- ///
- /// [en] FLUTE or HTTP download of SRM files
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMDownloadServiceType
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class SRMDownloadServiceType {
-
- [XmlElement("FLUTE", typeof(SRMDownloadServiceFLUTEType))]
- [XmlElement("HTTP", typeof(SRMDownloadServiceHTTPType))]
- public object Item;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class ServiceProvider {
-
- [XmlElement("Name")]
- public MultilingualText[] Name;
-
- [XmlElement("Description")]
- public MultilingualText[] Description;
-
- [XmlArrayItem("Pull", typeof(ProviderOfferingPull), IsNullable=false)]
- [XmlArrayItem("Push", typeof(DvbStpTransportMode), IsNullable=false)]
- public PayloadList[] Offering;
-
- [XmlAttribute]
- public string DomainName;
-
- [XmlAttribute]
- public string Version;
-
- [XmlAttribute(DataType="anyURI")]
- public string LogoURI;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class ReferencedServiceProviderType {
-
- [XmlElement("Service")]
- public ReferencedServiceProviderTypeService[] Service;
-
- [XmlAttribute]
- public string Domain;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class UserDescriptionType {
-
- public UserPreferencesType UserPreferences;
-
- public UsageHistoryType UsageHistory;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ProgramDescriptionType {
-
- public ProgramInformationTableType ProgramInformationTable;
-
- public GroupInformationTableType GroupInformationTable;
-
- public ProgramLocationTableType ProgramLocationTable;
-
- public ServiceInformationTableType ServiceInformationTable;
-
- public CreditsInformationTableType CreditsInformationTable;
-
- public ProgramReviewTableType ProgramReviewTable;
-
- public SegmentInformationTableType SegmentInformationTable;
-
- public PurchaseInformationTableType PurchaseInformationTable;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(CreatorType))]
- public partial class MediaAgentType {
-
- public ControlledTermUseType Role;
-
- [XmlElement("Agent", typeof(AgentType))]
- [XmlElement("AgentRef", typeof(ReferenceType))]
- public object Item;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class ElectronicAddressType {
-
- [XmlElement("Telephone")]
- public ElectronicAddressTypeTelephone[] Telephone;
-
- [XmlElement("Fax")]
- public string[] Fax;
-
- [XmlElement("Email")]
- public string[] Email;
-
- [XmlElement("Url", DataType="anyURI")]
- public string[] Url;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class GeographicPointType {
-
- [XmlAttribute]
- public double longitude;
-
- [XmlAttribute]
- public double latitude;
-
- [XmlAttribute]
- public double altitude;
-
- ///
- [XmlIgnore]
- public bool altitudeSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class MappingTermType {
-
- public TextualType ClassificationSchemeAcronym;
-
- public TextualType ClassificationSchemeName;
-
- [XmlElement(DataType="anyURI")]
- public string ClassificationSchemeURL;
-
- [XmlElement("OriginalTermName")]
- public TextualType[] OriginalTermName;
-
- [XmlElement("OriginalTermDefinition")]
- public TextualType[] OriginalTermDefinition;
-
- [XmlElement(DataType="date")]
- public System.DateTime MappingDate;
-
- ///
- [XmlIgnore]
- public bool MappingDateSpecified;
-
- [XmlAttribute]
- public string originalTermID;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class ReferenceType {
-
- [XmlAttribute(DataType="IDREF")]
- public string idref;
-
- [XmlAttribute(DataType="anyURI")]
- public string href;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class IncrDurationType {
-
- [XmlAttribute]
- public string timeUnit;
-
- [XmlText(DataType="integer")]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class RelIncrTimePointType {
-
- [XmlAttribute]
- public string timeUnit;
-
- [XmlAttribute(DataType="token")]
- public string timeBase;
-
- [XmlText(DataType="integer")]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class RelTimePointType {
-
- [XmlAttribute(DataType="token")]
- public string timeBase;
-
- [XmlText]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class TimeType {
-
- [XmlElement("RelIncrTimePoint", typeof(RelIncrTimePointType))]
- [XmlElement("RelTimePoint", typeof(RelTimePointType))]
- [XmlElement("TimePoint", typeof(string))]
- public object Item;
-
- [XmlElement("Duration", typeof(string))]
- [XmlElement("IncrDuration", typeof(IncrDurationType))]
- public object Item1;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(HeaderType))]
- [XmlInclude(typeof(ClassificationSchemeAliasType))]
- [XmlInclude(typeof(CSAliasType))]
- [XmlInclude(typeof(DType))]
- [XmlInclude(typeof(PreferenceConditionType))]
- [XmlInclude(typeof(MediaFormatType))]
- [XmlInclude(typeof(DSType))]
- [XmlInclude(typeof(UserPreferencesType))]
- [XmlInclude(typeof(UserActionListType1))]
- [XmlInclude(typeof(UserActionHistoryType1))]
- [XmlInclude(typeof(UsageHistoryType1))]
- [XmlInclude(typeof(SourcePreferencesType))]
- [XmlInclude(typeof(FilteringAndSearchPreferencesType))]
- [XmlInclude(typeof(CreationPreferencesType))]
- [XmlInclude(typeof(ClassificationPreferencesType))]
- [XmlInclude(typeof(SummaryPreferencesType))]
- [XmlInclude(typeof(BrowsingPreferencesType))]
- [XmlInclude(typeof(AgentType))]
- [XmlInclude(typeof(PersonType))]
- [XmlInclude(typeof(PersonGroupType))]
- [XmlInclude(typeof(OrganizationType))]
- [XmlInclude(typeof(PlaceType))]
- [XmlInclude(typeof(TVAPlaceType))]
- [XmlInclude(typeof(TermDefinitionBaseType))]
- [XmlInclude(typeof(TermDefinitionType))]
- [XmlInclude(typeof(ClassificationSchemeBaseType))]
- [XmlInclude(typeof(ClassificationSchemeType))]
- [XmlInclude(typeof(TVAClassificationSchemeType))]
- [XmlInclude(typeof(TVATermDefinitionBaseType))]
- [XmlInclude(typeof(TVATermDefinitionType))]
- [XmlInclude(typeof(UserActionType))]
- [XmlInclude(typeof(UserActionType1))]
- [XmlInclude(typeof(UserActionListType))]
- [XmlInclude(typeof(UserActionHistoryType))]
- [XmlInclude(typeof(UsageHistoryType))]
- public abstract partial class Mpeg7BaseType {
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ClassificationSchemeTableType {
-
- [XmlElement("CSAlias")]
- public CSAliasType[] CSAlias;
-
- [XmlElement("ClassificationScheme")]
- public TVAClassificationSchemeType[] ClassificationScheme;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class MetadataOriginationInformationType {
-
- [XmlElement("Publisher")]
- public TextualType[] Publisher;
-
- [XmlElement("RightsOwner")]
- public TextualType[] RightsOwner;
-
- [XmlElement("CopyrightNotice")]
- public TextualType[] CopyrightNotice;
-
- [XmlAttribute]
- public string originID;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class MetadataOriginationInformationTableType {
-
- [XmlElement("MetadataOriginationInformation")]
- public MetadataOriginationInformationType[] MetadataOriginationInformation;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- [XmlRoot("TVAMain", Namespace="urn:tva:metadata:2011", IsNullable=false)]
- public partial class TVAMainType {
-
- [XmlElement("CopyrightNotice")]
- public TextualType[] CopyrightNotice;
-
- public MetadataOriginationInformationTableType MetadataOriginationInformationTable;
-
- public ClassificationSchemeTableType ClassificationSchemeTable;
-
- public ProgramDescriptionType ProgramDescription;
-
- [XmlElement("UserDescription")]
- public UserDescriptionType[] UserDescription;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
-
- [XmlAttribute]
- public string publisher;
-
- [XmlAttribute]
- public System.DateTime publicationTime;
-
- ///
- [XmlIgnore]
- public bool publicationTimeSpecified;
-
- [XmlAttribute]
- public string rightsOwner;
-
- [XmlAttribute]
- public string originID;
-
- [XmlAttribute]
- public uint version;
-
- ///
- [XmlIgnore]
- public bool versionSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class PurchaseInformationTableType {
-
- [XmlElement("PurchaseInformation")]
- public PurchaseInformationType[] PurchaseInformation;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class CreditsInformationTableType {
-
- [XmlElement("OrganizationName", typeof(OrganizationNameType))]
- [XmlElement("PersonName", typeof(TVAPersonNameType))]
- public object[] Items;
-
- [XmlAttribute]
- public string copyrightNotice;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ServiceInformationTableType {
-
- [XmlElement("ServiceInformation")]
- public ServiceInformationType[] ServiceInformation;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ProgramLocationTableType {
-
- [XmlElement("Schedule")]
- public ScheduleType[] Schedule;
-
- [XmlElement("BroadcastEvent")]
- public BroadcastEventType[] BroadcastEvent;
-
- [XmlElement("OnDemandProgram")]
- public OnDemandProgramType[] OnDemandProgram;
-
- [XmlElement("OnDemandService")]
- public OnDemandServiceType[] OnDemandService;
-
- [XmlElement("PushDownloadProgram")]
- public PushDownloadType[] PushDownloadProgram;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class GroupInformationTableType {
-
- [XmlElement("GroupInformation")]
- public GroupInformationType[] GroupInformation;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ProgramInformationTableType {
-
- [XmlElement("ProgramInformation")]
- public ProgramInformationType[] ProgramInformation;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class SegmentInformationTableType {
-
- [XmlArrayItem("SegmentInformation", IsNullable=false)]
- public SegmentInformationType[] SegmentList;
-
- [XmlArrayItem("SegmentGroupInformation", IsNullable=false)]
- public SegmentGroupInformationType[] SegmentGroupList;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- [XmlInclude(typeof(SegmentGroupTypeType))]
- public abstract partial class BaseSegmentGroupTypeType {
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class SegmentGroupInformationType {
-
- public CRIDRefType ProgramRef;
-
- public TimeBaseReferenceType TimeBaseReference;
-
- [XmlElement("GroupType")]
- public BaseSegmentGroupTypeType[] GroupType;
-
- public BasicSegmentDescriptionType Description;
-
- public GroupIntervalType GroupInterval;
-
- [XmlElement("Groups", typeof(GroupsType))]
- [XmlElement("Segments", typeof(SegmentsType))]
- public object Item;
-
- [XmlElement("KeyFrameLocator")]
- public TVAMediaTimeType[] KeyFrameLocator;
-
- [XmlElement("OtherIdentifier")]
- public UniqueIDType[] OtherIdentifier;
-
- [XmlAttribute]
- public string groupId;
-
- [XmlAttribute]
- [DefaultValue(true)]
- public bool ordered;
-
- [XmlAttribute]
- public ushort numberOfSegments;
-
- ///
- [XmlIgnore]
- public bool numberOfSegmentsSpecified;
-
- [XmlAttribute]
- public ushort numberOfKeyFrames;
-
- ///
- [XmlIgnore]
- public bool numberOfKeyFramesSpecified;
-
- [XmlAttribute]
- public string duration;
-
- [XmlAttribute]
- public bool topLevel;
-
- ///
- [XmlIgnore]
- public bool topLevelSpecified;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
-
- public SegmentGroupInformationType() {
- this.ordered = true;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class GroupsType {
-
- [XmlAttribute]
- public string[] refList;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class SegmentsType {
-
- [XmlAttribute]
- public string[] refList;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class GroupIntervalType {
-
- [XmlAttribute]
- public string @ref;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class SegmentInformationType {
-
- public CRIDRefType ProgramRef;
-
- public TimeBaseReferenceType TimeBaseReference;
-
- public BasicSegmentDescriptionType Description;
-
- public TVAMediaTimeType SegmentLocator;
-
- [XmlElement("KeyFrameLocator")]
- public TVAMediaTimeType[] KeyFrameLocator;
-
- [XmlElement("OtherIdentifier")]
- public UniqueIDType[] OtherIdentifier;
-
- [XmlAttribute]
- public string segmentId;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class TimeBaseReferenceType {
-
- [XmlElement("MediaRelIncrTimePoint", typeof(MediaRelIncrTimePointType))]
- [XmlElement("MediaTimePoint", typeof(string))]
- public object Item;
-
- [XmlAttribute]
- public string timebaseId;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(TVAMediaRelIncrTimePointType))]
- public partial class MediaRelIncrTimePointType {
-
- [XmlAttribute]
- public string mediaTimeUnit;
-
- [XmlText(DataType="integer")]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class MediaRelTimePointType {
-
- [XmlText]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class TVAMediaTimeType {
-
- [XmlElement("MediaRelIncrTimePoint", typeof(TVAMediaRelIncrTimePointType))]
- [XmlElement("MediaRelTimePoint", typeof(MediaRelTimePointType))]
- public object Item;
-
- [XmlElement("MediaDuration", typeof(string))]
- [XmlElement("MediaIncrDuration", typeof(MediaIncrDurationType))]
- public object Item1;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class BasicSegmentDescriptionType {
-
- [XmlElement("Title")]
- public TitleType[] Title;
-
- [XmlElement("Synopsis")]
- public SynopsisType[] Synopsis;
-
- [XmlElement("Genre")]
- public GenreType[] Genre;
-
- [XmlElement("Keyword")]
- public KeywordType[] Keyword;
-
- [XmlElement("RelatedMaterial")]
- public RelatedMaterialType[] RelatedMaterial;
-
- [XmlArrayItem("CreditsItem", IsNullable=false)]
- public CreditsItemType[] CreditsList;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ServiceInformationType {
-
- [XmlElement("Name")]
- public ServiceInformationNameType[] Name;
-
- [XmlElement("Owner")]
- public string[] Owner;
-
- [XmlElement(DataType="anyURI")]
- public string ServiceURL;
-
- [XmlElement("Logo")]
- public MediaLocatorType[] Logo;
-
- [XmlElement("ServiceDescription")]
- public SynopsisType[] ServiceDescription;
-
- [XmlElement("ServiceGenre")]
- public GenreType[] ServiceGenre;
-
- [XmlElement("ServiceLanguage", DataType="language")]
- public string[] ServiceLanguage;
-
- [XmlElement("ParentService")]
- public ServiceRefType[] ParentService;
-
- [XmlElement("RelatedMaterial")]
- public RelatedMaterialType[] RelatedMaterial;
-
- public PurchaseListType PurchaseList;
-
- [XmlElement("GroupPurchaseIDRef")]
- public string[] GroupPurchaseIDRef;
-
- [XmlAttribute]
- public string serviceId;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ServiceRefType {
-
- [XmlElement("ValidPeriod")]
- public ValidPeriodType[] ValidPeriod;
-
- [XmlAttribute]
- public string serviceIDRef;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ValidPeriodType {
-
- public System.DateTime ValidFrom;
-
- ///
- [XmlIgnore]
- public bool ValidFromSpecified;
-
- public System.DateTime ValidTo;
-
- ///
- [XmlIgnore]
- public bool ValidToSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class OnDemandServiceType {
-
- [XmlElement("OnDemandProgram")]
- public OnDemandProgramType[] OnDemandProgram;
-
- [XmlAttribute]
- public string[] serviceIDRef;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ScheduleType {
-
- [XmlElement("ScheduleEvent")]
- public ScheduleEventType[] ScheduleEvent;
-
- [XmlAttribute]
- public string[] serviceIDRef;
-
- [XmlAttribute]
- public System.DateTime start;
-
- ///
- [XmlIgnore]
- public bool startSpecified;
-
- [XmlAttribute]
- public System.DateTime end;
-
- ///
- [XmlIgnore]
- public bool endSpecified;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class InstanceDescriptionType {
-
- [XmlElement("Title")]
- public TitleType[] Title;
-
- [XmlElement("Synopsis")]
- public SynopsisType[] Synopsis;
-
- [XmlElement("Genre")]
- public GenreType[] Genre;
-
- public PurchaseListType PurchaseList;
-
- [XmlElement("CaptionLanguage")]
- public CaptionLanguageType[] CaptionLanguage;
-
- [XmlElement("SignLanguage")]
- public SignLanguageType[] SignLanguage;
-
- public AVAttributesType AVAttributes;
-
- [XmlElement("MemberOf")]
- public BaseMemberOfType[] MemberOf;
-
- [XmlElement("OtherIdentifier")]
- public UniqueIDType[] OtherIdentifier;
-
- [XmlElement("RelatedMaterial")]
- public RelatedMaterialType[] RelatedMaterial;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- [XmlInclude(typeof(PushDownloadType))]
- [XmlInclude(typeof(OnDemandProgramType))]
- [XmlInclude(typeof(ScheduleEventType))]
- [XmlInclude(typeof(BroadcastEventType))]
- public abstract partial class ProgramLocationType {
-
- public CRIDRefType Program;
-
- [XmlElement(DataType="anyURI")]
- public string ProgramURL;
-
- [XmlElement(DataType="anyURI")]
- public string InstanceMetadataId;
-
- public InstanceDescriptionType InstanceDescription;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ProgramReviewTableType {
-
- [XmlElement("Review")]
- public ReviewType[] Review;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class UserIdentifierType {
-
- public TextualType Name;
-
- [XmlAttribute]
- [DefaultValue(userChoiceType.@true)]
- public userChoiceType @protected;
-
- public UserIdentifierType() {
- this.@protected = userChoiceType.@true;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class RatingType {
-
- public float RatingValue;
-
- public RatingTypeRatingScheme RatingScheme;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- [XmlInclude(typeof(ReviewType))]
- public partial class MediaReviewType {
-
- [XmlElement("Rating")]
- public RatingType[] Rating;
-
- [XmlElement("FreeTextReview")]
- public TextualType[] FreeTextReview;
-
- [XmlElement("Reviewer")]
- public ReviewerType[] Reviewer;
-
- [XmlElement(DataType="anyURI")]
- public string ReviewReference;
-
- [XmlElement("Target")]
- public UserIdentifierType[] Target;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class GroupInformationType {
-
- public BaseProgramGroupTypeType GroupType;
-
- public BasicContentDescriptionType BasicDescription;
-
- [XmlElement("MemberOf")]
- public BaseMemberOfType[] MemberOf;
-
- [XmlElement("OtherIdentifier")]
- public UniqueIDType[] OtherIdentifier;
-
- [XmlElement(DataType="anyURI")]
- public string PartOfAggregatedGroup;
-
- public AggregationOfType AggregationOf;
-
- [XmlAttribute(DataType="anyURI")]
- public string groupId;
-
- [XmlAttribute]
- [DefaultValue(false)]
- public bool ordered;
-
- [XmlAttribute]
- public uint numOfItems;
-
- ///
- [XmlIgnore]
- public bool numOfItemsSpecified;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
-
- [XmlAttribute]
- public string[] serviceIDRef;
-
- public GroupInformationType() {
- this.ordered = false;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- [XmlInclude(typeof(ProgramGroupTypeType))]
- public abstract partial class BaseProgramGroupTypeType {
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ProgramInformationType {
-
- public BasicContentDescriptionType BasicDescription;
-
- [XmlElement("OtherIdentifier")]
- public UniqueIDType[] OtherIdentifier;
-
- public AVAttributesType AVAttributes;
-
- [XmlElement("MemberOf")]
- public BaseMemberOfType[] MemberOf;
-
- public DerivedFromType DerivedFrom;
-
- public EpisodeOfType EpisodeOf;
-
- [XmlElement(DataType="anyURI")]
- public string PartOfAggregatedProgram;
-
- public AggregationOfType AggregationOf;
-
- [XmlAttribute(DataType="anyURI")]
- public string programId;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class AggregationOfType {
-
- [XmlElement("AggregatedProgram")]
- public CRIDRefType[] AggregatedProgram;
-
- [XmlAttribute]
- public AggregationOfTypeType type;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class AVAttributesType {
-
- public ControlledTermType FileFormat;
-
- public ulong FileSize;
-
- ///
- [XmlIgnore]
- public bool FileSizeSpecified;
-
- public ControlledTermType System;
-
- [XmlElement("BitRate")]
- public BitRateType[] BitRate;
-
- [XmlElement("AudioAttributes")]
- public AudioAttributesType[] AudioAttributes;
-
- public VideoAttributesType VideoAttributes;
-
- [XmlElement("CaptioningAttributes")]
- public CaptioningAttributesType[] CaptioningAttributes;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class CaptioningAttributesType {
-
- public ControlledTermType Coding;
-
- public BitRateType BitRate;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class PurchaseListType {
-
- [XmlElement("PurchaseIdRef", typeof(string))]
- [XmlElement("PurchaseItem", typeof(PurchaseItemType))]
- public object[] Items;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class PriceType {
-
- [XmlAttribute]
- public string currency;
-
- [XmlText]
- public float Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- [XmlInclude(typeof(PurchaseInformationType))]
- public partial class PurchaseItemType {
-
- [XmlElement("Price")]
- public PriceType[] Price;
-
- [XmlElement("Purchase")]
- public PurchaseType[] Purchase;
-
- [XmlElement("Description")]
- public TextualType[] Description;
-
- [XmlElement("PricingServerURL", DataType="anyURI")]
- public string[] PricingServerURL;
-
- public DRMDeclarationType DRMDeclaration;
-
- [XmlAttribute]
- public System.DateTime start;
-
- ///
- [XmlIgnore]
- public bool startSpecified;
-
- [XmlAttribute]
- public System.DateTime end;
-
- ///
- [XmlIgnore]
- public bool endSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class PurchaseType {
-
- [XmlElement("PurchaseType")]
- public ControlledTermType PurchaseType1;
-
- public ControlledTermType QuantityUnit;
-
- public PurchaseTypeQuantityRange QuantityRange;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class DRMDeclarationType {
-
- [XmlElement(DataType="anyURI")]
- public string DRM;
-
- [XmlElement("LicenseExpression", typeof(string))]
- [XmlElement("LicenseLocator", typeof(string), DataType="anyURI")]
- [XmlChoiceIdentifier("ItemElementName")]
- public string Item;
-
- [XmlIgnore]
- public ItemChoiceType2 ItemElementName;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ReleaseInformationType {
-
- public ReleaseDateType ReleaseDate;
-
- public string ReleaseLocation;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ReleaseDateType {
-
- [XmlElement("DayAndYear", typeof(System.DateTime), DataType="date")]
- [XmlElement("Year", typeof(string), DataType="gYear")]
- public object Item;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class FlagType {
-
- [XmlAttribute]
- public bool value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- [XmlInclude(typeof(GenericDerivationReasonType))]
- [XmlInclude(typeof(DerivationReasonType))]
- public abstract partial class BaseDerivationReasonType {
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- [XmlInclude(typeof(BaseMemberOfType))]
- [XmlInclude(typeof(DerivedFromType))]
- [XmlInclude(typeof(MemberOfType))]
- [XmlInclude(typeof(EpisodeOfType))]
- public partial class CRIDRefType {
-
- [XmlAttribute(DataType="anyURI")]
- public string crid;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class FecInfo {
-
- public FecLayerAddress FECBaseLayer;
-
- public FecLayerAddress FECEnhancementLayer;
-
- [XmlAttribute]
- public ushort FECMaxBlockSize;
-
- ///
- [XmlIgnore]
- public bool FECMaxBlockSizeSpecified;
-
- [XmlAttribute]
- public ushort FECMaxBlockTime;
-
- ///
- [XmlIgnore]
- public bool FECMaxBlockTimeSpecified;
-
- [XmlAttribute(DataType="base64Binary")]
- public byte[] FECOTI;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class RETInfoType {
-
- public RtcpRetransmissionReporting RTCPReporting;
-
- public UnicastRETType UnicastRET;
-
- public MulticastRETType MulticastRET;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class ServerBasedEnhancementServiceInfoType {
-
- public EnhancementServiceType EnhancementService;
-
- public RtcpRetransmissionReporting RTCPReporting;
-
- public UnicastRETType Retransmission_session;
-
- public MulticastRETType MulticastRET;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class MulticastRETType {
-
- [XmlAttribute]
- public string SourceAddress;
-
- [XmlAttribute]
- public string GroupAddress;
-
- [XmlAttribute]
- public uint ssrc;
-
- ///
- [XmlIgnore]
- public bool ssrcSpecified;
-
- [XmlAttribute]
- public uint RTPPayloadTypeNumber;
-
- ///
- [XmlIgnore]
- public bool RTPPayloadTypeNumberSpecified;
-
- [XmlAttribute("rtcp-mux")]
- [DefaultValue(false)]
- public bool rtcpmux;
-
- [XmlAttribute]
- public uint DestinationPort;
-
- ///
- [XmlIgnore]
- public bool DestinationPortSpecified;
-
- [XmlAttribute("rtx-time")]
- public uint rtxtime;
-
- public MulticastRETType() {
- this.rtcpmux = false;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class UnicastRETType {
-
- [XmlAttribute("trr-int")]
- public uint trrint;
-
- ///
- [XmlIgnore]
- public bool trrintSpecified;
-
- [XmlAttribute("DestinationPort-ForRTCPReporting")]
- public uint DestinationPortForRTCPReporting;
-
- ///
- [XmlIgnore]
- public bool DestinationPortForRTCPReportingSpecified;
-
- [XmlAttribute]
- public string SourceAddress;
-
- [XmlAttribute]
- public uint SourcePort;
-
- ///
- [XmlIgnore]
- public bool SourcePortSpecified;
-
- [XmlAttribute(DataType="anyURI")]
- public string RTSPControlURL;
-
- [XmlAttribute]
- public uint ssrc;
-
- ///
- [XmlIgnore]
- public bool ssrcSpecified;
-
- [XmlAttribute]
- public uint RTPPayloadTypeNumber;
-
- ///
- [XmlIgnore]
- public bool RTPPayloadTypeNumberSpecified;
-
- [XmlAttribute("rtcp-mux")]
- [DefaultValue(false)]
- public bool rtcpmux;
-
- [XmlAttribute]
- public uint DestinationPort;
-
- ///
- [XmlIgnore]
- public bool DestinationPortSpecified;
-
- [XmlAttribute("rtx-time")]
- public uint rtxtime;
-
- public UnicastRETType() {
- this.rtcpmux = false;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class DepictedCoordinatesType {
-
- public TVATimeType DepictedDate;
-
- public TVAPlaceType DepictedLocation;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class CreationCoordinatesType {
-
- public TVATimeType CreationDate;
-
- public string CreationLocation;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class TVATimeType {
-
- public string TimePoint;
-
- public string Duration;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class AwardType {
-
- public TextualType Category;
-
- [XmlElement("Nominee", typeof(CreditsItemType))]
- [XmlElement("Recipient", typeof(CreditsItemType))]
- [XmlChoiceIdentifier("ItemElementName")]
- public CreditsItemType Item;
-
- [XmlIgnore]
- public ItemChoiceType1 ItemElementName;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class AwardsListItemType {
-
- public TextualType Title;
-
- [XmlElement(DataType="gYear")]
- public string Year;
-
- [XmlElement("Award")]
- public AwardType[] Award;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class SegmentReferenceType {
-
- [XmlAttribute]
- [DefaultValue(segmentTypeType.segment)]
- public segmentTypeType segmentType;
-
- [XmlAttribute]
- public string @ref;
-
- public SegmentReferenceType() {
- this.segmentType = segmentTypeType.segment;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class RelatedMaterialType {
-
- public ControlledTermType HowRelated;
-
- public ControlledTermType Format;
-
- [XmlElement("MediaLocator", typeof(MediaLocatorType))]
- [XmlElement("SegmentReference", typeof(SegmentReferenceType))]
- public object[] Items;
-
- [XmlElement("PromotionalText")]
- public TextualType[] PromotionalText;
-
- [XmlElement("PromotionalMedia")]
- public TitleMediaType[] PromotionalMedia;
-
- public MediaLocatorType SourceMediaLocator;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class TVAIDRefElementType {
-
- [XmlAttribute]
- public string @ref;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class UniqueIDType {
-
- [XmlAttribute(DataType="NMTOKEN")]
- [DefaultValue("URI")]
- public string type;
-
- [XmlAttribute(DataType="NMTOKEN")]
- public string organization;
-
- [XmlAttribute(DataType="NMTOKEN")]
- public string authority;
-
- [XmlAttribute]
- [DefaultValue(UniqueIDTypeEncoding.text)]
- public UniqueIDTypeEncoding encoding;
-
- [XmlText]
- public string Value;
-
- public UniqueIDType() {
- this.type = "URI";
- this.encoding = UniqueIDTypeEncoding.text;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(TVAPersonNameType))]
- public partial class PersonNameType {
-
- [XmlElement("FamilyName", typeof(NameComponentType))]
- [XmlElement("GivenName", typeof(NameComponentType))]
- [XmlElement("LinkingName", typeof(NameComponentType))]
- [XmlElement("Numeration", typeof(string))]
- [XmlElement("Salutation", typeof(NameComponentType))]
- [XmlElement("Title", typeof(NameComponentType))]
- [XmlChoiceIdentifier("ItemsElementName")]
- public object[] Items;
-
- [XmlElement("ItemsElementName")]
- [XmlIgnore]
- public ItemsChoiceType[] ItemsElementName;
-
- [XmlAttribute]
- public string dateFrom;
-
- [XmlAttribute]
- public string dateTo;
-
- [XmlAttribute]
- public PersonNameTypeType type;
-
- ///
- [XmlIgnore]
- public bool typeSpecified;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- [XmlInclude(typeof(ReviewerType))]
- [XmlInclude(typeof(CreditsItemType))]
- public partial class TVAAgentType {
-
- [XmlElement("OrganizationName", typeof(TextualType))]
- [XmlElement("OrganizationNameIDRef", typeof(TVAIDRefElementType))]
- [XmlElement("PersonName", typeof(PersonNameType))]
- [XmlElement("PersonNameIDRef", typeof(TVAIDRefElementType))]
- [XmlChoiceIdentifier("ItemsElementName")]
- public object[] Items;
-
- [XmlElement("ItemsElementName")]
- [XmlIgnore]
- public ItemsChoiceType1[] ItemsElementName;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class SignLanguageType {
-
- [XmlAttribute]
- public bool primary;
-
- ///
- [XmlIgnore]
- public bool primarySpecified;
-
- [XmlAttribute]
- public bool translation;
-
- ///
- [XmlIgnore]
- public bool translationSpecified;
-
- [XmlAttribute]
- public string type;
-
- [XmlAttribute]
- public bool closed;
-
- ///
- [XmlIgnore]
- public bool closedSpecified;
-
- [XmlText(DataType="language")]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class CaptionLanguageType {
-
- [XmlAttribute]
- public bool primary;
-
- ///
- [XmlIgnore]
- public bool primarySpecified;
-
- [XmlAttribute]
- public bool translation;
-
- ///
- [XmlIgnore]
- public bool translationSpecified;
-
- [XmlAttribute]
- [DefaultValue(true)]
- public bool closed;
-
- [XmlAttribute]
- [DefaultValue(false)]
- public bool supplemental;
-
- [XmlText(DataType="language")]
- public string Value;
-
- public CaptionLanguageType() {
- this.closed = true;
- this.supplemental = false;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(TermUseType))]
- [XmlInclude(typeof(ControlledTermUseType))]
- public abstract partial class InlineTermDefinitionType {
-
- [XmlElement("Name")]
- public InlineTermDefinitionTypeName[] Name;
-
- [XmlElement("Definition")]
- public TextualType[] Definition;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(TVAParentalGuidanceType))]
- public partial class ParentalGuidanceType {
-
- [XmlElement("MinimumAge", typeof(string), DataType="nonNegativeInteger")]
- [XmlElement("ParentalRating", typeof(ControlledTermUseType))]
- public object Item;
-
- [XmlElement("Region")]
- public string[] Region;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class MediaIncrDurationType {
-
- [XmlAttribute]
- public string mediaTimeUnit;
-
- [XmlText(DataType="integer")]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class MediaTimeType {
-
- [XmlElement("MediaTimePoint")]
- public string Item;
-
- [XmlElement("MediaDuration", typeof(string))]
- [XmlElement("MediaIncrDuration", typeof(MediaIncrDurationType))]
- public object Item1;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class InlineMediaType {
-
- [XmlElement("MediaData16", typeof(byte[]), DataType="hexBinary")]
- [XmlElement("MediaData64", typeof(byte[]), DataType="base64Binary")]
- [XmlChoiceIdentifier("ItemElementName")]
- public byte[] Item;
-
- [XmlIgnore]
- public ItemChoiceType ItemElementName;
-
- [XmlAttribute]
- public string type;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(TemporalSegmentLocatorType))]
- [XmlInclude(typeof(ImageLocatorType))]
- public partial class MediaLocatorType {
-
- [XmlElement("InlineMedia", typeof(InlineMediaType))]
- [XmlElement("MediaUri", typeof(string), DataType="anyURI")]
- public object Item;
-
- [XmlElement(DataType="nonNegativeInteger")]
- public string StreamID;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class TitleMediaType {
-
- public ImageLocatorType TitleImage;
-
- public TemporalSegmentLocatorType TitleVideo;
-
- public TemporalSegmentLocatorType TitleAudio;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class BasicContentDescriptionType {
-
- [XmlElement("Title")]
- public TitleType[] Title;
-
- [XmlElement("MediaTitle")]
- public TitleMediaType[] MediaTitle;
-
- [XmlElement("ShortTitle")]
- public ShortTitleType[] ShortTitle;
-
- [XmlElement("Synopsis")]
- public SynopsisType[] Synopsis;
-
- [XmlElement("PromotionalInformation")]
- public TextualType[] PromotionalInformation;
-
- [XmlElement("Keyword")]
- public KeywordType[] Keyword;
-
- [XmlElement("Genre")]
- public GenreType[] Genre;
-
- [XmlElement("ParentalGuidance")]
- public TVAParentalGuidanceType[] ParentalGuidance;
-
- [XmlElement("Language")]
- public ExtendedLanguageType[] Language;
-
- [XmlElement("CaptionLanguage")]
- public CaptionLanguageType[] CaptionLanguage;
-
- [XmlElement("SignLanguage")]
- public SignLanguageType[] SignLanguage;
-
- [XmlArrayItem("CreditsItem", IsNullable=false)]
- public CreditsItemType[] CreditsList;
-
- [XmlArrayItem("AwardsListItem", IsNullable=false)]
- public AwardsListItemType[] AwardsList;
-
- [XmlElement("RelatedMaterial")]
- public RelatedMaterialType[] RelatedMaterial;
-
- public TVATimeType ProductionDate;
-
- [XmlElement("ProductionLocation")]
- public string[] ProductionLocation;
-
- [XmlElement("CreationCoordinates")]
- public CreationCoordinatesType[] CreationCoordinates;
-
- [XmlElement("DepictedCoordinates")]
- public DepictedCoordinatesType[] DepictedCoordinates;
-
- [XmlElement("ReleaseInformation")]
- public ReleaseInformationType[] ReleaseInformation;
-
- [XmlElement(DataType="duration")]
- public string Duration;
-
- public PurchaseListType PurchaseList;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class RmsFusMulticastAddressKind {
-
- [XmlAttribute]
- public string Source;
-
- [XmlAttribute]
- public string Address;
-
- [XmlAttribute]
- public ushort Port;
-
- [XmlAttribute]
- public RmsFusMulticastAddressKindProtocol Protocol;
-
- ///
- [XmlIgnore]
- public bool ProtocolSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class FirmwareUpdateAnnouncement {
-
- public string FUSAnnouncementDescription;
-
- public RmsFusMulticastAddressKind MulticastAnnouncementAddress;
-
- [XmlElement(DataType="anyURI")]
- public string FUSUnicastAnnouncement;
-
- [XmlElement(DataType="anyURI")]
- public string QRCLocation;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class CivicAddress {
-
- [XmlElement("CA")]
- public CivicAddress[] CA;
-
- [XmlAttribute]
- public string Type;
-
- [XmlAttribute]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class TargetPackageType {
-
- [XmlElement("PackageType")]
- public MultilingualText[] PackageType;
-
- [XmlAttribute]
- public string PackageIDRef;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class PayloadListSegmentType {
-
- [XmlElement("TargetPackage")]
- public TargetPackageType[] TargetPackage;
-
- [XmlAttribute]
- public string Version;
-
- [XmlAttribute]
- public string ID;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- [XmlInclude(typeof(DvbStpTransportMode))]
- [XmlInclude(typeof(HttpTransportMode))]
- public partial class PayloadList {
-
- [XmlElement("PayloadId")]
- public PayloadListPayloadId[] PayloadId;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class SRMDownloadServiceHTTPType {
-
- public SRMIDVerUType SRMIDVer;
-
- [XmlAttribute(DataType="anyURI")]
- public string Location;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class SRMDownloadServiceFLUTEType {
-
- [XmlElement("SRMIDVer")]
- public SRMIDVerMType[] SRMIDVer;
-
- [XmlAttribute]
- public string FLUTESessionVersion;
-
- [XmlAttribute]
- public string Source;
-
- [XmlAttribute]
- public string Address;
-
- [XmlAttribute]
- public ushort Port;
-
- [XmlAttribute]
- public ushort TSI;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class SRMAnnouncementModeSAPType {
-
- [XmlAttribute]
- public string Source;
-
- [XmlAttribute]
- public string Address;
-
- [XmlAttribute]
- public ushort Port;
- }
-
- ///
- /// [en] SAP or HTTP delivery of SRM Announcement Services
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMAnnouncementModeType
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class SRMAnnouncementModeType {
-
- [XmlElement("HTTP", typeof(string), DataType="anyURI")]
- [XmlElement("SAP", typeof(SRMAnnouncementModeSAPType))]
- public object Item;
- }
-
- ///
- /// SRM specific ID (CP System ID, CP System SRM ID)
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMIDType
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- [XmlInclude(typeof(SRMIDVerUType))]
- [XmlInclude(typeof(SRMIDVerMType))]
- public partial class SRMIDType {
-
- [XmlAttribute]
- public string CPSystemID;
-
- [XmlAttribute]
- public string CPSystemSRMID;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class PackagedServiceType {
-
- [XmlElement("TextualID")]
- public PackageTextualIdentifier[] TextualID;
-
- public DvbTriplet DVBTriplet;
-
- public DescriptionLocationBCG DescriptionLocation;
-
- [XmlElement(DataType="positiveInteger")]
- public string LogicalChannelNumber;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class PackageAvailabilityCountryCode {
-
- [XmlAttribute]
- [DefaultValue(true)]
- public bool Availability;
-
- [XmlText]
- public string Value;
-
- public PackageAvailabilityCountryCode() {
- this.Availability = true;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class ServiceAvailability {
-
- public PackageAvailabilityCountryCode CountryCode;
-
- [XmlElement("Cells")]
- public string[] Cells;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ColorType {
-
- [XmlAttribute]
- public ColorTypeType type;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class AspectRatioType {
-
- [XmlAttribute]
- [DefaultValue(AspectRatioTypeType.original)]
- public AspectRatioTypeType type;
-
- [XmlText]
- public string Value;
-
- public AspectRatioType() {
- this.type = AspectRatioTypeType.original;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class VideoAttributesType {
-
- public ControlledTermType Coding;
-
- public ScanType Scan;
-
- ///
- [XmlIgnore]
- public bool ScanSpecified;
-
- public ushort HorizontalSize;
-
- ///
- [XmlIgnore]
- public bool HorizontalSizeSpecified;
-
- public ushort VerticalSize;
-
- ///
- [XmlIgnore]
- public bool VerticalSizeSpecified;
-
- [XmlElement("AspectRatio")]
- public AspectRatioType[] AspectRatio;
-
- public ColorType Color;
-
- public string FrameRate;
-
- public BitRateType BitRate;
-
- public ControlledTermType PictureFormat;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class BitRateType {
-
- [XmlAttribute]
- [DefaultValue(false)]
- public bool variable;
-
- [XmlAttribute]
- public ulong minimum;
-
- ///
- [XmlIgnore]
- public bool minimumSpecified;
-
- [XmlAttribute]
- public ulong average;
-
- ///
- [XmlIgnore]
- public bool averageSpecified;
-
- [XmlAttribute]
- public ulong maximum;
-
- ///
- [XmlIgnore]
- public bool maximumSpecified;
-
- [XmlText(DataType="nonNegativeInteger")]
- public string Value;
-
- public BitRateType() {
- this.variable = false;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(AudioLanguageType))]
- public partial class ExtendedLanguageType {
-
- [XmlAttribute]
- [DefaultValue(ExtendedLanguageTypeType.original)]
- public ExtendedLanguageTypeType type;
-
- [XmlAttribute]
- [DefaultValue(false)]
- public bool supplemental;
-
- [XmlText(DataType="language")]
- public string Value;
-
- public ExtendedLanguageType() {
- this.type = ExtendedLanguageTypeType.original;
- this.supplemental = false;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(TitleType))]
- [XmlInclude(typeof(ShortTitleType))]
- [XmlInclude(typeof(TextualType))]
- [XmlInclude(typeof(OrganizationNameType))]
- [XmlInclude(typeof(ServiceInformationNameType))]
- [XmlInclude(typeof(ExplanationType))]
- [XmlInclude(typeof(SynopsisType))]
- [XmlInclude(typeof(KeywordType))]
- [XmlInclude(typeof(TermNameType))]
- [XmlInclude(typeof(NameComponentType))]
- public abstract partial class TextualBaseType {
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
-
- [XmlText]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- [XmlInclude(typeof(GenreType))]
- public partial class ControlledTermType {
-
- public TermNameType Name;
-
- public TextualType Definition;
-
- [XmlAttribute]
- public string href;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class AudioAttributesType {
-
- public ControlledTermType Coding;
-
- public ushort NumOfChannels;
-
- ///
- [XmlIgnore]
- public bool NumOfChannelsSpecified;
-
- public ControlledTermType MixType;
-
- public AudioLanguageType AudioLanguage;
-
- public uint SampleFrequency;
-
- ///
- [XmlIgnore]
- public bool SampleFrequencySpecified;
-
- public uint BitsPerSample;
-
- ///
- [XmlIgnore]
- public bool BitsPerSampleSpecified;
-
- public BitRateType BitRate;
- }
-
- ///
- /// [en] Implementation of the Announcement support indicator from ETSI EN 300 468.
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:AnnouncementSupport
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class AnnouncementSupport {
-
- [XmlElement("Announcement")]
- public AnnouncementSupportAnnouncement[] Announcement;
-
- [XmlAttribute]
- public string SupportIndicator;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class MosaicDescription {
-
- [XmlElement("LogicalCell")]
- public MosaicDescriptionLogicalCell[] LogicalCell;
-
- [XmlAttribute]
- [DefaultValue(true)]
- public bool EntryPoint;
-
- [XmlAttribute]
- public string HorizontalCellsNumber;
-
- [XmlAttribute]
- public string VerticalCellsNumber;
-
- public MosaicDescription() {
- this.EntryPoint = true;
- }
- }
-
- ///
- /// [en] implementation of The replacement_Service part of the Linkage_Descriptor in ETSI EN 300 468. Describes a service to try if the specified one fails.
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:ReplacementService
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class ReplacementService {
-
- [XmlElement("DVBTriplet", typeof(DvbTriplet))]
- [XmlElement("TextualIdentifier", typeof(TextualIdentifier))]
- public object Item;
-
- [XmlAttribute]
- [DefaultValue("5")]
- public string ReplacementType;
-
- public ReplacementService() {
- this.ReplacementType = "5";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class CountryAvailability {
-
- [XmlAttribute]
- public string Countries;
-
- [XmlAttribute]
- [DefaultValue(true)]
- public bool Available;
-
- public CountryAvailability() {
- this.Available = true;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class MultilingualText {
-
- [XmlAttribute]
- public string Language;
-
- [XmlText]
- public string Value;
- }
-
- ///
- /// Implementation of traditional DVB SI information about a service
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SI
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class SI {
-
- [XmlElement("Name")]
- public MultilingualText[] Name;
-
- [XmlElement("Description")]
- public MultilingualText[] Description;
-
- [XmlElement("ServiceDescriptionLocation")]
- public DescriptionLocationBCG[] ServiceDescriptionLocation;
-
- [XmlElement("ContentGenre")]
- public sbyte[] ContentGenre;
-
- [XmlElement("CountryAvailability")]
- public CountryAvailability[] CountryAvailability;
-
- [XmlElement("ReplacementService")]
- public ReplacementService[] ReplacementService;
-
- public MosaicDescription MosaicDescription;
-
- public AnnouncementSupport AnnouncementSupport;
-
- [XmlAttribute]
- public string ServiceType;
-
- [XmlAttribute]
- [DefaultValue(PrimaryServiceInformationSource.XML)]
- public PrimaryServiceInformationSource PrimarySISource;
-
- public SI() {
- this.PrimarySISource = PrimaryServiceInformationSource.XML;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class DvbTriplet {
-
- [XmlAttribute]
- public ushort OrigNetId;
-
- [XmlAttribute]
- public ushort TSId;
-
- [XmlAttribute]
- public ushort ServiceId;
-
- [XmlAttribute]
- public string TSIdWildcard;
-
- public DvbTriplet() {
- this.TSIdWildcard = "*";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- [XmlInclude(typeof(PackageTextualIdentifier))]
- public partial class TextualIdentifier {
-
- [XmlAttribute]
- public string DomainName;
-
- [XmlAttribute]
- public string ServiceName;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class RtspUrl {
-
- [XmlAttribute(DataType="anyURI")]
- public string RTSPControlURL;
-
- [XmlText(DataType="anyURI")]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class MulticastRetransmission {
-
- [XmlAttribute]
- public string SourceAddress;
-
- [XmlAttribute]
- public string GroupAddress;
-
- [XmlAttribute]
- public uint ssrc;
-
- ///
- [XmlIgnore]
- public bool ssrcSpecified;
-
- [XmlAttribute]
- public uint RTPPayloadTypeNumber;
-
- ///
- [XmlIgnore]
- public bool RTPPayloadTypeNumberSpecified;
-
- [XmlAttribute("dvb-original-copy-ret")]
- public bool dvboriginalcopyret;
-
- ///
- [XmlIgnore]
- public bool dvboriginalcopyretSpecified;
-
- [XmlAttribute("rtcp-mux")]
- [DefaultValue(false)]
- public bool rtcpmux;
-
- [XmlAttribute]
- public uint DestinationPort;
-
- ///
- [XmlIgnore]
- public bool DestinationPortSpecified;
-
- [XmlAttribute("rtx-time")]
- public uint rtxtime;
-
- public MulticastRetransmission() {
- this.rtcpmux = false;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class UnicastRetransmission {
-
- [XmlAttribute("trr-int")]
- public uint trrint;
-
- ///
- [XmlIgnore]
- public bool trrintSpecified;
-
- [XmlAttribute("DestinationPort-ForRTCPReporting")]
- public uint DestinationPortForRTCPReporting;
-
- ///
- [XmlIgnore]
- public bool DestinationPortForRTCPReportingSpecified;
-
- [XmlAttribute]
- public uint SourcePort;
-
- ///
- [XmlIgnore]
- public bool SourcePortSpecified;
-
- [XmlAttribute(DataType="anyURI")]
- public string RTSPControlURL;
-
- [XmlAttribute]
- public uint ssrc;
-
- ///
- [XmlIgnore]
- public bool ssrcSpecified;
-
- [XmlAttribute]
- public uint RTPPayloadTypeNumber;
-
- ///
- [XmlIgnore]
- public bool RTPPayloadTypeNumberSpecified;
-
- [XmlAttribute("dvb-original-copy-ret")]
- public bool dvboriginalcopyret;
-
- ///
- [XmlIgnore]
- public bool dvboriginalcopyretSpecified;
-
- [XmlAttribute("rtcp-mux")]
- [DefaultValue(false)]
- public bool rtcpmux;
-
- [XmlAttribute]
- public uint DestinationPort;
-
- ///
- [XmlIgnore]
- public bool DestinationPortSpecified;
-
- [XmlAttribute("rtx-time")]
- public uint rtxtime;
-
- public UnicastRetransmission() {
- this.rtcpmux = false;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class RtcpRetransmissionReporting {
-
- [XmlAttribute]
- public string DestinationAddress;
-
- [XmlAttribute]
- public ushort DestinationPort;
-
- ///
- [XmlIgnore]
- public bool DestinationPortSpecified;
-
- [XmlAttribute("dvb-t-ret", DataType="positiveInteger")]
- public string dvbtret;
-
- [XmlAttribute("rtcp-bandwidth", DataType="positiveInteger")]
- public string rtcpbandwidth;
-
- [XmlAttribute("rtcp-rsize", DataType="positiveInteger")]
- public string rtcprsize;
-
- [XmlAttribute("trr-int", DataType="positiveInteger")]
- public string trrint;
-
- [XmlAttribute("dvb-disable-rtcp-rr")]
- [DefaultValue(false)]
- public bool dvbdisablertcprr;
-
- [XmlAttribute("dvb-enable-byte")]
- [DefaultValue(false)]
- public bool dvbenablebyte;
-
- [XmlAttribute("dvb-t-wait-min")]
- [DefaultValue(typeof(uint), "0")]
- public uint dvbtwaitmin;
-
- [XmlAttribute("dvb-t-wait-max")]
- [DefaultValue(typeof(uint), "0")]
- public uint dvbtwaitmax;
-
- [XmlAttribute("dvb-ssrc-bitmask")]
- [DefaultValue("ffffffff")]
- public string dvbssrcbitmask;
-
- [XmlAttribute("dvb-rsi-mc-ret")]
- public bool dvbrsimcret;
-
- ///
- [XmlIgnore]
- public bool dvbrsimcretSpecified;
-
- [XmlAttribute("dvb-ssrc-upstream-client", DataType="positiveInteger")]
- public string dvbssrcupstreamclient;
-
- public RtcpRetransmissionReporting() {
- this.dvbdisablertcprr = false;
- this.dvbenablebyte = false;
- this.dvbtwaitmin = ((uint)(0));
- this.dvbtwaitmax = ((uint)(0));
- this.dvbssrcbitmask = "ffffffff";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class RetransmissionInfo {
-
- public RtcpRetransmissionReporting RTCPReporting;
-
- public UnicastRetransmission UnicastRET;
-
- public MulticastRetransmission MulticastRET;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class FecLayerAddress {
-
- [XmlAttribute]
- public string Address;
-
- [XmlAttribute]
- public string Source;
-
- [XmlAttribute]
- public ushort Port;
-
- ///
- [XmlIgnore]
- public bool PortSpecified;
-
- [XmlAttribute(DataType="positiveInteger")]
- public string MaxBitrate;
-
- [XmlAttribute(DataType="anyURI")]
- public string RTSPControlURL;
-
- [XmlAttribute]
- public uint PayloadTypeNumber;
-
- ///
- [XmlIgnore]
- public bool PayloadTypeNumberSpecified;
-
- [XmlAttribute]
- public TransportProtocolType TransportProtocol;
-
- ///
- [XmlIgnore]
- public bool TransportProtocolSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class IpMulticastAddress {
-
- public FecLayerAddress FECBaseLayer;
-
- [XmlElement("FECEnhancementLayer")]
- public FecLayerAddress[] FECEnhancementLayer;
-
- public string CNAME;
-
- public uint ssrc;
-
- ///
- [XmlIgnore]
- public bool ssrcSpecified;
-
- public RetransmissionInfo RTPRetransmission;
-
- [XmlAttribute]
- public string Source;
-
- [XmlAttribute]
- public string Address;
-
- [XmlAttribute]
- public ushort Port;
-
- [XmlAttribute]
- public StreamingType Streaming;
-
- ///
- [XmlIgnore]
- public bool StreamingSpecified;
- }
-
- ///
- /// [en] The location of a service. Currently this supports either a broadcast system identifier or a multicast address (ASM and SSM) or RTSP.
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:ServiceLocation
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class ServiceLocation {
-
- [XmlElement("BroadcastSystem", typeof(string))]
- [XmlElement("IPMulticastAddress", typeof(IpMulticastAddress))]
- [XmlElement("RTSPURL", typeof(RtspUrl))]
- public object[] Items;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class IPService {
-
- public ServiceLocation ServiceLocation;
-
- public TextualIdentifier TextualIdentifier;
-
- [XmlElement("DVBTriplet")]
- public DvbTriplet[] DVBTriplet;
-
- [XmlElement(DataType="positiveInteger")]
- public string MaxBitrate;
-
- public SI SI;
-
- [XmlElement("AudioAttributes")]
- public AudioAttributesType[] AudioAttributes;
-
- [XmlElement("VideoAttributes")]
- public VideoAttributesType[] VideoAttributes;
-
- [XmlElement("ServiceAvailability")]
- public ServiceAvailability[] ServiceAvailability;
-
- [XmlElement("Usage")]
- public Usage[] Usage;
-
- [XmlElement("LinkedService")]
- public IPService[] LinkedService;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class DescriptionLocationBCG {
-
- [XmlAttribute]
- public bool preferred;
-
- ///
- [XmlIgnore]
- public bool preferredSpecified;
-
- [XmlText]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class PackagePackageReference {
-
- [XmlAttribute]
- public string Id;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class ReferencedServiceProviderTypeService {
-
- [XmlAttribute]
- public string Name;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class UserPreferencesType : DSType {
-
- public UserIdentifierType UserIdentifier;
-
- [XmlElement("FilteringAndSearchPreferences")]
- public FilteringAndSearchPreferencesType[] FilteringAndSearchPreferences;
-
- [XmlElement("BrowsingPreferences")]
- public BrowsingPreferencesType[] BrowsingPreferences;
-
- [XmlAttribute]
- [DefaultValue(userChoiceType.@false)]
- public userChoiceType allowAutomaticUpdate;
-
- public UserPreferencesType() {
- this.allowAutomaticUpdate = userChoiceType.@false;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class UsageHistoryType : DSType {
-
- public UserIdentifierType UserIdentifier;
-
- [XmlElement("UserActionHistory")]
- public UserActionHistoryType[] UserActionHistory;
-
- [XmlAttribute]
- [DefaultValue(userChoiceType.@false)]
- public userChoiceType allowCollection;
-
- public UsageHistoryType() {
- this.allowCollection = userChoiceType.@false;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class ControlledTermUseType : InlineTermDefinitionType {
-
- [XmlAttribute]
- public string href;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(PersonType))]
- [XmlInclude(typeof(PersonGroupType))]
- [XmlInclude(typeof(OrganizationType))]
- public abstract partial class AgentType : DSType {
-
- [XmlElement("Icon")]
- public MediaLocatorType[] Icon;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class CreatorType : MediaAgentType {
-
- [XmlElement("Character")]
- public PersonNameType[] Character;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class ElectronicAddressTypeTelephone {
-
- [XmlAttribute]
- public ElectronicAddressTypeTelephoneType type;
-
- ///
- [XmlIgnore]
- public bool typeSpecified;
-
- [XmlText]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(OrganizationNameType))]
- [XmlInclude(typeof(ServiceInformationNameType))]
- [XmlInclude(typeof(ExplanationType))]
- [XmlInclude(typeof(SynopsisType))]
- [XmlInclude(typeof(KeywordType))]
- [XmlInclude(typeof(TermNameType))]
- public partial class TextualType : TextualBaseType {
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(ClassificationSchemeAliasType))]
- [XmlInclude(typeof(CSAliasType))]
- public abstract partial class HeaderType : Mpeg7BaseType {
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(PreferenceConditionType))]
- [XmlInclude(typeof(MediaFormatType))]
- public abstract partial class DType : Mpeg7BaseType {
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(UserPreferencesType))]
- [XmlInclude(typeof(UserActionListType1))]
- [XmlInclude(typeof(UserActionHistoryType1))]
- [XmlInclude(typeof(UsageHistoryType1))]
- [XmlInclude(typeof(SourcePreferencesType))]
- [XmlInclude(typeof(FilteringAndSearchPreferencesType))]
- [XmlInclude(typeof(CreationPreferencesType))]
- [XmlInclude(typeof(ClassificationPreferencesType))]
- [XmlInclude(typeof(SummaryPreferencesType))]
- [XmlInclude(typeof(BrowsingPreferencesType))]
- [XmlInclude(typeof(AgentType))]
- [XmlInclude(typeof(PersonType))]
- [XmlInclude(typeof(PersonGroupType))]
- [XmlInclude(typeof(OrganizationType))]
- [XmlInclude(typeof(PlaceType))]
- [XmlInclude(typeof(TVAPlaceType))]
- [XmlInclude(typeof(TermDefinitionBaseType))]
- [XmlInclude(typeof(TermDefinitionType))]
- [XmlInclude(typeof(ClassificationSchemeBaseType))]
- [XmlInclude(typeof(ClassificationSchemeType))]
- [XmlInclude(typeof(TVAClassificationSchemeType))]
- [XmlInclude(typeof(TVATermDefinitionBaseType))]
- [XmlInclude(typeof(TVATermDefinitionType))]
- [XmlInclude(typeof(UserActionType))]
- [XmlInclude(typeof(UserActionType1))]
- [XmlInclude(typeof(UserActionListType))]
- [XmlInclude(typeof(UserActionHistoryType))]
- [XmlInclude(typeof(UsageHistoryType))]
- public abstract partial class DSType : Mpeg7BaseType {
-
- [XmlAttribute(DataType="ID")]
- public string id;
-
- [XmlAttribute(DataType="token")]
- public string timeBase;
-
- [XmlAttribute]
- public string timeUnit;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class CSAliasType : ClassificationSchemeAliasType {
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class TVAClassificationSchemeType : ClassificationSchemeBaseType {
-
- [XmlElement("Term")]
- public TVATermDefinitionType[] Term;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class PurchaseInformationType : PurchaseItemType {
-
- [XmlAttribute]
- public string purchaseId;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class OrganizationNameType : TextualType {
-
- [XmlAttribute]
- public string organizationNameId;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class TVAPersonNameType : PersonNameType {
-
- [XmlElement("OtherIdentifier")]
- public UniqueIDType[] OtherIdentifier;
-
- [XmlAttribute]
- public string personNameId;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class BroadcastEventType : ScheduleEventType {
-
- [XmlAttribute]
- public string[] serviceIDRef;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class OnDemandProgramType : ProgramLocationType {
-
- [XmlElement(DataType="duration")]
- public string PublishedDuration;
-
- public System.DateTime StartOfAvailability;
-
- ///
- [XmlIgnore]
- public bool StartOfAvailabilitySpecified;
-
- public System.DateTime EndOfAvailability;
-
- ///
- [XmlIgnore]
- public bool EndOfAvailabilitySpecified;
-
- public FlagType FirstAvailability;
-
- public FlagType LastAvailability;
-
- public FlagType ImmediateViewing;
-
- public DeliveryModeType DeliveryMode;
-
- ///
- [XmlIgnore]
- public bool DeliveryModeSpecified;
-
- public byte ContentVersion;
-
- ///
- [XmlIgnore]
- public bool ContentVersionSpecified;
-
- public System.DateTime ExpiryTime;
-
- ///
- [XmlIgnore]
- public bool ExpiryTimeSpecified;
-
- public FlagType EarlyPlayout;
-
- public FlagType Free;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
-
- [XmlAttribute]
- public string[] serviceIDRef;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class PushDownloadType : ProgramLocationType {
-
- [XmlElement(DataType="duration")]
- public string PublishedDuration;
-
- public System.DateTime StartOfAvailability;
-
- ///
- [XmlIgnore]
- public bool StartOfAvailabilitySpecified;
-
- public System.DateTime EndOfAvailability;
-
- ///
- [XmlIgnore]
- public bool EndOfAvailabilitySpecified;
-
- public byte ContentVersion;
-
- ///
- [XmlIgnore]
- public bool ContentVersionSpecified;
-
- public System.DateTime ExpiryTime;
-
- ///
- [XmlIgnore]
- public bool ExpiryTimeSpecified;
-
- public System.DateTime ActivationTime;
-
- ///
- [XmlIgnore]
- public bool ActivationTimeSpecified;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
-
- [XmlAttribute]
- public string[] serviceIDRef;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class SegmentGroupTypeType : BaseSegmentGroupTypeType {
-
- [XmlAttribute]
- public SegmentGroupTypeTypeValue value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class TVAMediaRelIncrTimePointType : MediaRelIncrTimePointType {
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(ShortTitleType))]
- public partial class TitleType : TextualBaseType {
-
- [XmlAttribute]
- [DefaultValue("main")]
- public string type;
-
- public TitleType() {
- this.type = "main";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class SynopsisType : TextualType {
-
- [XmlAttribute]
- public SynopsisLengthType length;
-
- ///
- [XmlIgnore]
- public bool lengthSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class GenreType : ControlledTermType {
-
- [XmlAttribute]
- [DefaultValue(GenreTypeType.main)]
- public GenreTypeType type;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- public GenreType() {
- this.type = GenreTypeType.main;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class KeywordType : TextualType {
-
- [XmlAttribute]
- [DefaultValue(KeywordTypeType.main)]
- public KeywordTypeType type;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- public KeywordType() {
- this.type = KeywordTypeType.main;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ServiceInformationNameType : TextualType {
-
- [XmlAttribute]
- public serviceInformationNameLengthType length;
-
- ///
- [XmlIgnore]
- public bool lengthSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- [XmlInclude(typeof(BroadcastEventType))]
- public partial class ScheduleEventType : ProgramLocationType {
-
- public System.DateTime PublishedStartTime;
-
- ///
- [XmlIgnore]
- public bool PublishedStartTimeSpecified;
-
- public System.DateTime PublishedEndTime;
-
- ///
- [XmlIgnore]
- public bool PublishedEndTimeSpecified;
-
- [XmlElement(DataType="duration")]
- public string PublishedDuration;
-
- public FlagType Live;
-
- public FlagType Repeat;
-
- public FlagType FirstShowing;
-
- public FlagType LastShowing;
-
- public FlagType Free;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- [XmlInclude(typeof(DerivedFromType))]
- [XmlInclude(typeof(MemberOfType))]
- [XmlInclude(typeof(EpisodeOfType))]
- public abstract partial class BaseMemberOfType : CRIDRefType {
-
- [XmlAttribute]
- public uint index;
-
- ///
- [XmlIgnore]
- public bool indexSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ReviewType : MediaReviewType {
-
- [XmlAttribute(DataType="anyURI")]
- public string programId;
-
- [XmlAttribute]
- public string fragmentId;
-
- [XmlAttribute]
- public ulong fragmentVersion;
-
- ///
- [XmlIgnore]
- public bool fragmentVersionSpecified;
-
- [XmlAttribute]
- public System.DateTime fragmentExpirationDate;
-
- ///
- [XmlIgnore]
- public bool fragmentExpirationDateSpecified;
-
- [XmlAttribute]
- public string metadataOriginIDRef;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public enum userChoiceType {
-
- ///
- @true,
-
- ///
- @false,
-
- ///
- user,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class RatingTypeRatingScheme : TermUseType {
-
- [XmlAttribute]
- public float best;
-
- ///
- [XmlIgnore]
- public bool bestSpecified;
-
- [XmlAttribute]
- public float worst;
-
- ///
- [XmlIgnore]
- public bool worstSpecified;
-
- [XmlAttribute]
- public RatingTypeRatingSchemeStyle style;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ReviewerType : TVAAgentType {
-
- public TextualType Publication;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ProgramGroupTypeType : BaseProgramGroupTypeType {
-
- [XmlAttribute]
- public ProgramGroupTypeTypeValue value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class DerivedFromType : BaseMemberOfType {
-
- [XmlElement("DerivationReason")]
- public GenericDerivationReasonType[] DerivationReason;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class EpisodeOfType : BaseMemberOfType {
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
- public enum AggregationOfTypeType {
-
- ///
- omnibus,
-
- ///
- magazine,
-
- ///
- split,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
- public partial class PurchaseTypeQuantityRange {
-
- [XmlAttribute]
- public uint min;
-
- ///
- [XmlIgnore]
- public bool minSpecified;
-
- [XmlAttribute]
- public uint max;
-
- ///
- [XmlIgnore]
- public bool maxSpecified;
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:metadata:2011", IncludeInSchema=false)]
- public enum ItemChoiceType2 {
-
- ///
- LicenseExpression,
-
- ///
- LicenseLocator,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class GenericDerivationReasonType : BaseDerivationReasonType {
-
- [XmlElement("Classifier")]
- public ControlledTermType[] Classifier;
-
- [XmlElement("Description")]
- public TextualType[] Description;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class DerivationReasonType : BaseDerivationReasonType {
-
- [XmlAttribute]
- public DerivationReasonTypeValue value;
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public enum EnhancementServiceType {
-
- ///
- FCC,
-
- ///
- RET,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class TVAPlaceType : PlaceType {
-
- [XmlAttribute]
- [DefaultValue(false)]
- public bool fictional;
-
- public TVAPlaceType() {
- this.fictional = false;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class CreditsItemType : TVAAgentType {
-
- [XmlElement("Character", typeof(PersonNameType))]
- [XmlElement("PresentationRole", typeof(TextualType))]
- public object[] Items1;
-
- [XmlElement("RelatedMaterial")]
- public RelatedMaterialType[] RelatedMaterial;
-
- [XmlAttribute]
- public string role;
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string index;
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:metadata:2011", IncludeInSchema=false)]
- public enum ItemChoiceType1 {
-
- ///
- Nominee,
-
- ///
- Recipient,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public enum segmentTypeType {
-
- ///
- segment,
-
- ///
- segmentgroup,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public enum UniqueIDTypeEncoding {
-
- ///
- text,
-
- ///
- base16,
-
- ///
- base64,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class NameComponentType : TextualBaseType {
-
- [XmlAttribute]
- public string initial;
-
- [XmlAttribute]
- public string abbrev;
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:mpeg7:2008", IncludeInSchema=false)]
- public enum ItemsChoiceType {
-
- ///
- FamilyName,
-
- ///
- GivenName,
-
- ///
- LinkingName,
-
- ///
- Numeration,
-
- ///
- Salutation,
-
- ///
- Title,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public enum PersonNameTypeType {
-
- ///
- former,
-
- ///
- variant,
-
- ///
- main,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:metadata:2011", IncludeInSchema=false)]
- public enum ItemsChoiceType1 {
-
- ///
- OrganizationName,
-
- ///
- OrganizationNameIDRef,
-
- ///
- PersonName,
-
- ///
- PersonNameIDRef,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class InlineTermDefinitionTypeName : TextualType {
-
- [XmlAttribute]
- public bool preferred;
-
- ///
- [XmlIgnore]
- public bool preferredSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class TermUseType : InlineTermDefinitionType {
-
- [XmlAttribute]
- public string href;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class TVAParentalGuidanceType : ParentalGuidanceType {
-
- [XmlElement("ExplanatoryText")]
- public ExplanationType[] ExplanatoryText;
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:mpeg7:2008", IncludeInSchema=false)]
- public enum ItemChoiceType {
-
- ///
- MediaData16,
-
- ///
- MediaData64,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class TemporalSegmentLocatorType : MediaLocatorType {
-
- [XmlElement("BytePosition", typeof(TemporalSegmentLocatorTypeBytePosition))]
- [XmlElement("MediaTime", typeof(MediaTimeType))]
- public object Item1;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class ImageLocatorType : MediaLocatorType {
-
- [XmlElement("BytePosition", typeof(ImageLocatorTypeBytePosition))]
- [XmlElement("MediaTimePoint", typeof(string))]
- public object Item1;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ShortTitleType : TitleType {
-
- [XmlAttribute]
- public ushort length;
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public enum RmsFusMulticastAddressKindProtocol {
-
- ///
- [XmlEnum("1 SAP")]
- Item1SAP,
-
- ///
- [XmlEnum("2 DVBSTP")]
- Item2DVBSTP,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class PayloadListPayloadId {
-
- [XmlElement("Segment")]
- public PayloadListSegmentType[] Segment;
-
- [XmlAttribute]
- public string Id;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class DvbStpTransportMode : PayloadList {
-
- [XmlAttribute]
- public string Source;
-
- [XmlAttribute]
- public string Address;
-
- [XmlAttribute]
- public ushort Port;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class HttpTransportMode : PayloadList {
-
- [XmlAttribute(DataType="anyURI")]
- public string Location;
-
- [XmlAttribute]
- [DefaultValue("false")]
- public string SOAP;
-
- public HttpTransportMode() {
- this.SOAP = "false";
- }
- }
-
- ///
- /// SRM ID and SRM file version
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMIDVerUType
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class SRMIDVerUType : SRMIDType {
-
- [XmlAttribute]
- public string SRMFileVersion;
- }
-
- ///
- /// SRM ID and optional SRM file version
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMIDVerMType
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class SRMIDVerMType : SRMIDType {
-
- [XmlAttribute]
- public string SRMFileVersion;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class PackageTextualIdentifier : TextualIdentifier {
-
- [XmlAttribute(DataType="positiveInteger")]
- public string Priority;
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public enum ColorTypeType {
-
- ///
- color,
-
- ///
- blackAndWhite,
-
- ///
- blackAndWhiteAndColor,
-
- ///
- colorized,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
- public enum AspectRatioTypeType {
-
- ///
- original,
-
- ///
- publication,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public enum ScanType {
-
- ///
- interlaced,
-
- ///
- progressive,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public enum ExtendedLanguageTypeType {
-
- ///
- original,
-
- ///
- dubbed,
-
- ///
- background,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class AudioLanguageType : ExtendedLanguageType {
-
- [XmlAttribute]
- public string purpose;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class TermNameType : TextualType {
-
- [XmlAttribute]
- public bool preferred;
-
- ///
- [XmlIgnore]
- public bool preferredSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class AnnouncementSupportAnnouncement {
-
- [XmlElement("DVBTriplet", typeof(DvbTriplet))]
- [XmlElement("TextualIdentifier", typeof(TextualIdentifier))]
- public object Item;
-
- [XmlAttribute]
- public string Type;
-
- [XmlAttribute]
- public string ReferenceType;
-
- [XmlAttribute]
- public string ComponentTag;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class MosaicDescriptionLogicalCell {
-
- [XmlElement("ElementaryCell")]
- public MosaicDescriptionLogicalCellElementaryCell[] ElementaryCell;
-
- [XmlElement("AudioLink")]
- public MosaicDescriptionLogicalCellAudioLink[] AudioLink;
-
- [XmlElement("DVBTriplet", typeof(DvbTriplet))]
- [XmlElement("PackageId", typeof(MosaicDescriptionLogicalCellPackageId))]
- [XmlElement("TextualId", typeof(TextualIdentifier))]
- public object Item;
-
- [XmlAttribute]
- public ushort CellId;
-
- [XmlAttribute]
- public string PresentationInfo;
-
- [XmlAttribute]
- public string LinkageInfo;
-
- [XmlAttribute]
- public string EventId;
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public enum PrimaryServiceInformationSource {
-
- ///
- Stream,
-
- ///
- XML,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public enum TransportProtocolType {
-
- ///
- [XmlEnum("RTP-AVP")]
- RTPAVP,
-
- ///
- [XmlEnum("UDP-FEC")]
- UDPFEC,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public enum StreamingType {
-
- ///
- rtp,
-
- ///
- udp,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public enum Usage {
-
- ///
- FCC,
-
- ///
- PiP,
-
- ///
- Main,
-
- ///
- HD,
-
- ///
- SD,
-
- ///
- [XmlEnum("3D")]
- Item3D,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class CdsDownloadSessionDescriptionLocationDVBSTP {
-
- [XmlAttribute]
- public string Source;
-
- [XmlAttribute]
- public string Address;
-
- [XmlAttribute]
- public ushort Port;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class CdsDownloadSessionDescriptionLocationSAP {
-
- [XmlAttribute]
- public string Source;
-
- [XmlAttribute]
- public string Address;
-
- [XmlAttribute]
- public ushort Port;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class ProviderOfferingPull : PayloadList {
-
- [XmlAttribute(DataType="anyURI")]
- public string Location;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class FilteringAndSearchPreferencesType : DSType {
-
- [XmlElement("CreationPreferences")]
- public CreationPreferencesType[] CreationPreferences;
-
- [XmlElement("ClassificationPreferences")]
- public ClassificationPreferencesType[] ClassificationPreferences;
-
- [XmlElement("SourcePreferences")]
- public SourcePreferencesType[] SourcePreferences;
-
- [XmlElement("PreferenceCondition")]
- public PreferenceConditionType[] PreferenceCondition;
-
- [XmlElement("FilteringAndSearchPreferences")]
- public FilteringAndSearchPreferencesType[] FilteringAndSearchPreferences;
-
- [XmlAttribute]
- [DefaultValue(userChoiceType.@true)]
- public userChoiceType @protected;
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public FilteringAndSearchPreferencesType() {
- this.@protected = userChoiceType.@true;
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class BrowsingPreferencesType : DSType {
-
- [XmlElement("SummaryPreferences")]
- public SummaryPreferencesType[] SummaryPreferences;
-
- [XmlElement("PreferenceCondition")]
- public BrowsingPreferencesTypePreferenceCondition[] PreferenceCondition;
-
- [XmlAttribute]
- [DefaultValue(userChoiceType.@true)]
- public userChoiceType @protected;
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public BrowsingPreferencesType() {
- this.@protected = userChoiceType.@true;
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class UserActionHistoryType : DSType {
-
- [XmlElement("ObservationPeriod")]
- public TimeType[] ObservationPeriod;
-
- [XmlElement("UserActionList")]
- public UserActionListType[] UserActionList;
-
- [XmlAttribute]
- [DefaultValue(userChoiceType.@true)]
- public userChoiceType @protected;
-
- public UserActionHistoryType() {
- this.@protected = userChoiceType.@true;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class PersonType : AgentType {
-
- [XmlElement("Name", typeof(PersonNameType))]
- [XmlElement("NameTerm", typeof(ControlledTermUseType))]
- public object[] Items;
-
- [XmlElement("Affiliation")]
- public PersonTypeAffiliation[] Affiliation;
-
- [XmlElement("Citizenship")]
- public string[] Citizenship;
-
- [XmlElement("Address", typeof(PlaceType))]
- [XmlElement("AddressRef", typeof(ReferenceType))]
- public object Item;
-
- [XmlElement("ElectronicAddress")]
- public ElectronicAddressType[] ElectronicAddress;
-
- public TextualType PersonDescription;
-
- public string Nationality;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class PersonGroupType : AgentType {
-
- [XmlElement("Name")]
- public PersonGroupTypeName[] Name;
-
- [XmlElement("NameTerm")]
- public PersonGroupTypeNameTerm[] NameTerm;
-
- public TermUseType Kind;
-
- [XmlElement("Member", typeof(PersonType))]
- [XmlElement("MemberRef", typeof(ReferenceType))]
- public object[] Items;
-
- [XmlElement("Jurisdiction", typeof(PlaceType))]
- [XmlElement("JurisdictionRef", typeof(ReferenceType))]
- public object Item;
-
- [XmlElement("Address", typeof(PlaceType))]
- [XmlElement("AddressRef", typeof(ReferenceType))]
- public object Item1;
-
- public ElectronicAddressType ElectronicAddress;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class OrganizationType : AgentType {
-
- [XmlElement("Name")]
- public OrganizationTypeName[] Name;
-
- [XmlElement("NameTerm")]
- public OrganizationTypeNameTerm[] NameTerm;
-
- public TermUseType Kind;
-
- [XmlElement("Contact", typeof(AgentType))]
- [XmlElement("ContactRef", typeof(ReferenceType))]
- public object[] Items;
-
- [XmlElement("Jurisdiction", typeof(PlaceType))]
- [XmlElement("JurisdictionRef", typeof(ReferenceType))]
- public object Item;
-
- [XmlElement("Address", typeof(PlaceType))]
- [XmlElement("AddressRef", typeof(ReferenceType))]
- public object Item1;
-
- public ElectronicAddressType ElectronicAddress;
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public enum ElectronicAddressTypeTelephoneType {
-
- ///
- central,
-
- ///
- secondary,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class ExplanationType : TextualType {
-
- [XmlAttribute]
- public ExplanationLengthType length;
-
- ///
- [XmlIgnore]
- public bool lengthSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(CSAliasType))]
- public partial class ClassificationSchemeAliasType : HeaderType {
-
- [XmlAttribute(DataType="NMTOKEN")]
- public string alias;
-
- [XmlAttribute(DataType="anyURI")]
- public string href;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class PreferenceConditionType : DType {
-
- public PlaceType Place;
-
- [XmlElement("Time")]
- public PreferenceConditionTypeTime[] Time;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class MediaFormatType : DType {
-
- public ControlledTermUseType Content;
-
- public ControlledTermUseType Medium;
-
- public ControlledTermUseType FileFormat;
-
- [XmlElement(DataType="nonNegativeInteger")]
- public string FileSize;
-
- public ControlledTermUseType System;
-
- public MediaFormatTypeBitRate BitRate;
-
- public MediaFormatTypeVisualCoding VisualCoding;
-
- public MediaFormatTypeAudioCoding AudioCoding;
-
- public ControlledTermUseType SceneCodingFormat;
-
- public ControlledTermUseType GraphicsCodingFormat;
-
- public ControlledTermUseType OtherCodingFormat;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(TypeName="UserActionListType", Namespace="urn:tva:mpeg7:2008")]
- public partial class UserActionListType1 : DSType {
-
- public TermUseType ActionType;
-
- [XmlElement("UserAction")]
- public UserActionType[] UserAction;
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string numOfInstances;
-
- [XmlAttribute]
- public string totalDuration;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(TypeName="UserActionHistoryType", Namespace="urn:tva:mpeg7:2008")]
- public partial class UserActionHistoryType1 : DSType {
-
- [XmlElement("ObservationPeriod")]
- public TimeType[] ObservationPeriod;
-
- [XmlElement("UserActionList")]
- public UserActionListType1[] UserActionList;
-
- [XmlAttribute]
- [DefaultValue(userChoiceType.@true)]
- public userChoiceType @protected;
-
- public UserActionHistoryType1() {
- this.@protected = userChoiceType.@true;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(TypeName="UsageHistoryType", Namespace="urn:tva:mpeg7:2008")]
- public partial class UsageHistoryType1 : DSType {
-
- public UserIdentifierType UserIdentifier;
-
- [XmlElement("UserActionHistory")]
- public UserActionHistoryType1[] UserActionHistory;
-
- [XmlAttribute]
- [DefaultValue(userChoiceType.@false)]
- public userChoiceType allowCollection;
-
- public UsageHistoryType1() {
- this.allowCollection = userChoiceType.@false;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class SourcePreferencesType : DSType {
-
- [XmlElement("DisseminationFormat")]
- public SourcePreferencesTypeDisseminationFormat[] DisseminationFormat;
-
- [XmlElement("DisseminationSource")]
- public SourcePreferencesTypeDisseminationSource[] DisseminationSource;
-
- [XmlElement("DisseminationLocation")]
- public SourcePreferencesTypeDisseminationLocation[] DisseminationLocation;
-
- [XmlElement("DisseminationDate")]
- public SourcePreferencesTypeDisseminationDate[] DisseminationDate;
-
- [XmlElement("Disseminator")]
- public SourcePreferencesTypeDisseminator[] Disseminator;
-
- [XmlElement("MediaFormat")]
- public SourcePreferencesTypeMediaFormat[] MediaFormat;
-
- [XmlAttribute]
- public bool noRepeat;
-
- ///
- [XmlIgnore]
- public bool noRepeatSpecified;
-
- [XmlAttribute]
- public bool noEncryption;
-
- ///
- [XmlIgnore]
- public bool noEncryptionSpecified;
-
- [XmlAttribute]
- public bool noPayPerUse;
-
- ///
- [XmlIgnore]
- public bool noPayPerUseSpecified;
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public SourcePreferencesType() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class CreationPreferencesType : DSType {
-
- [XmlElement("Title")]
- public CreationPreferencesTypeTitle[] Title;
-
- [XmlElement("Creator")]
- public CreationPreferencesTypeCreator[] Creator;
-
- [XmlElement("Keyword")]
- public CreationPreferencesTypeKeyword[] Keyword;
-
- [XmlElement("Location")]
- public CreationPreferencesTypeLocation[] Location;
-
- [XmlElement("DatePeriod")]
- public CreationPreferencesTypeDatePeriod[] DatePeriod;
-
- [XmlElement("Tool")]
- public CreationPreferencesTypeTool[] Tool;
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public CreationPreferencesType() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class ClassificationPreferencesType : DSType {
-
- [XmlElement("Country")]
- public ClassificationPreferencesTypeCountry[] Country;
-
- [XmlElement("DatePeriod")]
- public ClassificationPreferencesTypeDatePeriod[] DatePeriod;
-
- [XmlElement("LanguageFormat")]
- public ClassificationPreferencesTypeLanguageFormat[] LanguageFormat;
-
- [XmlElement("Language")]
- public ClassificationPreferencesTypeLanguage[] Language;
-
- [XmlElement("CaptionLanguage")]
- public ClassificationPreferencesTypeCaptionLanguage[] CaptionLanguage;
-
- [XmlElement("Form")]
- public ClassificationPreferencesTypeForm[] Form;
-
- [XmlElement("Genre")]
- public ClassificationPreferencesTypeGenre[] Genre;
-
- [XmlElement("Subject")]
- public ClassificationPreferencesTypeSubject[] Subject;
-
- [XmlElement("Review")]
- public ClassificationPreferencesTypeReview[] Review;
-
- [XmlElement("ParentalGuidance")]
- public ClassificationPreferencesTypeParentalGuidance[] ParentalGuidance;
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public ClassificationPreferencesType() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class SummaryPreferencesType : DSType {
-
- [XmlElement("SummaryType")]
- public SummaryPreferencesTypeSummaryType[] SummaryType;
-
- [XmlElement("SummaryTheme")]
- public SummaryPreferencesTypeSummaryTheme[] SummaryTheme;
-
- public string SummaryDuration;
-
- public string MinSummaryDuration;
-
- public string MaxSummaryDuration;
-
- [XmlElement(DataType="positiveInteger")]
- public string NumOfKeyFrames;
-
- [XmlElement(DataType="positiveInteger")]
- public string MinNumOfKeyFrames;
-
- [XmlElement(DataType="positiveInteger")]
- public string MaxNumOfKeyFrames;
-
- [XmlElement(DataType="positiveInteger")]
- public string NumOfChars;
-
- [XmlElement(DataType="positiveInteger")]
- public string MinNumOfChars;
-
- [XmlElement(DataType="positiveInteger")]
- public string MaxNumOfChars;
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public SummaryPreferencesType() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(TVAPlaceType))]
- public partial class PlaceType : DSType {
-
- [XmlElement("Name")]
- public TextualType[] Name;
-
- [XmlElement("NameTerm")]
- public ControlledTermUseType[] NameTerm;
-
- public TermUseType Role;
-
- public PlaceTypeGeographicPosition GeographicPosition;
-
- [XmlElement("Region")]
- public string[] Region;
-
- [XmlElement("AdministrativeUnit")]
- public PlaceTypeAdministrativeUnit[] AdministrativeUnit;
-
- public PlaceTypePostalAddress PostalAddress;
-
- public string InternalCoordinates;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(TermDefinitionType))]
- public abstract partial class TermDefinitionBaseType : DSType {
-
- [XmlElement("Name")]
- public TermDefinitionBaseTypeName[] Name;
-
- [XmlElement("Definition")]
- public TextualType[] Definition;
-
- [XmlAttribute(DataType="NMTOKEN")]
- public string termID;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(ClassificationSchemeType))]
- [XmlInclude(typeof(TVAClassificationSchemeType))]
- public abstract partial class ClassificationSchemeBaseType : DSType {
-
- [XmlElement("Import")]
- public ReferenceType[] Import;
-
- [XmlAttribute(DataType="anyURI")]
- public string uri;
-
- [XmlAttribute(DataType="token")]
- public string[] domain;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- [XmlInclude(typeof(TVATermDefinitionType))]
- public abstract partial class TVATermDefinitionBaseType : DSType {
-
- [XmlElement("Name")]
- public TVATermDefinitionBaseTypeName[] Name;
-
- [XmlElement("Definition")]
- public TextualType[] Definition;
-
- [XmlElement("EquivalentCSTerm", typeof(TVATermDefinitionBaseTypeEquivalentCSTerm))]
- [XmlElement("mappingTerm", typeof(MappingTermType))]
- public object[] Items;
-
- [XmlAttribute(DataType="NMTOKEN")]
- public string termID;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- [XmlInclude(typeof(UserActionType1))]
- public partial class UserActionType : DSType {
-
- public UserActionTypeActionTime ActionTime;
-
- public UniqueIDType ProgramIdentifier;
-
- [XmlElement("ActionDataItem")]
- public ReferenceType[] ActionDataItem;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class UserActionListType : DSType {
-
- public TermUseType ActionType;
-
- [XmlElement("UserAction")]
- public UserActionType1[] UserAction;
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string numOfInstances;
-
- [XmlAttribute]
- public string totalDuration;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class TVATermDefinitionType : TVATermDefinitionBaseType {
-
- [XmlElement("Term")]
- public TVATermDefinitionTypeTerm[] Term;
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public enum DeliveryModeType {
-
- ///
- streaming,
-
- ///
- download,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
- public enum SegmentGroupTypeTypeValue {
-
- ///
- highlights,
-
- ///
- [XmlEnum("highlights/objects")]
- highlightsobjects,
-
- ///
- [XmlEnum("highlights/events")]
- highlightsevents,
-
- ///
- bookmarks,
-
- ///
- [XmlEnum("bookmarks/objects")]
- bookmarksobjects,
-
- ///
- [XmlEnum("bookmarks/events")]
- bookmarksevents,
-
- ///
- themeGroup,
-
- ///
- preview,
-
- ///
- [XmlEnum("preview/title")]
- previewtitle,
-
- ///
- [XmlEnum("preview/slideshow")]
- previewslideshow,
-
- ///
- tableOfContents,
-
- ///
- synopsis,
-
- ///
- shots,
-
- ///
- insertionPoints,
-
- ///
- alternativeGroups,
-
- ///
- alternativeSegments,
-
- ///
- other,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public enum SynopsisLengthType {
-
- ///
- @short,
-
- ///
- medium,
-
- ///
- @long,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
- public enum GenreTypeType {
-
- ///
- main,
-
- ///
- secondary,
-
- ///
- other,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
- public enum KeywordTypeType {
-
- ///
- main,
-
- ///
- secondary,
-
- ///
- other,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public enum serviceInformationNameLengthType {
-
- ///
- @short,
-
- ///
- medium,
-
- ///
- @long,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public partial class MemberOfType : BaseMemberOfType {
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public enum RatingTypeRatingSchemeStyle {
-
- ///
- higherBetter,
-
- ///
- lowerBetter,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
- public enum ProgramGroupTypeTypeValue {
-
- ///
- series,
-
- ///
- show,
-
- ///
- programConcept,
-
- ///
- programCompilation,
-
- ///
- otherCollection,
-
- ///
- otherChoice,
-
- ///
- [XmlEnum("mini-series")]
- miniseries,
-
- ///
- brand,
-
- ///
- automaticAcquisitionThemed,
-
- ///
- automaticAcquisitionNonThemed,
-
- ///
- clip,
-
- ///
- application,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
- public enum DerivationReasonTypeValue {
-
- ///
- violence,
-
- ///
- language,
-
- ///
- sex,
-
- ///
- duration,
-
- ///
- other,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class TemporalSegmentLocatorTypeBytePosition {
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string offset;
-
- [XmlAttribute(DataType="positiveInteger")]
- public string length;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class ImageLocatorTypeBytePosition {
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string offset;
-
- [XmlAttribute(DataType="positiveInteger")]
- public string length;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class MosaicDescriptionLogicalCellElementaryCell {
-
- [XmlAttribute]
- public ushort CellId;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class MosaicDescriptionLogicalCellAudioLink {
-
- [XmlAttribute]
- public string Language;
-
- [XmlAttribute]
- public string ComponentTag;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- public partial class MosaicDescriptionLogicalCellPackageId {
-
- [XmlAttribute]
- public string Domain;
-
- [XmlText]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class BrowsingPreferencesTypePreferenceCondition : PreferenceConditionType {
-
- public TermUseType Genre;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class PersonTypeAffiliation {
-
- [XmlElement("Organization", typeof(OrganizationType))]
- [XmlElement("OrganizationRef", typeof(ReferenceType))]
- [XmlElement("PersonGroup", typeof(PersonGroupType))]
- [XmlElement("PersonGroupRef", typeof(ReferenceType))]
- [XmlChoiceIdentifier("ItemElementName")]
- public object Item;
-
- [XmlIgnore]
- public ItemChoiceType3 ItemElementName;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class PersonGroupTypeName : TextualType {
-
- [XmlAttribute]
- public PersonGroupTypeNameType type;
-
- ///
- [XmlIgnore]
- public bool typeSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class PersonGroupTypeNameTerm : ControlledTermUseType {
-
- [XmlAttribute]
- public PersonGroupTypeNameTermType type;
-
- ///
- [XmlIgnore]
- public bool typeSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class OrganizationTypeName : TextualType {
-
- [XmlAttribute]
- public OrganizationTypeNameType type;
-
- ///
- [XmlIgnore]
- public bool typeSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class OrganizationTypeNameTerm : ControlledTermUseType {
-
- [XmlAttribute]
- public OrganizationTypeNameTermType type;
-
- ///
- [XmlIgnore]
- public bool typeSpecified;
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:metadata:2011")]
- public enum ExplanationLengthType {
-
- ///
- @short,
-
- ///
- medium,
-
- ///
- @long,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class PreferenceConditionTypeTime : TimeType {
-
- [XmlAttribute]
- [DefaultValue("none")]
- public string recurrence;
-
- [XmlAttribute(DataType="positiveInteger")]
- public string numOfRecurrences;
-
- public PreferenceConditionTypeTime() {
- this.recurrence = "none";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class MediaFormatTypeBitRate {
-
- [XmlAttribute]
- [DefaultValue(false)]
- public bool variable;
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string minimum;
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string average;
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string maximum;
-
- [XmlText(DataType="nonNegativeInteger")]
- public string Value;
-
- public MediaFormatTypeBitRate() {
- this.variable = false;
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class MediaFormatTypeVisualCoding {
-
- public MediaFormatTypeVisualCodingFormat Format;
-
- public MediaFormatTypeVisualCodingPixel Pixel;
-
- public MediaFormatTypeVisualCodingFrame Frame;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class MediaFormatTypeAudioCoding {
-
- public ControlledTermUseType Format;
-
- public MediaFormatTypeAudioCodingAudioChannels AudioChannels;
-
- public MediaFormatTypeAudioCodingSample Sample;
-
- public string Emphasis;
-
- public ControlledTermUseType Presentation;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class SourcePreferencesTypeDisseminationFormat : TermUseType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public SourcePreferencesTypeDisseminationFormat() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class SourcePreferencesTypeDisseminationSource : TextualType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public SourcePreferencesTypeDisseminationSource() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class SourcePreferencesTypeDisseminationLocation : PlaceType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public SourcePreferencesTypeDisseminationLocation() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class SourcePreferencesTypeDisseminationDate : TimeType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public SourcePreferencesTypeDisseminationDate() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class SourcePreferencesTypeDisseminator : MediaAgentType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public SourcePreferencesTypeDisseminator() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class SourcePreferencesTypeMediaFormat : MediaFormatType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public SourcePreferencesTypeMediaFormat() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class CreationPreferencesTypeTitle : TitleType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public CreationPreferencesTypeTitle() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class CreationPreferencesTypeCreator : CreatorType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public CreationPreferencesTypeCreator() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class CreationPreferencesTypeKeyword : TextualType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public CreationPreferencesTypeKeyword() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class CreationPreferencesTypeLocation : PlaceType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public CreationPreferencesTypeLocation() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class CreationPreferencesTypeDatePeriod : TimeType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public CreationPreferencesTypeDatePeriod() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class CreationPreferencesTypeTool : TermUseType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public CreationPreferencesTypeTool() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class ClassificationPreferencesTypeCountry {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- [XmlText]
- public string Value;
-
- public ClassificationPreferencesTypeCountry() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class ClassificationPreferencesTypeDatePeriod : TimeType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public ClassificationPreferencesTypeDatePeriod() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class ClassificationPreferencesTypeLanguageFormat {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- [XmlText]
- public string Value;
-
- public ClassificationPreferencesTypeLanguageFormat() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class ClassificationPreferencesTypeLanguage : ExtendedLanguageType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public ClassificationPreferencesTypeLanguage() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class ClassificationPreferencesTypeCaptionLanguage {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- [XmlText(DataType="language")]
- public string Value;
-
- public ClassificationPreferencesTypeCaptionLanguage() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class ClassificationPreferencesTypeForm : TermUseType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public ClassificationPreferencesTypeForm() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class ClassificationPreferencesTypeGenre : TermUseType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public ClassificationPreferencesTypeGenre() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class ClassificationPreferencesTypeSubject : TextualType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public ClassificationPreferencesTypeSubject() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class ClassificationPreferencesTypeReview {
-
- public RatingType Rating;
-
- public AgentType Reviewer;
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public ClassificationPreferencesTypeReview() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class ClassificationPreferencesTypeParentalGuidance : ParentalGuidanceType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public ClassificationPreferencesTypeParentalGuidance() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class SummaryPreferencesTypeSummaryType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- [XmlText]
- public string Value;
-
- public SummaryPreferencesTypeSummaryType() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class SummaryPreferencesTypeSummaryTheme : TextualType {
-
- [XmlAttribute(DataType="integer")]
- [DefaultValue("10")]
- public string preferenceValue;
-
- public SummaryPreferencesTypeSummaryTheme() {
- this.preferenceValue = "10";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class PlaceTypeGeographicPosition {
-
- public GeographicPointType Point;
-
- [XmlAttribute]
- public string datum;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class PlaceTypeAdministrativeUnit {
-
- [XmlAttribute]
- public string type;
-
- [XmlText]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class PlaceTypePostalAddress {
-
- [XmlElement("AddressLine")]
- public TextualType[] AddressLine;
-
- public TextualType PostingIdentifier;
-
- [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
- public string lang;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class TermDefinitionBaseTypeName : TextualType {
-
- [XmlAttribute]
- public bool preferred;
-
- ///
- [XmlIgnore]
- public bool preferredSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class TermDefinitionType : TermDefinitionBaseType {
-
- [XmlElement("Term")]
- public TermDefinitionTypeTerm[] Term;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(Namespace="urn:tva:mpeg7:2008")]
- public partial class ClassificationSchemeType : ClassificationSchemeBaseType {
-
- [XmlElement("Term")]
- public TermDefinitionType[] Term;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
- public partial class TVATermDefinitionBaseTypeName : TextualType {
-
- [XmlAttribute]
- public bool preferred;
-
- ///
- [XmlIgnore]
- public bool preferredSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
- public partial class TVATermDefinitionBaseTypeEquivalentCSTerm {
-
- [XmlAttribute]
- public string href;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class UserActionTypeActionTime {
-
- public MediaTimeType MediaTime;
-
- public TimeType GeneralTime;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(TypeName="UserActionType", Namespace="urn:tva:metadata:2011")]
- public partial class UserActionType1 : UserActionType {
-
- [XmlElement(DataType="anyURI")]
- public string ProgramLocation;
-
- public RatingType Rating;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
- public partial class TVATermDefinitionTypeTerm : TVATermDefinitionType {
-
- [XmlAttribute]
- [DefaultValue("NT")]
- public string relation;
-
- public TVATermDefinitionTypeTerm() {
- this.relation = "NT";
- }
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(Namespace="urn:tva:mpeg7:2008", IncludeInSchema=false)]
- public enum ItemChoiceType3 {
-
- ///
- Organization,
-
- ///
- OrganizationRef,
-
- ///
- PersonGroup,
-
- ///
- PersonGroupRef,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public enum PersonGroupTypeNameType {
-
- ///
- former,
-
- ///
- variant,
-
- ///
- main,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public enum PersonGroupTypeNameTermType {
-
- ///
- former,
-
- ///
- variant,
-
- ///
- main,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public enum OrganizationTypeNameType {
-
- ///
- former,
-
- ///
- variant,
-
- ///
- main,
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public enum OrganizationTypeNameTermType {
-
- ///
- former,
-
- ///
- variant,
-
- ///
- main,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class MediaFormatTypeVisualCodingFormat : ControlledTermUseType {
-
- [XmlAttribute]
- [DefaultValue("color")]
- public string colorDomain;
-
- public MediaFormatTypeVisualCodingFormat() {
- this.colorDomain = "color";
- }
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class MediaFormatTypeVisualCodingPixel {
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string resolution;
-
- [XmlAttribute]
- public double aspectRatio;
-
- ///
- [XmlIgnore]
- public bool aspectRatioSpecified;
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string bitsPer;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class MediaFormatTypeVisualCodingFrame {
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string height;
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string width;
-
- [XmlAttribute]
- public double aspectRatio;
-
- ///
- [XmlIgnore]
- public bool aspectRatioSpecified;
-
- [XmlAttribute]
- public double rate;
-
- ///
- [XmlIgnore]
- public bool rateSpecified;
-
- [XmlAttribute]
- public MediaFormatTypeVisualCodingFrameStructure structure;
-
- ///
- [XmlIgnore]
- public bool structureSpecified;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class MediaFormatTypeAudioCodingAudioChannels {
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string front;
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string side;
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string rear;
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string lfe;
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string track;
-
- [XmlText(DataType="nonNegativeInteger")]
- public string Value;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class MediaFormatTypeAudioCodingSample {
-
- [XmlAttribute]
- public double rate;
-
- ///
- [XmlIgnore]
- public bool rateSpecified;
-
- [XmlAttribute(DataType="nonNegativeInteger")]
- public string bitsPer;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public partial class TermDefinitionTypeTerm : TermDefinitionType {
-
- [XmlAttribute]
- [DefaultValue("NT")]
- public string relation;
-
- public TermDefinitionTypeTerm() {
- this.relation = "NT";
- }
- }
-
- ///
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
- public enum MediaFormatTypeVisualCodingFrameStructure {
-
- ///
- progressive,
-
- ///
- interlaced,
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- [XmlRoot(Namespace="urn:dvb:metadata:iptv:sdns:2012-1", IsNullable=false)]
- public partial class CoDAnnounceDescribe {
-
- public BasicContentDescriptionType ContentDescription;
-
- public FecInfo FECInfo;
-
- public RETInfoType RETInfo;
-
- public ServerBasedEnhancementServiceInfoType ServerBasedEnhancementServiceInfo;
-
- [XmlAttribute(DataType="anyURI")]
- public string RTSPControlURL;
-
- [XmlAttribute]
- public StreamingType Streaming;
-
- ///
- [XmlIgnore]
- public bool StreamingSpecified;
- }
-
- ///
- /// [en] Provides a list of SRM Download Services
- ///
- /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMDownloadRecord
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
- [XmlRoot(Namespace="urn:dvb:metadata:iptv:sdns:2012-1", IsNullable=false)]
- public partial class SRMDownloadRecord : OfferingBase {
-
- [XmlElement("SRMDownloadService")]
- public SRMDownloadServiceType[] SRMDownloadService;
- }
-
- [GeneratedCode("myxsdtool", "0.0.0.0")]
- [Serializable]
- [DebuggerStepThrough]
- [DesignerCategory("code")]
- [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
- [XmlRoot(Namespace="urn:tva:metadata:2011", IsNullable=false)]
- public partial class TVAContentLinks {
-
- [XmlElement("RelatedMaterial")]
- public RelatedMaterialType[] RelatedMaterial;
- }
-}
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+//
+// This source code was auto-generated by myxsdtool, Version=0.0.0.0.
+// Sun, 12 Oct 2014 02:56:35 GMT
+//
+
+namespace v010501r3 {
+ using System.Xml.Serialization;
+ using System;
+ using System.Diagnostics;
+ using System.ComponentModel;
+
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ [XmlRoot(Namespace="urn:dvb:metadata:iptv:sdns:2012-1", IsNullable=false)]
+ public partial class ServiceDiscovery {
+
+ [XmlElement("BCGDiscovery", typeof(BroadcastContentGuideOffering))]
+ [XmlElement("BroadcastDiscovery", typeof(BroadcastOffering))]
+ [XmlElement("CoDDiscovery", typeof(CoDOffering))]
+ [XmlElement("PackageDiscovery", typeof(PackagedServices))]
+ [XmlElement("RMSFUSDiscovery", typeof(RmsFusDiscovery))]
+ [XmlElement("RegionalizationDiscovery", typeof(RegionalizationOffering))]
+ [XmlElement("SRMDiscovery", typeof(SRMOffering))]
+ [XmlElement("ServiceProviderDiscovery", typeof(ServiceProviderDiscovery))]
+ [XmlElement("ServicesFromOtherSP", typeof(ReferencedServices))]
+ public object[] Items;
+
+ [XmlAttribute]
+ public string Version;
+ }
+
+ ///
+ /// [en] Provides information on Broadband Content Guide Offerings
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:BroadcastContentGuideOffering
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class BroadcastContentGuideOffering : OfferingBase {
+
+ [XmlElement("BCG")]
+ public BroadcastContentGuideOfferingBCG[] BCG;
+ }
+
+ ///
+ /// [en] Provides a list of TS or services discovery information
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:BroadcastOffering
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class BroadcastOffering : OfferingBase {
+
+ [XmlElement("ServiceList")]
+ public IPServiceList[] ServiceList;
+ }
+
+ ///
+ /// [en] Provides information on Content on Demand Offerings. Note that use of this is now deprecated and BCGOffering should be used instead
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:CoDOffering
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class CoDOffering : OfferingBase {
+
+ [XmlElement("Catalogue")]
+ public CoDOfferingCatalogue[] Catalogue;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class PackagedServices : OfferingBase {
+
+ [XmlElement("Package")]
+ public Package[] Package;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class RmsFusDiscovery : OfferingBase {
+
+ [XmlElement("FUSProvider", typeof(FirmwareUpdateProvider))]
+ [XmlElement("RMSProvider", typeof(RemoteManagementProvider))]
+ public object[] Items;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class RegionalizationOffering : OfferingBase {
+
+ [XmlElement("Cell")]
+ public RegionalizationCell[] Cell;
+ }
+
+ ///
+ /// [en] Provides a list of SRM Announcement and Download Services
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMOffering
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class SRMOffering : OfferingBase {
+
+ [XmlElement("SRMAnnouncementService")]
+ public SRMAnnouncementServiceType[] SRMAnnouncementService;
+
+ [XmlElement("SRMDownloadService")]
+ public SRMDownloadServiceType[] SRMDownloadService;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class ServiceProviderDiscovery {
+
+ [XmlElement("ServiceProvider")]
+ public ServiceProvider[] ServiceProvider;
+
+ [XmlAttribute]
+ public string Version;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class ReferencedServices : OfferingBase {
+
+ [XmlElement("ReferencedServiceProvider")]
+ public ReferencedServiceProviderType[] ReferencedServiceProvider;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class BroadcastContentGuideOfferingBCG {
+
+ [XmlElement("Name")]
+ public MultilingualText[] Name;
+
+ [XmlElement("Description")]
+ public MultilingualText[] Description;
+
+ [XmlArrayItem("DVBSTP", typeof(DvbStpTransportMode), IsNullable=false)]
+ [XmlArrayItem("HTTP", typeof(HttpTransportMode), IsNullable=false)]
+ public PayloadList[] TransportMode;
+
+ [XmlElement(DataType="anyURI")]
+ public string Logo;
+
+ public ControlledTermType Type;
+
+ [XmlElement("TargetProvider")]
+ public string[] TargetProvider;
+
+ [XmlElement("BCGProviderName")]
+ public MultilingualText[] BCGProviderName;
+
+ [XmlArrayItem("DVBSTP", typeof(CdsDownloadSessionDescriptionLocationDVBSTP), IsNullable=false)]
+ [XmlArrayItem("SAP", typeof(CdsDownloadSessionDescriptionLocationSAP), IsNullable=false)]
+ public object[] CDSDownloadSessionDescriptionLocation;
+
+ [XmlAttribute]
+ public string Id;
+
+ [XmlAttribute]
+ public string Version;
+ }
+
+ ///
+ /// [en] Base class from which all offerings should be derived
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:OfferingBase
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ [XmlInclude(typeof(RmsFusDiscovery))]
+ [XmlInclude(typeof(RegionalizationOffering))]
+ [XmlInclude(typeof(BroadcastContentGuideOffering))]
+ [XmlInclude(typeof(CoDOffering))]
+ [XmlInclude(typeof(SRMOffering))]
+ [XmlInclude(typeof(ReferencedServices))]
+ [XmlInclude(typeof(PackagedServices))]
+ [XmlInclude(typeof(BroadcastOffering))]
+ public partial class OfferingBase {
+
+ [XmlAttribute]
+ public string DomainName;
+
+ [XmlAttribute]
+ public string Version;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class IPServiceList {
+
+ [XmlElement("ServicesDescriptionLocation")]
+ public DescriptionLocationBCG[] ServicesDescriptionLocation;
+
+ [XmlElement("SingleService")]
+ public IPService[] SingleService;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class CoDOfferingCatalogue {
+
+ [XmlElement("Name")]
+ public MultilingualText[] Name;
+
+ [XmlElement("Description")]
+ public MultilingualText[] Description;
+
+ [XmlElement("Locator", DataType="anyURI")]
+ public string[] Locator;
+
+ [XmlAttribute]
+ public string Id;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class Package {
+
+ [XmlElement("PackageName")]
+ public MultilingualText[] PackageName;
+
+ [XmlElement("CountryAvailability")]
+ public CountryAvailability[] CountryAvailability;
+
+ [XmlElement("PackageDescription")]
+ public DescriptionLocationBCG[] PackageDescription;
+
+ [XmlElement("Service")]
+ public PackagedServiceType[] Service;
+
+ [XmlElement("PackageReference")]
+ public PackagePackageReference[] PackageReference;
+
+ [XmlElement("PackageAvailability")]
+ public ServiceAvailability[] PackageAvailability;
+
+ [XmlAttribute]
+ public string Id;
+
+ [XmlAttribute]
+ [DefaultValue(true)]
+ public bool Visible;
+
+ public Package() {
+ this.Visible = true;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class FirmwareUpdateProvider {
+
+ [XmlElement("FUSName")]
+ public MultilingualText[] FUSName;
+
+ public decimal FUSID;
+
+ [XmlElement("Description")]
+ public MultilingualText[] Description;
+
+ [XmlElement("FUSAnnouncement")]
+ public FirmwareUpdateAnnouncement[] FUSAnnouncement;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string LogoURI;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class RemoteManagementProvider {
+
+ [XmlElement("RMSName")]
+ public MultilingualText[] RMSName;
+
+ public decimal RMSID;
+
+ ///
+ [XmlIgnore]
+ public bool RMSIDSpecified;
+
+ [XmlElement("Description")]
+ public MultilingualText[] Description;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string LogoURI;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string RMSLocation;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class RegionalizationCell {
+
+ public string CountryCode;
+
+ [XmlElement("CA")]
+ public CivicAddress[] CA;
+
+ [XmlAttribute]
+ public string Id;
+ }
+
+ ///
+ /// [en] SRM Announcement Service information
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMAnnouncementServiceType
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class SRMAnnouncementServiceType {
+
+ [XmlElement("SRMID")]
+ public SRMIDType[] SRMID;
+
+ public SRMAnnouncementModeType SRMAnnouncementMode;
+
+ [XmlAttribute]
+ public string AnnouncementServiceVersion;
+ }
+
+ ///
+ /// [en] FLUTE or HTTP download of SRM files
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMDownloadServiceType
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class SRMDownloadServiceType {
+
+ [XmlElement("FLUTE", typeof(SRMDownloadServiceFLUTEType))]
+ [XmlElement("HTTP", typeof(SRMDownloadServiceHTTPType))]
+ public object Item;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class ServiceProvider {
+
+ [XmlElement("Name")]
+ public MultilingualText[] Name;
+
+ [XmlElement("Description")]
+ public MultilingualText[] Description;
+
+ [XmlArrayItem("Pull", typeof(ProviderOfferingPull), IsNullable=false)]
+ [XmlArrayItem("Push", typeof(DvbStpTransportMode), IsNullable=false)]
+ public PayloadList[] Offering;
+
+ [XmlAttribute]
+ public string DomainName;
+
+ [XmlAttribute]
+ public string Version;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string LogoURI;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class ReferencedServiceProviderType {
+
+ [XmlElement("Service")]
+ public ReferencedServiceProviderTypeService[] Service;
+
+ [XmlAttribute]
+ public string Domain;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class UserDescriptionType {
+
+ public UserPreferencesType UserPreferences;
+
+ public UsageHistoryType UsageHistory;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ProgramDescriptionType {
+
+ public ProgramInformationTableType ProgramInformationTable;
+
+ public GroupInformationTableType GroupInformationTable;
+
+ public ProgramLocationTableType ProgramLocationTable;
+
+ public ServiceInformationTableType ServiceInformationTable;
+
+ public CreditsInformationTableType CreditsInformationTable;
+
+ public ProgramReviewTableType ProgramReviewTable;
+
+ public SegmentInformationTableType SegmentInformationTable;
+
+ public PurchaseInformationTableType PurchaseInformationTable;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(CreatorType))]
+ public partial class MediaAgentType {
+
+ public ControlledTermUseType Role;
+
+ [XmlElement("Agent", typeof(AgentType))]
+ [XmlElement("AgentRef", typeof(ReferenceType))]
+ public object Item;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class ElectronicAddressType {
+
+ [XmlElement("Telephone")]
+ public ElectronicAddressTypeTelephone[] Telephone;
+
+ [XmlElement("Fax")]
+ public string[] Fax;
+
+ [XmlElement("Email")]
+ public string[] Email;
+
+ [XmlElement("Url", DataType="anyURI")]
+ public string[] Url;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class GeographicPointType {
+
+ [XmlAttribute]
+ public double longitude;
+
+ [XmlAttribute]
+ public double latitude;
+
+ [XmlAttribute]
+ public double altitude;
+
+ ///
+ [XmlIgnore]
+ public bool altitudeSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class MappingTermType {
+
+ public TextualType ClassificationSchemeAcronym;
+
+ public TextualType ClassificationSchemeName;
+
+ [XmlElement(DataType="anyURI")]
+ public string ClassificationSchemeURL;
+
+ [XmlElement("OriginalTermName")]
+ public TextualType[] OriginalTermName;
+
+ [XmlElement("OriginalTermDefinition")]
+ public TextualType[] OriginalTermDefinition;
+
+ [XmlElement(DataType="date")]
+ public System.DateTime MappingDate;
+
+ ///
+ [XmlIgnore]
+ public bool MappingDateSpecified;
+
+ [XmlAttribute]
+ public string originalTermID;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class ReferenceType {
+
+ [XmlAttribute(DataType="IDREF")]
+ public string idref;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string href;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class IncrDurationType {
+
+ [XmlAttribute]
+ public string timeUnit;
+
+ [XmlText(DataType="integer")]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class RelIncrTimePointType {
+
+ [XmlAttribute]
+ public string timeUnit;
+
+ [XmlAttribute(DataType="token")]
+ public string timeBase;
+
+ [XmlText(DataType="integer")]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class RelTimePointType {
+
+ [XmlAttribute(DataType="token")]
+ public string timeBase;
+
+ [XmlText]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class TimeType {
+
+ [XmlElement("RelIncrTimePoint", typeof(RelIncrTimePointType))]
+ [XmlElement("RelTimePoint", typeof(RelTimePointType))]
+ [XmlElement("TimePoint", typeof(string))]
+ public object Item;
+
+ [XmlElement("Duration", typeof(string))]
+ [XmlElement("IncrDuration", typeof(IncrDurationType))]
+ public object Item1;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(HeaderType))]
+ [XmlInclude(typeof(ClassificationSchemeAliasType))]
+ [XmlInclude(typeof(CSAliasType))]
+ [XmlInclude(typeof(DType))]
+ [XmlInclude(typeof(PreferenceConditionType))]
+ [XmlInclude(typeof(MediaFormatType))]
+ [XmlInclude(typeof(DSType))]
+ [XmlInclude(typeof(UserPreferencesType))]
+ [XmlInclude(typeof(UserActionListType1))]
+ [XmlInclude(typeof(UserActionHistoryType1))]
+ [XmlInclude(typeof(UsageHistoryType1))]
+ [XmlInclude(typeof(SourcePreferencesType))]
+ [XmlInclude(typeof(FilteringAndSearchPreferencesType))]
+ [XmlInclude(typeof(CreationPreferencesType))]
+ [XmlInclude(typeof(ClassificationPreferencesType))]
+ [XmlInclude(typeof(SummaryPreferencesType))]
+ [XmlInclude(typeof(BrowsingPreferencesType))]
+ [XmlInclude(typeof(AgentType))]
+ [XmlInclude(typeof(PersonType))]
+ [XmlInclude(typeof(PersonGroupType))]
+ [XmlInclude(typeof(OrganizationType))]
+ [XmlInclude(typeof(PlaceType))]
+ [XmlInclude(typeof(TVAPlaceType))]
+ [XmlInclude(typeof(TermDefinitionBaseType))]
+ [XmlInclude(typeof(TermDefinitionType))]
+ [XmlInclude(typeof(ClassificationSchemeBaseType))]
+ [XmlInclude(typeof(ClassificationSchemeType))]
+ [XmlInclude(typeof(TVAClassificationSchemeType))]
+ [XmlInclude(typeof(TVATermDefinitionBaseType))]
+ [XmlInclude(typeof(TVATermDefinitionType))]
+ [XmlInclude(typeof(UserActionType))]
+ [XmlInclude(typeof(UserActionType1))]
+ [XmlInclude(typeof(UserActionListType))]
+ [XmlInclude(typeof(UserActionHistoryType))]
+ [XmlInclude(typeof(UsageHistoryType))]
+ public abstract partial class Mpeg7BaseType {
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ClassificationSchemeTableType {
+
+ [XmlElement("CSAlias")]
+ public CSAliasType[] CSAlias;
+
+ [XmlElement("ClassificationScheme")]
+ public TVAClassificationSchemeType[] ClassificationScheme;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class MetadataOriginationInformationType {
+
+ [XmlElement("Publisher")]
+ public TextualType[] Publisher;
+
+ [XmlElement("RightsOwner")]
+ public TextualType[] RightsOwner;
+
+ [XmlElement("CopyrightNotice")]
+ public TextualType[] CopyrightNotice;
+
+ [XmlAttribute]
+ public string originID;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class MetadataOriginationInformationTableType {
+
+ [XmlElement("MetadataOriginationInformation")]
+ public MetadataOriginationInformationType[] MetadataOriginationInformation;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ [XmlRoot("TVAMain", Namespace="urn:tva:metadata:2011", IsNullable=false)]
+ public partial class TVAMainType {
+
+ [XmlElement("CopyrightNotice")]
+ public TextualType[] CopyrightNotice;
+
+ public MetadataOriginationInformationTableType MetadataOriginationInformationTable;
+
+ public ClassificationSchemeTableType ClassificationSchemeTable;
+
+ public ProgramDescriptionType ProgramDescription;
+
+ [XmlElement("UserDescription")]
+ public UserDescriptionType[] UserDescription;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+
+ [XmlAttribute]
+ public string publisher;
+
+ [XmlAttribute]
+ public System.DateTime publicationTime;
+
+ ///
+ [XmlIgnore]
+ public bool publicationTimeSpecified;
+
+ [XmlAttribute]
+ public string rightsOwner;
+
+ [XmlAttribute]
+ public string originID;
+
+ [XmlAttribute]
+ public uint version;
+
+ ///
+ [XmlIgnore]
+ public bool versionSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class PurchaseInformationTableType {
+
+ [XmlElement("PurchaseInformation")]
+ public PurchaseInformationType[] PurchaseInformation;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class CreditsInformationTableType {
+
+ [XmlElement("OrganizationName", typeof(OrganizationNameType))]
+ [XmlElement("PersonName", typeof(TVAPersonNameType))]
+ public object[] Items;
+
+ [XmlAttribute]
+ public string copyrightNotice;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ServiceInformationTableType {
+
+ [XmlElement("ServiceInformation")]
+ public ServiceInformationType[] ServiceInformation;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ProgramLocationTableType {
+
+ [XmlElement("Schedule")]
+ public ScheduleType[] Schedule;
+
+ [XmlElement("BroadcastEvent")]
+ public BroadcastEventType[] BroadcastEvent;
+
+ [XmlElement("OnDemandProgram")]
+ public OnDemandProgramType[] OnDemandProgram;
+
+ [XmlElement("OnDemandService")]
+ public OnDemandServiceType[] OnDemandService;
+
+ [XmlElement("PushDownloadProgram")]
+ public PushDownloadType[] PushDownloadProgram;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class GroupInformationTableType {
+
+ [XmlElement("GroupInformation")]
+ public GroupInformationType[] GroupInformation;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ProgramInformationTableType {
+
+ [XmlElement("ProgramInformation")]
+ public ProgramInformationType[] ProgramInformation;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class SegmentInformationTableType {
+
+ [XmlArrayItem("SegmentInformation", IsNullable=false)]
+ public SegmentInformationType[] SegmentList;
+
+ [XmlArrayItem("SegmentGroupInformation", IsNullable=false)]
+ public SegmentGroupInformationType[] SegmentGroupList;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ [XmlInclude(typeof(SegmentGroupTypeType))]
+ public abstract partial class BaseSegmentGroupTypeType {
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class SegmentGroupInformationType {
+
+ public CRIDRefType ProgramRef;
+
+ public TimeBaseReferenceType TimeBaseReference;
+
+ [XmlElement("GroupType")]
+ public BaseSegmentGroupTypeType[] GroupType;
+
+ public BasicSegmentDescriptionType Description;
+
+ public GroupIntervalType GroupInterval;
+
+ [XmlElement("Groups", typeof(GroupsType))]
+ [XmlElement("Segments", typeof(SegmentsType))]
+ public object Item;
+
+ [XmlElement("KeyFrameLocator")]
+ public TVAMediaTimeType[] KeyFrameLocator;
+
+ [XmlElement("OtherIdentifier")]
+ public UniqueIDType[] OtherIdentifier;
+
+ [XmlAttribute]
+ public string groupId;
+
+ [XmlAttribute]
+ [DefaultValue(true)]
+ public bool ordered;
+
+ [XmlAttribute]
+ public ushort numberOfSegments;
+
+ ///
+ [XmlIgnore]
+ public bool numberOfSegmentsSpecified;
+
+ [XmlAttribute]
+ public ushort numberOfKeyFrames;
+
+ ///
+ [XmlIgnore]
+ public bool numberOfKeyFramesSpecified;
+
+ [XmlAttribute]
+ public string duration;
+
+ [XmlAttribute]
+ public bool topLevel;
+
+ ///
+ [XmlIgnore]
+ public bool topLevelSpecified;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+
+ public SegmentGroupInformationType() {
+ this.ordered = true;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class GroupsType {
+
+ [XmlAttribute]
+ public string[] refList;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class SegmentsType {
+
+ [XmlAttribute]
+ public string[] refList;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class GroupIntervalType {
+
+ [XmlAttribute]
+ public string @ref;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class SegmentInformationType {
+
+ public CRIDRefType ProgramRef;
+
+ public TimeBaseReferenceType TimeBaseReference;
+
+ public BasicSegmentDescriptionType Description;
+
+ public TVAMediaTimeType SegmentLocator;
+
+ [XmlElement("KeyFrameLocator")]
+ public TVAMediaTimeType[] KeyFrameLocator;
+
+ [XmlElement("OtherIdentifier")]
+ public UniqueIDType[] OtherIdentifier;
+
+ [XmlAttribute]
+ public string segmentId;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class TimeBaseReferenceType {
+
+ [XmlElement("MediaRelIncrTimePoint", typeof(MediaRelIncrTimePointType))]
+ [XmlElement("MediaTimePoint", typeof(string))]
+ public object Item;
+
+ [XmlAttribute]
+ public string timebaseId;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(TVAMediaRelIncrTimePointType))]
+ public partial class MediaRelIncrTimePointType {
+
+ [XmlAttribute]
+ public string mediaTimeUnit;
+
+ [XmlText(DataType="integer")]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class MediaRelTimePointType {
+
+ [XmlText]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class TVAMediaTimeType {
+
+ [XmlElement("MediaRelIncrTimePoint", typeof(TVAMediaRelIncrTimePointType))]
+ [XmlElement("MediaRelTimePoint", typeof(MediaRelTimePointType))]
+ public object Item;
+
+ [XmlElement("MediaDuration", typeof(string))]
+ [XmlElement("MediaIncrDuration", typeof(MediaIncrDurationType))]
+ public object Item1;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class BasicSegmentDescriptionType {
+
+ [XmlElement("Title")]
+ public TitleType[] Title;
+
+ [XmlElement("Synopsis")]
+ public SynopsisType[] Synopsis;
+
+ [XmlElement("Genre")]
+ public GenreType[] Genre;
+
+ [XmlElement("Keyword")]
+ public KeywordType[] Keyword;
+
+ [XmlElement("RelatedMaterial")]
+ public RelatedMaterialType[] RelatedMaterial;
+
+ [XmlArrayItem("CreditsItem", IsNullable=false)]
+ public CreditsItemType[] CreditsList;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ServiceInformationType {
+
+ [XmlElement("Name")]
+ public ServiceInformationNameType[] Name;
+
+ [XmlElement("Owner")]
+ public string[] Owner;
+
+ [XmlElement(DataType="anyURI")]
+ public string ServiceURL;
+
+ [XmlElement("Logo")]
+ public MediaLocatorType[] Logo;
+
+ [XmlElement("ServiceDescription")]
+ public SynopsisType[] ServiceDescription;
+
+ [XmlElement("ServiceGenre")]
+ public GenreType[] ServiceGenre;
+
+ [XmlElement("ServiceLanguage", DataType="language")]
+ public string[] ServiceLanguage;
+
+ [XmlElement("ParentService")]
+ public ServiceRefType[] ParentService;
+
+ [XmlElement("RelatedMaterial")]
+ public RelatedMaterialType[] RelatedMaterial;
+
+ public PurchaseListType PurchaseList;
+
+ [XmlElement("GroupPurchaseIDRef")]
+ public string[] GroupPurchaseIDRef;
+
+ [XmlAttribute]
+ public string serviceId;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ServiceRefType {
+
+ [XmlElement("ValidPeriod")]
+ public ValidPeriodType[] ValidPeriod;
+
+ [XmlAttribute]
+ public string serviceIDRef;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ValidPeriodType {
+
+ public System.DateTime ValidFrom;
+
+ ///
+ [XmlIgnore]
+ public bool ValidFromSpecified;
+
+ public System.DateTime ValidTo;
+
+ ///
+ [XmlIgnore]
+ public bool ValidToSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class OnDemandServiceType {
+
+ [XmlElement("OnDemandProgram")]
+ public OnDemandProgramType[] OnDemandProgram;
+
+ [XmlAttribute]
+ public string[] serviceIDRef;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ScheduleType {
+
+ [XmlElement("ScheduleEvent")]
+ public ScheduleEventType[] ScheduleEvent;
+
+ [XmlAttribute]
+ public string[] serviceIDRef;
+
+ [XmlAttribute]
+ public System.DateTime start;
+
+ ///
+ [XmlIgnore]
+ public bool startSpecified;
+
+ [XmlAttribute]
+ public System.DateTime end;
+
+ ///
+ [XmlIgnore]
+ public bool endSpecified;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class InstanceDescriptionType {
+
+ [XmlElement("Title")]
+ public TitleType[] Title;
+
+ [XmlElement("Synopsis")]
+ public SynopsisType[] Synopsis;
+
+ [XmlElement("Genre")]
+ public GenreType[] Genre;
+
+ public PurchaseListType PurchaseList;
+
+ [XmlElement("CaptionLanguage")]
+ public CaptionLanguageType[] CaptionLanguage;
+
+ [XmlElement("SignLanguage")]
+ public SignLanguageType[] SignLanguage;
+
+ public AVAttributesType AVAttributes;
+
+ [XmlElement("MemberOf")]
+ public BaseMemberOfType[] MemberOf;
+
+ [XmlElement("OtherIdentifier")]
+ public UniqueIDType[] OtherIdentifier;
+
+ [XmlElement("RelatedMaterial")]
+ public RelatedMaterialType[] RelatedMaterial;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ [XmlInclude(typeof(PushDownloadType))]
+ [XmlInclude(typeof(OnDemandProgramType))]
+ [XmlInclude(typeof(ScheduleEventType))]
+ [XmlInclude(typeof(BroadcastEventType))]
+ public abstract partial class ProgramLocationType {
+
+ public CRIDRefType Program;
+
+ [XmlElement(DataType="anyURI")]
+ public string ProgramURL;
+
+ [XmlElement(DataType="anyURI")]
+ public string InstanceMetadataId;
+
+ public InstanceDescriptionType InstanceDescription;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ProgramReviewTableType {
+
+ [XmlElement("Review")]
+ public ReviewType[] Review;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class UserIdentifierType {
+
+ public TextualType Name;
+
+ [XmlAttribute]
+ [DefaultValue(userChoiceType.@true)]
+ public userChoiceType @protected;
+
+ public UserIdentifierType() {
+ this.@protected = userChoiceType.@true;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class RatingType {
+
+ public float RatingValue;
+
+ public RatingTypeRatingScheme RatingScheme;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ [XmlInclude(typeof(ReviewType))]
+ public partial class MediaReviewType {
+
+ [XmlElement("Rating")]
+ public RatingType[] Rating;
+
+ [XmlElement("FreeTextReview")]
+ public TextualType[] FreeTextReview;
+
+ [XmlElement("Reviewer")]
+ public ReviewerType[] Reviewer;
+
+ [XmlElement(DataType="anyURI")]
+ public string ReviewReference;
+
+ [XmlElement("Target")]
+ public UserIdentifierType[] Target;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class GroupInformationType {
+
+ public BaseProgramGroupTypeType GroupType;
+
+ public BasicContentDescriptionType BasicDescription;
+
+ [XmlElement("MemberOf")]
+ public BaseMemberOfType[] MemberOf;
+
+ [XmlElement("OtherIdentifier")]
+ public UniqueIDType[] OtherIdentifier;
+
+ [XmlElement(DataType="anyURI")]
+ public string PartOfAggregatedGroup;
+
+ public AggregationOfType AggregationOf;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string groupId;
+
+ [XmlAttribute]
+ [DefaultValue(false)]
+ public bool ordered;
+
+ [XmlAttribute]
+ public uint numOfItems;
+
+ ///
+ [XmlIgnore]
+ public bool numOfItemsSpecified;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+
+ [XmlAttribute]
+ public string[] serviceIDRef;
+
+ public GroupInformationType() {
+ this.ordered = false;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ [XmlInclude(typeof(ProgramGroupTypeType))]
+ public abstract partial class BaseProgramGroupTypeType {
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ProgramInformationType {
+
+ public BasicContentDescriptionType BasicDescription;
+
+ [XmlElement("OtherIdentifier")]
+ public UniqueIDType[] OtherIdentifier;
+
+ public AVAttributesType AVAttributes;
+
+ [XmlElement("MemberOf")]
+ public BaseMemberOfType[] MemberOf;
+
+ public DerivedFromType DerivedFrom;
+
+ public EpisodeOfType EpisodeOf;
+
+ [XmlElement(DataType="anyURI")]
+ public string PartOfAggregatedProgram;
+
+ public AggregationOfType AggregationOf;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string programId;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class AggregationOfType {
+
+ [XmlElement("AggregatedProgram")]
+ public CRIDRefType[] AggregatedProgram;
+
+ [XmlAttribute]
+ public AggregationOfTypeType type;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class AVAttributesType {
+
+ public ControlledTermType FileFormat;
+
+ public ulong FileSize;
+
+ ///
+ [XmlIgnore]
+ public bool FileSizeSpecified;
+
+ public ControlledTermType System;
+
+ [XmlElement("BitRate")]
+ public BitRateType[] BitRate;
+
+ [XmlElement("AudioAttributes")]
+ public AudioAttributesType[] AudioAttributes;
+
+ public VideoAttributesType VideoAttributes;
+
+ [XmlElement("CaptioningAttributes")]
+ public CaptioningAttributesType[] CaptioningAttributes;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class CaptioningAttributesType {
+
+ public ControlledTermType Coding;
+
+ public BitRateType BitRate;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class PurchaseListType {
+
+ [XmlElement("PurchaseIdRef", typeof(string))]
+ [XmlElement("PurchaseItem", typeof(PurchaseItemType))]
+ public object[] Items;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class PriceType {
+
+ [XmlAttribute]
+ public string currency;
+
+ [XmlText]
+ public float Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ [XmlInclude(typeof(PurchaseInformationType))]
+ public partial class PurchaseItemType {
+
+ [XmlElement("Price")]
+ public PriceType[] Price;
+
+ [XmlElement("Purchase")]
+ public PurchaseType[] Purchase;
+
+ [XmlElement("Description")]
+ public TextualType[] Description;
+
+ [XmlElement("PricingServerURL", DataType="anyURI")]
+ public string[] PricingServerURL;
+
+ public DRMDeclarationType DRMDeclaration;
+
+ [XmlAttribute]
+ public System.DateTime start;
+
+ ///
+ [XmlIgnore]
+ public bool startSpecified;
+
+ [XmlAttribute]
+ public System.DateTime end;
+
+ ///
+ [XmlIgnore]
+ public bool endSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class PurchaseType {
+
+ [XmlElement("PurchaseType")]
+ public ControlledTermType PurchaseType1;
+
+ public ControlledTermType QuantityUnit;
+
+ public PurchaseTypeQuantityRange QuantityRange;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class DRMDeclarationType {
+
+ [XmlElement(DataType="anyURI")]
+ public string DRM;
+
+ [XmlElement("LicenseExpression", typeof(string))]
+ [XmlElement("LicenseLocator", typeof(string), DataType="anyURI")]
+ [XmlChoiceIdentifier("ItemElementName")]
+ public string Item;
+
+ [XmlIgnore]
+ public ItemChoiceType2 ItemElementName;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ReleaseInformationType {
+
+ public ReleaseDateType ReleaseDate;
+
+ public string ReleaseLocation;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ReleaseDateType {
+
+ [XmlElement("DayAndYear", typeof(System.DateTime), DataType="date")]
+ [XmlElement("Year", typeof(string), DataType="gYear")]
+ public object Item;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class FlagType {
+
+ [XmlAttribute]
+ public bool value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ [XmlInclude(typeof(GenericDerivationReasonType))]
+ [XmlInclude(typeof(DerivationReasonType))]
+ public abstract partial class BaseDerivationReasonType {
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ [XmlInclude(typeof(BaseMemberOfType))]
+ [XmlInclude(typeof(DerivedFromType))]
+ [XmlInclude(typeof(MemberOfType))]
+ [XmlInclude(typeof(EpisodeOfType))]
+ public partial class CRIDRefType {
+
+ [XmlAttribute(DataType="anyURI")]
+ public string crid;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class FecInfo {
+
+ public FecLayerAddress FECBaseLayer;
+
+ public FecLayerAddress FECEnhancementLayer;
+
+ [XmlAttribute]
+ public ushort FECMaxBlockSize;
+
+ ///
+ [XmlIgnore]
+ public bool FECMaxBlockSizeSpecified;
+
+ [XmlAttribute]
+ public ushort FECMaxBlockTime;
+
+ ///
+ [XmlIgnore]
+ public bool FECMaxBlockTimeSpecified;
+
+ [XmlAttribute(DataType="base64Binary")]
+ public byte[] FECOTI;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class RETInfoType {
+
+ public RtcpRetransmissionReporting RTCPReporting;
+
+ public UnicastRETType UnicastRET;
+
+ public MulticastRETType MulticastRET;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class ServerBasedEnhancementServiceInfoType {
+
+ public EnhancementServiceType EnhancementService;
+
+ public RtcpRetransmissionReporting RTCPReporting;
+
+ public UnicastRETType Retransmission_session;
+
+ public MulticastRETType MulticastRET;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class MulticastRETType {
+
+ [XmlAttribute]
+ public string SourceAddress;
+
+ [XmlAttribute]
+ public string GroupAddress;
+
+ [XmlAttribute]
+ public uint ssrc;
+
+ ///
+ [XmlIgnore]
+ public bool ssrcSpecified;
+
+ [XmlAttribute]
+ public uint RTPPayloadTypeNumber;
+
+ ///
+ [XmlIgnore]
+ public bool RTPPayloadTypeNumberSpecified;
+
+ [XmlAttribute("rtcp-mux")]
+ [DefaultValue(false)]
+ public bool rtcpmux;
+
+ [XmlAttribute]
+ public uint DestinationPort;
+
+ ///
+ [XmlIgnore]
+ public bool DestinationPortSpecified;
+
+ [XmlAttribute("rtx-time")]
+ public uint rtxtime;
+
+ public MulticastRETType() {
+ this.rtcpmux = false;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class UnicastRETType {
+
+ [XmlAttribute("trr-int")]
+ public uint trrint;
+
+ ///
+ [XmlIgnore]
+ public bool trrintSpecified;
+
+ [XmlAttribute("DestinationPort-ForRTCPReporting")]
+ public uint DestinationPortForRTCPReporting;
+
+ ///
+ [XmlIgnore]
+ public bool DestinationPortForRTCPReportingSpecified;
+
+ [XmlAttribute]
+ public string SourceAddress;
+
+ [XmlAttribute]
+ public uint SourcePort;
+
+ ///
+ [XmlIgnore]
+ public bool SourcePortSpecified;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string RTSPControlURL;
+
+ [XmlAttribute]
+ public uint ssrc;
+
+ ///
+ [XmlIgnore]
+ public bool ssrcSpecified;
+
+ [XmlAttribute]
+ public uint RTPPayloadTypeNumber;
+
+ ///
+ [XmlIgnore]
+ public bool RTPPayloadTypeNumberSpecified;
+
+ [XmlAttribute("rtcp-mux")]
+ [DefaultValue(false)]
+ public bool rtcpmux;
+
+ [XmlAttribute]
+ public uint DestinationPort;
+
+ ///
+ [XmlIgnore]
+ public bool DestinationPortSpecified;
+
+ [XmlAttribute("rtx-time")]
+ public uint rtxtime;
+
+ public UnicastRETType() {
+ this.rtcpmux = false;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class DepictedCoordinatesType {
+
+ public TVATimeType DepictedDate;
+
+ public TVAPlaceType DepictedLocation;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class CreationCoordinatesType {
+
+ public TVATimeType CreationDate;
+
+ public string CreationLocation;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class TVATimeType {
+
+ public string TimePoint;
+
+ public string Duration;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class AwardType {
+
+ public TextualType Category;
+
+ [XmlElement("Nominee", typeof(CreditsItemType))]
+ [XmlElement("Recipient", typeof(CreditsItemType))]
+ [XmlChoiceIdentifier("ItemElementName")]
+ public CreditsItemType Item;
+
+ [XmlIgnore]
+ public ItemChoiceType1 ItemElementName;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class AwardsListItemType {
+
+ public TextualType Title;
+
+ [XmlElement(DataType="gYear")]
+ public string Year;
+
+ [XmlElement("Award")]
+ public AwardType[] Award;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class SegmentReferenceType {
+
+ [XmlAttribute]
+ [DefaultValue(segmentTypeType.segment)]
+ public segmentTypeType segmentType;
+
+ [XmlAttribute]
+ public string @ref;
+
+ public SegmentReferenceType() {
+ this.segmentType = segmentTypeType.segment;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class RelatedMaterialType {
+
+ public ControlledTermType HowRelated;
+
+ public ControlledTermType Format;
+
+ [XmlElement("MediaLocator", typeof(MediaLocatorType))]
+ [XmlElement("SegmentReference", typeof(SegmentReferenceType))]
+ public object[] Items;
+
+ [XmlElement("PromotionalText")]
+ public TextualType[] PromotionalText;
+
+ [XmlElement("PromotionalMedia")]
+ public TitleMediaType[] PromotionalMedia;
+
+ public MediaLocatorType SourceMediaLocator;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class TVAIDRefElementType {
+
+ [XmlAttribute]
+ public string @ref;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class UniqueIDType {
+
+ [XmlAttribute(DataType="NMTOKEN")]
+ [DefaultValue("URI")]
+ public string type;
+
+ [XmlAttribute(DataType="NMTOKEN")]
+ public string organization;
+
+ [XmlAttribute(DataType="NMTOKEN")]
+ public string authority;
+
+ [XmlAttribute]
+ [DefaultValue(UniqueIDTypeEncoding.text)]
+ public UniqueIDTypeEncoding encoding;
+
+ [XmlText]
+ public string Value;
+
+ public UniqueIDType() {
+ this.type = "URI";
+ this.encoding = UniqueIDTypeEncoding.text;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(TVAPersonNameType))]
+ public partial class PersonNameType {
+
+ [XmlElement("FamilyName", typeof(NameComponentType))]
+ [XmlElement("GivenName", typeof(NameComponentType))]
+ [XmlElement("LinkingName", typeof(NameComponentType))]
+ [XmlElement("Numeration", typeof(string))]
+ [XmlElement("Salutation", typeof(NameComponentType))]
+ [XmlElement("Title", typeof(NameComponentType))]
+ [XmlChoiceIdentifier("ItemsElementName")]
+ public object[] Items;
+
+ [XmlElement("ItemsElementName")]
+ [XmlIgnore]
+ public ItemsChoiceType[] ItemsElementName;
+
+ [XmlAttribute]
+ public string dateFrom;
+
+ [XmlAttribute]
+ public string dateTo;
+
+ [XmlAttribute]
+ public PersonNameTypeType type;
+
+ ///
+ [XmlIgnore]
+ public bool typeSpecified;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ [XmlInclude(typeof(ReviewerType))]
+ [XmlInclude(typeof(CreditsItemType))]
+ public partial class TVAAgentType {
+
+ [XmlElement("OrganizationName", typeof(TextualType))]
+ [XmlElement("OrganizationNameIDRef", typeof(TVAIDRefElementType))]
+ [XmlElement("PersonName", typeof(PersonNameType))]
+ [XmlElement("PersonNameIDRef", typeof(TVAIDRefElementType))]
+ [XmlChoiceIdentifier("ItemsElementName")]
+ public object[] Items;
+
+ [XmlElement("ItemsElementName")]
+ [XmlIgnore]
+ public ItemsChoiceType1[] ItemsElementName;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class SignLanguageType {
+
+ [XmlAttribute]
+ public bool primary;
+
+ ///
+ [XmlIgnore]
+ public bool primarySpecified;
+
+ [XmlAttribute]
+ public bool translation;
+
+ ///
+ [XmlIgnore]
+ public bool translationSpecified;
+
+ [XmlAttribute]
+ public string type;
+
+ [XmlAttribute]
+ public bool closed;
+
+ ///
+ [XmlIgnore]
+ public bool closedSpecified;
+
+ [XmlText(DataType="language")]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class CaptionLanguageType {
+
+ [XmlAttribute]
+ public bool primary;
+
+ ///
+ [XmlIgnore]
+ public bool primarySpecified;
+
+ [XmlAttribute]
+ public bool translation;
+
+ ///
+ [XmlIgnore]
+ public bool translationSpecified;
+
+ [XmlAttribute]
+ [DefaultValue(true)]
+ public bool closed;
+
+ [XmlAttribute]
+ [DefaultValue(false)]
+ public bool supplemental;
+
+ [XmlText(DataType="language")]
+ public string Value;
+
+ public CaptionLanguageType() {
+ this.closed = true;
+ this.supplemental = false;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(TermUseType))]
+ [XmlInclude(typeof(ControlledTermUseType))]
+ public abstract partial class InlineTermDefinitionType {
+
+ [XmlElement("Name")]
+ public InlineTermDefinitionTypeName[] Name;
+
+ [XmlElement("Definition")]
+ public TextualType[] Definition;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(TVAParentalGuidanceType))]
+ public partial class ParentalGuidanceType {
+
+ [XmlElement("MinimumAge", typeof(string), DataType="nonNegativeInteger")]
+ [XmlElement("ParentalRating", typeof(ControlledTermUseType))]
+ public object Item;
+
+ [XmlElement("Region")]
+ public string[] Region;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class MediaIncrDurationType {
+
+ [XmlAttribute]
+ public string mediaTimeUnit;
+
+ [XmlText(DataType="integer")]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class MediaTimeType {
+
+ [XmlElement("MediaTimePoint")]
+ public string Item;
+
+ [XmlElement("MediaDuration", typeof(string))]
+ [XmlElement("MediaIncrDuration", typeof(MediaIncrDurationType))]
+ public object Item1;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class InlineMediaType {
+
+ [XmlElement("MediaData16", typeof(byte[]), DataType="hexBinary")]
+ [XmlElement("MediaData64", typeof(byte[]), DataType="base64Binary")]
+ [XmlChoiceIdentifier("ItemElementName")]
+ public byte[] Item;
+
+ [XmlIgnore]
+ public ItemChoiceType ItemElementName;
+
+ [XmlAttribute]
+ public string type;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(TemporalSegmentLocatorType))]
+ [XmlInclude(typeof(ImageLocatorType))]
+ public partial class MediaLocatorType {
+
+ [XmlElement("InlineMedia", typeof(InlineMediaType))]
+ [XmlElement("MediaUri", typeof(string), DataType="anyURI")]
+ public object Item;
+
+ [XmlElement(DataType="nonNegativeInteger")]
+ public string StreamID;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class TitleMediaType {
+
+ public ImageLocatorType TitleImage;
+
+ public TemporalSegmentLocatorType TitleVideo;
+
+ public TemporalSegmentLocatorType TitleAudio;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class BasicContentDescriptionType {
+
+ [XmlElement("Title")]
+ public TitleType[] Title;
+
+ [XmlElement("MediaTitle")]
+ public TitleMediaType[] MediaTitle;
+
+ [XmlElement("ShortTitle")]
+ public ShortTitleType[] ShortTitle;
+
+ [XmlElement("Synopsis")]
+ public SynopsisType[] Synopsis;
+
+ [XmlElement("PromotionalInformation")]
+ public TextualType[] PromotionalInformation;
+
+ [XmlElement("Keyword")]
+ public KeywordType[] Keyword;
+
+ [XmlElement("Genre")]
+ public GenreType[] Genre;
+
+ [XmlElement("ParentalGuidance")]
+ public TVAParentalGuidanceType[] ParentalGuidance;
+
+ [XmlElement("Language")]
+ public ExtendedLanguageType[] Language;
+
+ [XmlElement("CaptionLanguage")]
+ public CaptionLanguageType[] CaptionLanguage;
+
+ [XmlElement("SignLanguage")]
+ public SignLanguageType[] SignLanguage;
+
+ [XmlArrayItem("CreditsItem", IsNullable=false)]
+ public CreditsItemType[] CreditsList;
+
+ [XmlArrayItem("AwardsListItem", IsNullable=false)]
+ public AwardsListItemType[] AwardsList;
+
+ [XmlElement("RelatedMaterial")]
+ public RelatedMaterialType[] RelatedMaterial;
+
+ public TVATimeType ProductionDate;
+
+ [XmlElement("ProductionLocation")]
+ public string[] ProductionLocation;
+
+ [XmlElement("CreationCoordinates")]
+ public CreationCoordinatesType[] CreationCoordinates;
+
+ [XmlElement("DepictedCoordinates")]
+ public DepictedCoordinatesType[] DepictedCoordinates;
+
+ [XmlElement("ReleaseInformation")]
+ public ReleaseInformationType[] ReleaseInformation;
+
+ [XmlElement(DataType="duration")]
+ public string Duration;
+
+ public PurchaseListType PurchaseList;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class RmsFusMulticastAddressKind {
+
+ [XmlAttribute]
+ public string Source;
+
+ [XmlAttribute]
+ public string Address;
+
+ [XmlAttribute]
+ public ushort Port;
+
+ [XmlAttribute]
+ public RmsFusMulticastAddressKindProtocol Protocol;
+
+ ///
+ [XmlIgnore]
+ public bool ProtocolSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class FirmwareUpdateAnnouncement {
+
+ public string FUSAnnouncementDescription;
+
+ public RmsFusMulticastAddressKind MulticastAnnouncementAddress;
+
+ [XmlElement(DataType="anyURI")]
+ public string FUSUnicastAnnouncement;
+
+ [XmlElement(DataType="anyURI")]
+ public string QRCLocation;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class CivicAddress {
+
+ [XmlElement("CA")]
+ public CivicAddress[] CA;
+
+ [XmlAttribute]
+ public string Type;
+
+ [XmlAttribute]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class TargetPackageType {
+
+ [XmlElement("PackageType")]
+ public MultilingualText[] PackageType;
+
+ [XmlAttribute]
+ public string PackageIDRef;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class PayloadListSegmentType {
+
+ [XmlElement("TargetPackage")]
+ public TargetPackageType[] TargetPackage;
+
+ [XmlAttribute]
+ public string Version;
+
+ [XmlAttribute]
+ public string ID;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ [XmlInclude(typeof(DvbStpTransportMode))]
+ [XmlInclude(typeof(HttpTransportMode))]
+ public partial class PayloadList {
+
+ [XmlElement("PayloadId")]
+ public PayloadListPayloadId[] PayloadId;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class SRMDownloadServiceHTTPType {
+
+ public SRMIDVerUType SRMIDVer;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string Location;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class SRMDownloadServiceFLUTEType {
+
+ [XmlElement("SRMIDVer")]
+ public SRMIDVerMType[] SRMIDVer;
+
+ [XmlAttribute]
+ public string FLUTESessionVersion;
+
+ [XmlAttribute]
+ public string Source;
+
+ [XmlAttribute]
+ public string Address;
+
+ [XmlAttribute]
+ public ushort Port;
+
+ [XmlAttribute]
+ public ushort TSI;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class SRMAnnouncementModeSAPType {
+
+ [XmlAttribute]
+ public string Source;
+
+ [XmlAttribute]
+ public string Address;
+
+ [XmlAttribute]
+ public ushort Port;
+ }
+
+ ///
+ /// [en] SAP or HTTP delivery of SRM Announcement Services
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMAnnouncementModeType
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class SRMAnnouncementModeType {
+
+ [XmlElement("HTTP", typeof(string), DataType="anyURI")]
+ [XmlElement("SAP", typeof(SRMAnnouncementModeSAPType))]
+ public object Item;
+ }
+
+ ///
+ /// SRM specific ID (CP System ID, CP System SRM ID)
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMIDType
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ [XmlInclude(typeof(SRMIDVerUType))]
+ [XmlInclude(typeof(SRMIDVerMType))]
+ public partial class SRMIDType {
+
+ [XmlAttribute]
+ public string CPSystemID;
+
+ [XmlAttribute]
+ public string CPSystemSRMID;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class PackagedServiceType {
+
+ [XmlElement("TextualID")]
+ public PackageTextualIdentifier[] TextualID;
+
+ public DvbTriplet DVBTriplet;
+
+ public DescriptionLocationBCG DescriptionLocation;
+
+ [XmlElement(DataType="positiveInteger")]
+ public string LogicalChannelNumber;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class PackageAvailabilityCountryCode {
+
+ [XmlAttribute]
+ [DefaultValue(true)]
+ public bool Availability;
+
+ [XmlText]
+ public string Value;
+
+ public PackageAvailabilityCountryCode() {
+ this.Availability = true;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class ServiceAvailability {
+
+ public PackageAvailabilityCountryCode CountryCode;
+
+ [XmlElement("Cells")]
+ public string[] Cells;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ColorType {
+
+ [XmlAttribute]
+ public ColorTypeType type;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class AspectRatioType {
+
+ [XmlAttribute]
+ [DefaultValue(AspectRatioTypeType.original)]
+ public AspectRatioTypeType type;
+
+ [XmlText]
+ public string Value;
+
+ public AspectRatioType() {
+ this.type = AspectRatioTypeType.original;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class VideoAttributesType {
+
+ public ControlledTermType Coding;
+
+ public ScanType Scan;
+
+ ///
+ [XmlIgnore]
+ public bool ScanSpecified;
+
+ public ushort HorizontalSize;
+
+ ///
+ [XmlIgnore]
+ public bool HorizontalSizeSpecified;
+
+ public ushort VerticalSize;
+
+ ///
+ [XmlIgnore]
+ public bool VerticalSizeSpecified;
+
+ [XmlElement("AspectRatio")]
+ public AspectRatioType[] AspectRatio;
+
+ public ColorType Color;
+
+ public string FrameRate;
+
+ public BitRateType BitRate;
+
+ public ControlledTermType PictureFormat;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class BitRateType {
+
+ [XmlAttribute]
+ [DefaultValue(false)]
+ public bool variable;
+
+ [XmlAttribute]
+ public ulong minimum;
+
+ ///
+ [XmlIgnore]
+ public bool minimumSpecified;
+
+ [XmlAttribute]
+ public ulong average;
+
+ ///
+ [XmlIgnore]
+ public bool averageSpecified;
+
+ [XmlAttribute]
+ public ulong maximum;
+
+ ///
+ [XmlIgnore]
+ public bool maximumSpecified;
+
+ [XmlText(DataType="nonNegativeInteger")]
+ public string Value;
+
+ public BitRateType() {
+ this.variable = false;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(AudioLanguageType))]
+ public partial class ExtendedLanguageType {
+
+ [XmlAttribute]
+ [DefaultValue(ExtendedLanguageTypeType.original)]
+ public ExtendedLanguageTypeType type;
+
+ [XmlAttribute]
+ [DefaultValue(false)]
+ public bool supplemental;
+
+ [XmlText(DataType="language")]
+ public string Value;
+
+ public ExtendedLanguageType() {
+ this.type = ExtendedLanguageTypeType.original;
+ this.supplemental = false;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(TitleType))]
+ [XmlInclude(typeof(ShortTitleType))]
+ [XmlInclude(typeof(TextualType))]
+ [XmlInclude(typeof(OrganizationNameType))]
+ [XmlInclude(typeof(ServiceInformationNameType))]
+ [XmlInclude(typeof(ExplanationType))]
+ [XmlInclude(typeof(SynopsisType))]
+ [XmlInclude(typeof(KeywordType))]
+ [XmlInclude(typeof(TermNameType))]
+ [XmlInclude(typeof(NameComponentType))]
+ public abstract partial class TextualBaseType {
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+
+ [XmlText]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ [XmlInclude(typeof(GenreType))]
+ public partial class ControlledTermType {
+
+ public TermNameType Name;
+
+ public TextualType Definition;
+
+ [XmlAttribute]
+ public string href;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class AudioAttributesType {
+
+ public ControlledTermType Coding;
+
+ public ushort NumOfChannels;
+
+ ///
+ [XmlIgnore]
+ public bool NumOfChannelsSpecified;
+
+ public ControlledTermType MixType;
+
+ public AudioLanguageType AudioLanguage;
+
+ public uint SampleFrequency;
+
+ ///
+ [XmlIgnore]
+ public bool SampleFrequencySpecified;
+
+ public uint BitsPerSample;
+
+ ///
+ [XmlIgnore]
+ public bool BitsPerSampleSpecified;
+
+ public BitRateType BitRate;
+ }
+
+ ///
+ /// [en] Implementation of the Announcement support indicator from ETSI EN 300 468.
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:AnnouncementSupport
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class AnnouncementSupport {
+
+ [XmlElement("Announcement")]
+ public AnnouncementSupportAnnouncement[] Announcement;
+
+ [XmlAttribute]
+ public string SupportIndicator;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class MosaicDescription {
+
+ [XmlElement("LogicalCell")]
+ public MosaicDescriptionLogicalCell[] LogicalCell;
+
+ [XmlAttribute]
+ [DefaultValue(true)]
+ public bool EntryPoint;
+
+ [XmlAttribute]
+ public string HorizontalCellsNumber;
+
+ [XmlAttribute]
+ public string VerticalCellsNumber;
+
+ public MosaicDescription() {
+ this.EntryPoint = true;
+ }
+ }
+
+ ///
+ /// [en] implementation of The replacement_Service part of the Linkage_Descriptor in ETSI EN 300 468. Describes a service to try if the specified one fails.
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:ReplacementService
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class ReplacementService {
+
+ [XmlElement("DVBTriplet", typeof(DvbTriplet))]
+ [XmlElement("TextualIdentifier", typeof(TextualIdentifier))]
+ public object Item;
+
+ [XmlAttribute]
+ [DefaultValue("5")]
+ public string ReplacementType;
+
+ public ReplacementService() {
+ this.ReplacementType = "5";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class CountryAvailability {
+
+ [XmlAttribute]
+ public string Countries;
+
+ [XmlAttribute]
+ [DefaultValue(true)]
+ public bool Available;
+
+ public CountryAvailability() {
+ this.Available = true;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class MultilingualText {
+
+ [XmlAttribute]
+ public string Language;
+
+ [XmlText]
+ public string Value;
+ }
+
+ ///
+ /// Implementation of traditional DVB SI information about a service
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SI
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class SI {
+
+ [XmlElement("Name")]
+ public MultilingualText[] Name;
+
+ [XmlElement("Description")]
+ public MultilingualText[] Description;
+
+ [XmlElement("ServiceDescriptionLocation")]
+ public DescriptionLocationBCG[] ServiceDescriptionLocation;
+
+ [XmlElement("ContentGenre")]
+ public sbyte[] ContentGenre;
+
+ [XmlElement("CountryAvailability")]
+ public CountryAvailability[] CountryAvailability;
+
+ [XmlElement("ReplacementService")]
+ public ReplacementService[] ReplacementService;
+
+ public MosaicDescription MosaicDescription;
+
+ public AnnouncementSupport AnnouncementSupport;
+
+ [XmlAttribute]
+ public string ServiceType;
+
+ [XmlAttribute]
+ [DefaultValue(PrimaryServiceInformationSource.XML)]
+ public PrimaryServiceInformationSource PrimarySISource;
+
+ public SI() {
+ this.PrimarySISource = PrimaryServiceInformationSource.XML;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class DvbTriplet {
+
+ [XmlAttribute]
+ public ushort OrigNetId;
+
+ [XmlAttribute]
+ public ushort TSId;
+
+ [XmlAttribute]
+ public ushort ServiceId;
+
+ [XmlAttribute]
+ public string TSIdWildcard;
+
+ public DvbTriplet() {
+ this.TSIdWildcard = "*";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ [XmlInclude(typeof(PackageTextualIdentifier))]
+ public partial class TextualIdentifier {
+
+ [XmlAttribute]
+ public string DomainName;
+
+ [XmlAttribute]
+ public string ServiceName;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class RtspUrl {
+
+ [XmlAttribute(DataType="anyURI")]
+ public string RTSPControlURL;
+
+ [XmlText(DataType="anyURI")]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class MulticastRetransmission {
+
+ [XmlAttribute]
+ public string SourceAddress;
+
+ [XmlAttribute]
+ public string GroupAddress;
+
+ [XmlAttribute]
+ public uint ssrc;
+
+ ///
+ [XmlIgnore]
+ public bool ssrcSpecified;
+
+ [XmlAttribute]
+ public uint RTPPayloadTypeNumber;
+
+ ///
+ [XmlIgnore]
+ public bool RTPPayloadTypeNumberSpecified;
+
+ [XmlAttribute("dvb-original-copy-ret")]
+ public bool dvboriginalcopyret;
+
+ ///
+ [XmlIgnore]
+ public bool dvboriginalcopyretSpecified;
+
+ [XmlAttribute("rtcp-mux")]
+ [DefaultValue(false)]
+ public bool rtcpmux;
+
+ [XmlAttribute]
+ public uint DestinationPort;
+
+ ///
+ [XmlIgnore]
+ public bool DestinationPortSpecified;
+
+ [XmlAttribute("rtx-time")]
+ public uint rtxtime;
+
+ public MulticastRetransmission() {
+ this.rtcpmux = false;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class UnicastRetransmission {
+
+ [XmlAttribute("trr-int")]
+ public uint trrint;
+
+ ///
+ [XmlIgnore]
+ public bool trrintSpecified;
+
+ [XmlAttribute("DestinationPort-ForRTCPReporting")]
+ public uint DestinationPortForRTCPReporting;
+
+ ///
+ [XmlIgnore]
+ public bool DestinationPortForRTCPReportingSpecified;
+
+ [XmlAttribute]
+ public uint SourcePort;
+
+ ///
+ [XmlIgnore]
+ public bool SourcePortSpecified;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string RTSPControlURL;
+
+ [XmlAttribute]
+ public uint ssrc;
+
+ ///
+ [XmlIgnore]
+ public bool ssrcSpecified;
+
+ [XmlAttribute]
+ public uint RTPPayloadTypeNumber;
+
+ ///
+ [XmlIgnore]
+ public bool RTPPayloadTypeNumberSpecified;
+
+ [XmlAttribute("dvb-original-copy-ret")]
+ public bool dvboriginalcopyret;
+
+ ///
+ [XmlIgnore]
+ public bool dvboriginalcopyretSpecified;
+
+ [XmlAttribute("rtcp-mux")]
+ [DefaultValue(false)]
+ public bool rtcpmux;
+
+ [XmlAttribute]
+ public uint DestinationPort;
+
+ ///
+ [XmlIgnore]
+ public bool DestinationPortSpecified;
+
+ [XmlAttribute("rtx-time")]
+ public uint rtxtime;
+
+ public UnicastRetransmission() {
+ this.rtcpmux = false;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class RtcpRetransmissionReporting {
+
+ [XmlAttribute]
+ public string DestinationAddress;
+
+ [XmlAttribute]
+ public ushort DestinationPort;
+
+ ///
+ [XmlIgnore]
+ public bool DestinationPortSpecified;
+
+ [XmlAttribute("dvb-t-ret", DataType="positiveInteger")]
+ public string dvbtret;
+
+ [XmlAttribute("rtcp-bandwidth", DataType="positiveInteger")]
+ public string rtcpbandwidth;
+
+ [XmlAttribute("rtcp-rsize", DataType="positiveInteger")]
+ public string rtcprsize;
+
+ [XmlAttribute("trr-int", DataType="positiveInteger")]
+ public string trrint;
+
+ [XmlAttribute("dvb-disable-rtcp-rr")]
+ [DefaultValue(false)]
+ public bool dvbdisablertcprr;
+
+ [XmlAttribute("dvb-enable-byte")]
+ [DefaultValue(false)]
+ public bool dvbenablebyte;
+
+ [XmlAttribute("dvb-t-wait-min")]
+ [DefaultValue(typeof(uint), "0")]
+ public uint dvbtwaitmin;
+
+ [XmlAttribute("dvb-t-wait-max")]
+ [DefaultValue(typeof(uint), "0")]
+ public uint dvbtwaitmax;
+
+ [XmlAttribute("dvb-ssrc-bitmask")]
+ [DefaultValue("ffffffff")]
+ public string dvbssrcbitmask;
+
+ [XmlAttribute("dvb-rsi-mc-ret")]
+ public bool dvbrsimcret;
+
+ ///
+ [XmlIgnore]
+ public bool dvbrsimcretSpecified;
+
+ [XmlAttribute("dvb-ssrc-upstream-client", DataType="positiveInteger")]
+ public string dvbssrcupstreamclient;
+
+ public RtcpRetransmissionReporting() {
+ this.dvbdisablertcprr = false;
+ this.dvbenablebyte = false;
+ this.dvbtwaitmin = ((uint)(0));
+ this.dvbtwaitmax = ((uint)(0));
+ this.dvbssrcbitmask = "ffffffff";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class RetransmissionInfo {
+
+ public RtcpRetransmissionReporting RTCPReporting;
+
+ public UnicastRetransmission UnicastRET;
+
+ public MulticastRetransmission MulticastRET;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class FecLayerAddress {
+
+ [XmlAttribute]
+ public string Address;
+
+ [XmlAttribute]
+ public string Source;
+
+ [XmlAttribute]
+ public ushort Port;
+
+ ///
+ [XmlIgnore]
+ public bool PortSpecified;
+
+ [XmlAttribute(DataType="positiveInteger")]
+ public string MaxBitrate;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string RTSPControlURL;
+
+ [XmlAttribute]
+ public uint PayloadTypeNumber;
+
+ ///
+ [XmlIgnore]
+ public bool PayloadTypeNumberSpecified;
+
+ [XmlAttribute]
+ public TransportProtocolType TransportProtocol;
+
+ ///
+ [XmlIgnore]
+ public bool TransportProtocolSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class IpMulticastAddress {
+
+ public FecLayerAddress FECBaseLayer;
+
+ [XmlElement("FECEnhancementLayer")]
+ public FecLayerAddress[] FECEnhancementLayer;
+
+ public string CNAME;
+
+ public uint ssrc;
+
+ ///
+ [XmlIgnore]
+ public bool ssrcSpecified;
+
+ public RetransmissionInfo RTPRetransmission;
+
+ [XmlAttribute]
+ public string Source;
+
+ [XmlAttribute]
+ public string Address;
+
+ [XmlAttribute]
+ public ushort Port;
+
+ [XmlAttribute]
+ public StreamingType Streaming;
+
+ ///
+ [XmlIgnore]
+ public bool StreamingSpecified;
+ }
+
+ ///
+ /// [en] The location of a service. Currently this supports either a broadcast system identifier or a multicast address (ASM and SSM) or RTSP.
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:ServiceLocation
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class ServiceLocation {
+
+ [XmlElement("BroadcastSystem", typeof(string))]
+ [XmlElement("IPMulticastAddress", typeof(IpMulticastAddress))]
+ [XmlElement("RTSPURL", typeof(RtspUrl))]
+ public object[] Items;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class IPService {
+
+ public ServiceLocation ServiceLocation;
+
+ public TextualIdentifier TextualIdentifier;
+
+ [XmlElement("DVBTriplet")]
+ public DvbTriplet[] DVBTriplet;
+
+ [XmlElement(DataType="positiveInteger")]
+ public string MaxBitrate;
+
+ public SI SI;
+
+ [XmlElement("AudioAttributes")]
+ public AudioAttributesType[] AudioAttributes;
+
+ [XmlElement("VideoAttributes")]
+ public VideoAttributesType[] VideoAttributes;
+
+ [XmlElement("ServiceAvailability")]
+ public ServiceAvailability[] ServiceAvailability;
+
+ [XmlElement("Usage")]
+ public Usage[] Usage;
+
+ [XmlElement("LinkedService")]
+ public IPService[] LinkedService;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class DescriptionLocationBCG {
+
+ [XmlAttribute]
+ public bool preferred;
+
+ ///
+ [XmlIgnore]
+ public bool preferredSpecified;
+
+ [XmlText]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class PackagePackageReference {
+
+ [XmlAttribute]
+ public string Id;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class ReferencedServiceProviderTypeService {
+
+ [XmlAttribute]
+ public string Name;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class UserPreferencesType : DSType {
+
+ public UserIdentifierType UserIdentifier;
+
+ [XmlElement("FilteringAndSearchPreferences")]
+ public FilteringAndSearchPreferencesType[] FilteringAndSearchPreferences;
+
+ [XmlElement("BrowsingPreferences")]
+ public BrowsingPreferencesType[] BrowsingPreferences;
+
+ [XmlAttribute]
+ [DefaultValue(userChoiceType.@false)]
+ public userChoiceType allowAutomaticUpdate;
+
+ public UserPreferencesType() {
+ this.allowAutomaticUpdate = userChoiceType.@false;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class UsageHistoryType : DSType {
+
+ public UserIdentifierType UserIdentifier;
+
+ [XmlElement("UserActionHistory")]
+ public UserActionHistoryType[] UserActionHistory;
+
+ [XmlAttribute]
+ [DefaultValue(userChoiceType.@false)]
+ public userChoiceType allowCollection;
+
+ public UsageHistoryType() {
+ this.allowCollection = userChoiceType.@false;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class ControlledTermUseType : InlineTermDefinitionType {
+
+ [XmlAttribute]
+ public string href;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(PersonType))]
+ [XmlInclude(typeof(PersonGroupType))]
+ [XmlInclude(typeof(OrganizationType))]
+ public abstract partial class AgentType : DSType {
+
+ [XmlElement("Icon")]
+ public MediaLocatorType[] Icon;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class CreatorType : MediaAgentType {
+
+ [XmlElement("Character")]
+ public PersonNameType[] Character;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class ElectronicAddressTypeTelephone {
+
+ [XmlAttribute]
+ public ElectronicAddressTypeTelephoneType type;
+
+ ///
+ [XmlIgnore]
+ public bool typeSpecified;
+
+ [XmlText]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(OrganizationNameType))]
+ [XmlInclude(typeof(ServiceInformationNameType))]
+ [XmlInclude(typeof(ExplanationType))]
+ [XmlInclude(typeof(SynopsisType))]
+ [XmlInclude(typeof(KeywordType))]
+ [XmlInclude(typeof(TermNameType))]
+ public partial class TextualType : TextualBaseType {
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(ClassificationSchemeAliasType))]
+ [XmlInclude(typeof(CSAliasType))]
+ public abstract partial class HeaderType : Mpeg7BaseType {
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(PreferenceConditionType))]
+ [XmlInclude(typeof(MediaFormatType))]
+ public abstract partial class DType : Mpeg7BaseType {
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(UserPreferencesType))]
+ [XmlInclude(typeof(UserActionListType1))]
+ [XmlInclude(typeof(UserActionHistoryType1))]
+ [XmlInclude(typeof(UsageHistoryType1))]
+ [XmlInclude(typeof(SourcePreferencesType))]
+ [XmlInclude(typeof(FilteringAndSearchPreferencesType))]
+ [XmlInclude(typeof(CreationPreferencesType))]
+ [XmlInclude(typeof(ClassificationPreferencesType))]
+ [XmlInclude(typeof(SummaryPreferencesType))]
+ [XmlInclude(typeof(BrowsingPreferencesType))]
+ [XmlInclude(typeof(AgentType))]
+ [XmlInclude(typeof(PersonType))]
+ [XmlInclude(typeof(PersonGroupType))]
+ [XmlInclude(typeof(OrganizationType))]
+ [XmlInclude(typeof(PlaceType))]
+ [XmlInclude(typeof(TVAPlaceType))]
+ [XmlInclude(typeof(TermDefinitionBaseType))]
+ [XmlInclude(typeof(TermDefinitionType))]
+ [XmlInclude(typeof(ClassificationSchemeBaseType))]
+ [XmlInclude(typeof(ClassificationSchemeType))]
+ [XmlInclude(typeof(TVAClassificationSchemeType))]
+ [XmlInclude(typeof(TVATermDefinitionBaseType))]
+ [XmlInclude(typeof(TVATermDefinitionType))]
+ [XmlInclude(typeof(UserActionType))]
+ [XmlInclude(typeof(UserActionType1))]
+ [XmlInclude(typeof(UserActionListType))]
+ [XmlInclude(typeof(UserActionHistoryType))]
+ [XmlInclude(typeof(UsageHistoryType))]
+ public abstract partial class DSType : Mpeg7BaseType {
+
+ [XmlAttribute(DataType="ID")]
+ public string id;
+
+ [XmlAttribute(DataType="token")]
+ public string timeBase;
+
+ [XmlAttribute]
+ public string timeUnit;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class CSAliasType : ClassificationSchemeAliasType {
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class TVAClassificationSchemeType : ClassificationSchemeBaseType {
+
+ [XmlElement("Term")]
+ public TVATermDefinitionType[] Term;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class PurchaseInformationType : PurchaseItemType {
+
+ [XmlAttribute]
+ public string purchaseId;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class OrganizationNameType : TextualType {
+
+ [XmlAttribute]
+ public string organizationNameId;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class TVAPersonNameType : PersonNameType {
+
+ [XmlElement("OtherIdentifier")]
+ public UniqueIDType[] OtherIdentifier;
+
+ [XmlAttribute]
+ public string personNameId;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class BroadcastEventType : ScheduleEventType {
+
+ [XmlAttribute]
+ public string[] serviceIDRef;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class OnDemandProgramType : ProgramLocationType {
+
+ [XmlElement(DataType="duration")]
+ public string PublishedDuration;
+
+ public System.DateTime StartOfAvailability;
+
+ ///
+ [XmlIgnore]
+ public bool StartOfAvailabilitySpecified;
+
+ public System.DateTime EndOfAvailability;
+
+ ///
+ [XmlIgnore]
+ public bool EndOfAvailabilitySpecified;
+
+ public FlagType FirstAvailability;
+
+ public FlagType LastAvailability;
+
+ public FlagType ImmediateViewing;
+
+ public DeliveryModeType DeliveryMode;
+
+ ///
+ [XmlIgnore]
+ public bool DeliveryModeSpecified;
+
+ public byte ContentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool ContentVersionSpecified;
+
+ public System.DateTime ExpiryTime;
+
+ ///
+ [XmlIgnore]
+ public bool ExpiryTimeSpecified;
+
+ public FlagType EarlyPlayout;
+
+ public FlagType Free;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+
+ [XmlAttribute]
+ public string[] serviceIDRef;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class PushDownloadType : ProgramLocationType {
+
+ [XmlElement(DataType="duration")]
+ public string PublishedDuration;
+
+ public System.DateTime StartOfAvailability;
+
+ ///
+ [XmlIgnore]
+ public bool StartOfAvailabilitySpecified;
+
+ public System.DateTime EndOfAvailability;
+
+ ///
+ [XmlIgnore]
+ public bool EndOfAvailabilitySpecified;
+
+ public byte ContentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool ContentVersionSpecified;
+
+ public System.DateTime ExpiryTime;
+
+ ///
+ [XmlIgnore]
+ public bool ExpiryTimeSpecified;
+
+ public System.DateTime ActivationTime;
+
+ ///
+ [XmlIgnore]
+ public bool ActivationTimeSpecified;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+
+ [XmlAttribute]
+ public string[] serviceIDRef;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class SegmentGroupTypeType : BaseSegmentGroupTypeType {
+
+ [XmlAttribute]
+ public SegmentGroupTypeTypeValue value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class TVAMediaRelIncrTimePointType : MediaRelIncrTimePointType {
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(ShortTitleType))]
+ public partial class TitleType : TextualBaseType {
+
+ [XmlAttribute]
+ [DefaultValue("main")]
+ public string type;
+
+ public TitleType() {
+ this.type = "main";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class SynopsisType : TextualType {
+
+ [XmlAttribute]
+ public SynopsisLengthType length;
+
+ ///
+ [XmlIgnore]
+ public bool lengthSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class GenreType : ControlledTermType {
+
+ [XmlAttribute]
+ [DefaultValue(GenreTypeType.main)]
+ public GenreTypeType type;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ public GenreType() {
+ this.type = GenreTypeType.main;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class KeywordType : TextualType {
+
+ [XmlAttribute]
+ [DefaultValue(KeywordTypeType.main)]
+ public KeywordTypeType type;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ public KeywordType() {
+ this.type = KeywordTypeType.main;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ServiceInformationNameType : TextualType {
+
+ [XmlAttribute]
+ public serviceInformationNameLengthType length;
+
+ ///
+ [XmlIgnore]
+ public bool lengthSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ [XmlInclude(typeof(BroadcastEventType))]
+ public partial class ScheduleEventType : ProgramLocationType {
+
+ public System.DateTime PublishedStartTime;
+
+ ///
+ [XmlIgnore]
+ public bool PublishedStartTimeSpecified;
+
+ public System.DateTime PublishedEndTime;
+
+ ///
+ [XmlIgnore]
+ public bool PublishedEndTimeSpecified;
+
+ [XmlElement(DataType="duration")]
+ public string PublishedDuration;
+
+ public FlagType Live;
+
+ public FlagType Repeat;
+
+ public FlagType FirstShowing;
+
+ public FlagType LastShowing;
+
+ public FlagType Free;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ [XmlInclude(typeof(DerivedFromType))]
+ [XmlInclude(typeof(MemberOfType))]
+ [XmlInclude(typeof(EpisodeOfType))]
+ public abstract partial class BaseMemberOfType : CRIDRefType {
+
+ [XmlAttribute]
+ public uint index;
+
+ ///
+ [XmlIgnore]
+ public bool indexSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ReviewType : MediaReviewType {
+
+ [XmlAttribute(DataType="anyURI")]
+ public string programId;
+
+ [XmlAttribute]
+ public string fragmentId;
+
+ [XmlAttribute]
+ public ulong fragmentVersion;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentVersionSpecified;
+
+ [XmlAttribute]
+ public System.DateTime fragmentExpirationDate;
+
+ ///
+ [XmlIgnore]
+ public bool fragmentExpirationDateSpecified;
+
+ [XmlAttribute]
+ public string metadataOriginIDRef;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public enum userChoiceType {
+
+ ///
+ @true,
+
+ ///
+ @false,
+
+ ///
+ user,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class RatingTypeRatingScheme : TermUseType {
+
+ [XmlAttribute]
+ public float best;
+
+ ///
+ [XmlIgnore]
+ public bool bestSpecified;
+
+ [XmlAttribute]
+ public float worst;
+
+ ///
+ [XmlIgnore]
+ public bool worstSpecified;
+
+ [XmlAttribute]
+ public RatingTypeRatingSchemeStyle style;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ReviewerType : TVAAgentType {
+
+ public TextualType Publication;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ProgramGroupTypeType : BaseProgramGroupTypeType {
+
+ [XmlAttribute]
+ public ProgramGroupTypeTypeValue value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class DerivedFromType : BaseMemberOfType {
+
+ [XmlElement("DerivationReason")]
+ public GenericDerivationReasonType[] DerivationReason;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class EpisodeOfType : BaseMemberOfType {
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
+ public enum AggregationOfTypeType {
+
+ ///
+ omnibus,
+
+ ///
+ magazine,
+
+ ///
+ split,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
+ public partial class PurchaseTypeQuantityRange {
+
+ [XmlAttribute]
+ public uint min;
+
+ ///
+ [XmlIgnore]
+ public bool minSpecified;
+
+ [XmlAttribute]
+ public uint max;
+
+ ///
+ [XmlIgnore]
+ public bool maxSpecified;
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:metadata:2011", IncludeInSchema=false)]
+ public enum ItemChoiceType2 {
+
+ ///
+ LicenseExpression,
+
+ ///
+ LicenseLocator,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class GenericDerivationReasonType : BaseDerivationReasonType {
+
+ [XmlElement("Classifier")]
+ public ControlledTermType[] Classifier;
+
+ [XmlElement("Description")]
+ public TextualType[] Description;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class DerivationReasonType : BaseDerivationReasonType {
+
+ [XmlAttribute]
+ public DerivationReasonTypeValue value;
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public enum EnhancementServiceType {
+
+ ///
+ FCC,
+
+ ///
+ RET,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class TVAPlaceType : PlaceType {
+
+ [XmlAttribute]
+ [DefaultValue(false)]
+ public bool fictional;
+
+ public TVAPlaceType() {
+ this.fictional = false;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class CreditsItemType : TVAAgentType {
+
+ [XmlElement("Character", typeof(PersonNameType))]
+ [XmlElement("PresentationRole", typeof(TextualType))]
+ public object[] Items1;
+
+ [XmlElement("RelatedMaterial")]
+ public RelatedMaterialType[] RelatedMaterial;
+
+ [XmlAttribute]
+ public string role;
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string index;
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:metadata:2011", IncludeInSchema=false)]
+ public enum ItemChoiceType1 {
+
+ ///
+ Nominee,
+
+ ///
+ Recipient,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public enum segmentTypeType {
+
+ ///
+ segment,
+
+ ///
+ segmentgroup,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public enum UniqueIDTypeEncoding {
+
+ ///
+ text,
+
+ ///
+ base16,
+
+ ///
+ base64,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class NameComponentType : TextualBaseType {
+
+ [XmlAttribute]
+ public string initial;
+
+ [XmlAttribute]
+ public string abbrev;
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:mpeg7:2008", IncludeInSchema=false)]
+ public enum ItemsChoiceType {
+
+ ///
+ FamilyName,
+
+ ///
+ GivenName,
+
+ ///
+ LinkingName,
+
+ ///
+ Numeration,
+
+ ///
+ Salutation,
+
+ ///
+ Title,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public enum PersonNameTypeType {
+
+ ///
+ former,
+
+ ///
+ variant,
+
+ ///
+ main,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:metadata:2011", IncludeInSchema=false)]
+ public enum ItemsChoiceType1 {
+
+ ///
+ OrganizationName,
+
+ ///
+ OrganizationNameIDRef,
+
+ ///
+ PersonName,
+
+ ///
+ PersonNameIDRef,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class InlineTermDefinitionTypeName : TextualType {
+
+ [XmlAttribute]
+ public bool preferred;
+
+ ///
+ [XmlIgnore]
+ public bool preferredSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class TermUseType : InlineTermDefinitionType {
+
+ [XmlAttribute]
+ public string href;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class TVAParentalGuidanceType : ParentalGuidanceType {
+
+ [XmlElement("ExplanatoryText")]
+ public ExplanationType[] ExplanatoryText;
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:mpeg7:2008", IncludeInSchema=false)]
+ public enum ItemChoiceType {
+
+ ///
+ MediaData16,
+
+ ///
+ MediaData64,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class TemporalSegmentLocatorType : MediaLocatorType {
+
+ [XmlElement("BytePosition", typeof(TemporalSegmentLocatorTypeBytePosition))]
+ [XmlElement("MediaTime", typeof(MediaTimeType))]
+ public object Item1;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class ImageLocatorType : MediaLocatorType {
+
+ [XmlElement("BytePosition", typeof(ImageLocatorTypeBytePosition))]
+ [XmlElement("MediaTimePoint", typeof(string))]
+ public object Item1;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ShortTitleType : TitleType {
+
+ [XmlAttribute]
+ public ushort length;
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public enum RmsFusMulticastAddressKindProtocol {
+
+ ///
+ [XmlEnum("1 SAP")]
+ Item1SAP,
+
+ ///
+ [XmlEnum("2 DVBSTP")]
+ Item2DVBSTP,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class PayloadListPayloadId {
+
+ [XmlElement("Segment")]
+ public PayloadListSegmentType[] Segment;
+
+ [XmlAttribute]
+ public string Id;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class DvbStpTransportMode : PayloadList {
+
+ [XmlAttribute]
+ public string Source;
+
+ [XmlAttribute]
+ public string Address;
+
+ [XmlAttribute]
+ public ushort Port;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class HttpTransportMode : PayloadList {
+
+ [XmlAttribute(DataType="anyURI")]
+ public string Location;
+
+ [XmlAttribute]
+ [DefaultValue("false")]
+ public string SOAP;
+
+ public HttpTransportMode() {
+ this.SOAP = "false";
+ }
+ }
+
+ ///
+ /// SRM ID and SRM file version
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMIDVerUType
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class SRMIDVerUType : SRMIDType {
+
+ [XmlAttribute]
+ public string SRMFileVersion;
+ }
+
+ ///
+ /// SRM ID and optional SRM file version
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMIDVerMType
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class SRMIDVerMType : SRMIDType {
+
+ [XmlAttribute]
+ public string SRMFileVersion;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class PackageTextualIdentifier : TextualIdentifier {
+
+ [XmlAttribute(DataType="positiveInteger")]
+ public string Priority;
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public enum ColorTypeType {
+
+ ///
+ color,
+
+ ///
+ blackAndWhite,
+
+ ///
+ blackAndWhiteAndColor,
+
+ ///
+ colorized,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
+ public enum AspectRatioTypeType {
+
+ ///
+ original,
+
+ ///
+ publication,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public enum ScanType {
+
+ ///
+ interlaced,
+
+ ///
+ progressive,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public enum ExtendedLanguageTypeType {
+
+ ///
+ original,
+
+ ///
+ dubbed,
+
+ ///
+ background,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class AudioLanguageType : ExtendedLanguageType {
+
+ [XmlAttribute]
+ public string purpose;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class TermNameType : TextualType {
+
+ [XmlAttribute]
+ public bool preferred;
+
+ ///
+ [XmlIgnore]
+ public bool preferredSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class AnnouncementSupportAnnouncement {
+
+ [XmlElement("DVBTriplet", typeof(DvbTriplet))]
+ [XmlElement("TextualIdentifier", typeof(TextualIdentifier))]
+ public object Item;
+
+ [XmlAttribute]
+ public string Type;
+
+ [XmlAttribute]
+ public string ReferenceType;
+
+ [XmlAttribute]
+ public string ComponentTag;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class MosaicDescriptionLogicalCell {
+
+ [XmlElement("ElementaryCell")]
+ public MosaicDescriptionLogicalCellElementaryCell[] ElementaryCell;
+
+ [XmlElement("AudioLink")]
+ public MosaicDescriptionLogicalCellAudioLink[] AudioLink;
+
+ [XmlElement("DVBTriplet", typeof(DvbTriplet))]
+ [XmlElement("PackageId", typeof(MosaicDescriptionLogicalCellPackageId))]
+ [XmlElement("TextualId", typeof(TextualIdentifier))]
+ public object Item;
+
+ [XmlAttribute]
+ public ushort CellId;
+
+ [XmlAttribute]
+ public string PresentationInfo;
+
+ [XmlAttribute]
+ public string LinkageInfo;
+
+ [XmlAttribute]
+ public string EventId;
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public enum PrimaryServiceInformationSource {
+
+ ///
+ Stream,
+
+ ///
+ XML,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public enum TransportProtocolType {
+
+ ///
+ [XmlEnum("RTP-AVP")]
+ RTPAVP,
+
+ ///
+ [XmlEnum("UDP-FEC")]
+ UDPFEC,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public enum StreamingType {
+
+ ///
+ rtp,
+
+ ///
+ udp,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public enum Usage {
+
+ ///
+ FCC,
+
+ ///
+ PiP,
+
+ ///
+ Main,
+
+ ///
+ HD,
+
+ ///
+ SD,
+
+ ///
+ [XmlEnum("3D")]
+ Item3D,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class CdsDownloadSessionDescriptionLocationDVBSTP {
+
+ [XmlAttribute]
+ public string Source;
+
+ [XmlAttribute]
+ public string Address;
+
+ [XmlAttribute]
+ public ushort Port;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class CdsDownloadSessionDescriptionLocationSAP {
+
+ [XmlAttribute]
+ public string Source;
+
+ [XmlAttribute]
+ public string Address;
+
+ [XmlAttribute]
+ public ushort Port;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class ProviderOfferingPull : PayloadList {
+
+ [XmlAttribute(DataType="anyURI")]
+ public string Location;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class FilteringAndSearchPreferencesType : DSType {
+
+ [XmlElement("CreationPreferences")]
+ public CreationPreferencesType[] CreationPreferences;
+
+ [XmlElement("ClassificationPreferences")]
+ public ClassificationPreferencesType[] ClassificationPreferences;
+
+ [XmlElement("SourcePreferences")]
+ public SourcePreferencesType[] SourcePreferences;
+
+ [XmlElement("PreferenceCondition")]
+ public PreferenceConditionType[] PreferenceCondition;
+
+ [XmlElement("FilteringAndSearchPreferences")]
+ public FilteringAndSearchPreferencesType[] FilteringAndSearchPreferences;
+
+ [XmlAttribute]
+ [DefaultValue(userChoiceType.@true)]
+ public userChoiceType @protected;
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public FilteringAndSearchPreferencesType() {
+ this.@protected = userChoiceType.@true;
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class BrowsingPreferencesType : DSType {
+
+ [XmlElement("SummaryPreferences")]
+ public SummaryPreferencesType[] SummaryPreferences;
+
+ [XmlElement("PreferenceCondition")]
+ public BrowsingPreferencesTypePreferenceCondition[] PreferenceCondition;
+
+ [XmlAttribute]
+ [DefaultValue(userChoiceType.@true)]
+ public userChoiceType @protected;
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public BrowsingPreferencesType() {
+ this.@protected = userChoiceType.@true;
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class UserActionHistoryType : DSType {
+
+ [XmlElement("ObservationPeriod")]
+ public TimeType[] ObservationPeriod;
+
+ [XmlElement("UserActionList")]
+ public UserActionListType[] UserActionList;
+
+ [XmlAttribute]
+ [DefaultValue(userChoiceType.@true)]
+ public userChoiceType @protected;
+
+ public UserActionHistoryType() {
+ this.@protected = userChoiceType.@true;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class PersonType : AgentType {
+
+ [XmlElement("Name", typeof(PersonNameType))]
+ [XmlElement("NameTerm", typeof(ControlledTermUseType))]
+ public object[] Items;
+
+ [XmlElement("Affiliation")]
+ public PersonTypeAffiliation[] Affiliation;
+
+ [XmlElement("Citizenship")]
+ public string[] Citizenship;
+
+ [XmlElement("Address", typeof(PlaceType))]
+ [XmlElement("AddressRef", typeof(ReferenceType))]
+ public object Item;
+
+ [XmlElement("ElectronicAddress")]
+ public ElectronicAddressType[] ElectronicAddress;
+
+ public TextualType PersonDescription;
+
+ public string Nationality;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class PersonGroupType : AgentType {
+
+ [XmlElement("Name")]
+ public PersonGroupTypeName[] Name;
+
+ [XmlElement("NameTerm")]
+ public PersonGroupTypeNameTerm[] NameTerm;
+
+ public TermUseType Kind;
+
+ [XmlElement("Member", typeof(PersonType))]
+ [XmlElement("MemberRef", typeof(ReferenceType))]
+ public object[] Items;
+
+ [XmlElement("Jurisdiction", typeof(PlaceType))]
+ [XmlElement("JurisdictionRef", typeof(ReferenceType))]
+ public object Item;
+
+ [XmlElement("Address", typeof(PlaceType))]
+ [XmlElement("AddressRef", typeof(ReferenceType))]
+ public object Item1;
+
+ public ElectronicAddressType ElectronicAddress;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class OrganizationType : AgentType {
+
+ [XmlElement("Name")]
+ public OrganizationTypeName[] Name;
+
+ [XmlElement("NameTerm")]
+ public OrganizationTypeNameTerm[] NameTerm;
+
+ public TermUseType Kind;
+
+ [XmlElement("Contact", typeof(AgentType))]
+ [XmlElement("ContactRef", typeof(ReferenceType))]
+ public object[] Items;
+
+ [XmlElement("Jurisdiction", typeof(PlaceType))]
+ [XmlElement("JurisdictionRef", typeof(ReferenceType))]
+ public object Item;
+
+ [XmlElement("Address", typeof(PlaceType))]
+ [XmlElement("AddressRef", typeof(ReferenceType))]
+ public object Item1;
+
+ public ElectronicAddressType ElectronicAddress;
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public enum ElectronicAddressTypeTelephoneType {
+
+ ///
+ central,
+
+ ///
+ secondary,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class ExplanationType : TextualType {
+
+ [XmlAttribute]
+ public ExplanationLengthType length;
+
+ ///
+ [XmlIgnore]
+ public bool lengthSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(CSAliasType))]
+ public partial class ClassificationSchemeAliasType : HeaderType {
+
+ [XmlAttribute(DataType="NMTOKEN")]
+ public string alias;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string href;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class PreferenceConditionType : DType {
+
+ public PlaceType Place;
+
+ [XmlElement("Time")]
+ public PreferenceConditionTypeTime[] Time;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class MediaFormatType : DType {
+
+ public ControlledTermUseType Content;
+
+ public ControlledTermUseType Medium;
+
+ public ControlledTermUseType FileFormat;
+
+ [XmlElement(DataType="nonNegativeInteger")]
+ public string FileSize;
+
+ public ControlledTermUseType System;
+
+ public MediaFormatTypeBitRate BitRate;
+
+ public MediaFormatTypeVisualCoding VisualCoding;
+
+ public MediaFormatTypeAudioCoding AudioCoding;
+
+ public ControlledTermUseType SceneCodingFormat;
+
+ public ControlledTermUseType GraphicsCodingFormat;
+
+ public ControlledTermUseType OtherCodingFormat;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(TypeName="UserActionListType", Namespace="urn:tva:mpeg7:2008")]
+ public partial class UserActionListType1 : DSType {
+
+ public TermUseType ActionType;
+
+ [XmlElement("UserAction")]
+ public UserActionType[] UserAction;
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string numOfInstances;
+
+ [XmlAttribute]
+ public string totalDuration;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(TypeName="UserActionHistoryType", Namespace="urn:tva:mpeg7:2008")]
+ public partial class UserActionHistoryType1 : DSType {
+
+ [XmlElement("ObservationPeriod")]
+ public TimeType[] ObservationPeriod;
+
+ [XmlElement("UserActionList")]
+ public UserActionListType1[] UserActionList;
+
+ [XmlAttribute]
+ [DefaultValue(userChoiceType.@true)]
+ public userChoiceType @protected;
+
+ public UserActionHistoryType1() {
+ this.@protected = userChoiceType.@true;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(TypeName="UsageHistoryType", Namespace="urn:tva:mpeg7:2008")]
+ public partial class UsageHistoryType1 : DSType {
+
+ public UserIdentifierType UserIdentifier;
+
+ [XmlElement("UserActionHistory")]
+ public UserActionHistoryType1[] UserActionHistory;
+
+ [XmlAttribute]
+ [DefaultValue(userChoiceType.@false)]
+ public userChoiceType allowCollection;
+
+ public UsageHistoryType1() {
+ this.allowCollection = userChoiceType.@false;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class SourcePreferencesType : DSType {
+
+ [XmlElement("DisseminationFormat")]
+ public SourcePreferencesTypeDisseminationFormat[] DisseminationFormat;
+
+ [XmlElement("DisseminationSource")]
+ public SourcePreferencesTypeDisseminationSource[] DisseminationSource;
+
+ [XmlElement("DisseminationLocation")]
+ public SourcePreferencesTypeDisseminationLocation[] DisseminationLocation;
+
+ [XmlElement("DisseminationDate")]
+ public SourcePreferencesTypeDisseminationDate[] DisseminationDate;
+
+ [XmlElement("Disseminator")]
+ public SourcePreferencesTypeDisseminator[] Disseminator;
+
+ [XmlElement("MediaFormat")]
+ public SourcePreferencesTypeMediaFormat[] MediaFormat;
+
+ [XmlAttribute]
+ public bool noRepeat;
+
+ ///
+ [XmlIgnore]
+ public bool noRepeatSpecified;
+
+ [XmlAttribute]
+ public bool noEncryption;
+
+ ///
+ [XmlIgnore]
+ public bool noEncryptionSpecified;
+
+ [XmlAttribute]
+ public bool noPayPerUse;
+
+ ///
+ [XmlIgnore]
+ public bool noPayPerUseSpecified;
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public SourcePreferencesType() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class CreationPreferencesType : DSType {
+
+ [XmlElement("Title")]
+ public CreationPreferencesTypeTitle[] Title;
+
+ [XmlElement("Creator")]
+ public CreationPreferencesTypeCreator[] Creator;
+
+ [XmlElement("Keyword")]
+ public CreationPreferencesTypeKeyword[] Keyword;
+
+ [XmlElement("Location")]
+ public CreationPreferencesTypeLocation[] Location;
+
+ [XmlElement("DatePeriod")]
+ public CreationPreferencesTypeDatePeriod[] DatePeriod;
+
+ [XmlElement("Tool")]
+ public CreationPreferencesTypeTool[] Tool;
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public CreationPreferencesType() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class ClassificationPreferencesType : DSType {
+
+ [XmlElement("Country")]
+ public ClassificationPreferencesTypeCountry[] Country;
+
+ [XmlElement("DatePeriod")]
+ public ClassificationPreferencesTypeDatePeriod[] DatePeriod;
+
+ [XmlElement("LanguageFormat")]
+ public ClassificationPreferencesTypeLanguageFormat[] LanguageFormat;
+
+ [XmlElement("Language")]
+ public ClassificationPreferencesTypeLanguage[] Language;
+
+ [XmlElement("CaptionLanguage")]
+ public ClassificationPreferencesTypeCaptionLanguage[] CaptionLanguage;
+
+ [XmlElement("Form")]
+ public ClassificationPreferencesTypeForm[] Form;
+
+ [XmlElement("Genre")]
+ public ClassificationPreferencesTypeGenre[] Genre;
+
+ [XmlElement("Subject")]
+ public ClassificationPreferencesTypeSubject[] Subject;
+
+ [XmlElement("Review")]
+ public ClassificationPreferencesTypeReview[] Review;
+
+ [XmlElement("ParentalGuidance")]
+ public ClassificationPreferencesTypeParentalGuidance[] ParentalGuidance;
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public ClassificationPreferencesType() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class SummaryPreferencesType : DSType {
+
+ [XmlElement("SummaryType")]
+ public SummaryPreferencesTypeSummaryType[] SummaryType;
+
+ [XmlElement("SummaryTheme")]
+ public SummaryPreferencesTypeSummaryTheme[] SummaryTheme;
+
+ public string SummaryDuration;
+
+ public string MinSummaryDuration;
+
+ public string MaxSummaryDuration;
+
+ [XmlElement(DataType="positiveInteger")]
+ public string NumOfKeyFrames;
+
+ [XmlElement(DataType="positiveInteger")]
+ public string MinNumOfKeyFrames;
+
+ [XmlElement(DataType="positiveInteger")]
+ public string MaxNumOfKeyFrames;
+
+ [XmlElement(DataType="positiveInteger")]
+ public string NumOfChars;
+
+ [XmlElement(DataType="positiveInteger")]
+ public string MinNumOfChars;
+
+ [XmlElement(DataType="positiveInteger")]
+ public string MaxNumOfChars;
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public SummaryPreferencesType() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(TVAPlaceType))]
+ public partial class PlaceType : DSType {
+
+ [XmlElement("Name")]
+ public TextualType[] Name;
+
+ [XmlElement("NameTerm")]
+ public ControlledTermUseType[] NameTerm;
+
+ public TermUseType Role;
+
+ public PlaceTypeGeographicPosition GeographicPosition;
+
+ [XmlElement("Region")]
+ public string[] Region;
+
+ [XmlElement("AdministrativeUnit")]
+ public PlaceTypeAdministrativeUnit[] AdministrativeUnit;
+
+ public PlaceTypePostalAddress PostalAddress;
+
+ public string InternalCoordinates;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(TermDefinitionType))]
+ public abstract partial class TermDefinitionBaseType : DSType {
+
+ [XmlElement("Name")]
+ public TermDefinitionBaseTypeName[] Name;
+
+ [XmlElement("Definition")]
+ public TextualType[] Definition;
+
+ [XmlAttribute(DataType="NMTOKEN")]
+ public string termID;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(ClassificationSchemeType))]
+ [XmlInclude(typeof(TVAClassificationSchemeType))]
+ public abstract partial class ClassificationSchemeBaseType : DSType {
+
+ [XmlElement("Import")]
+ public ReferenceType[] Import;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string uri;
+
+ [XmlAttribute(DataType="token")]
+ public string[] domain;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ [XmlInclude(typeof(TVATermDefinitionType))]
+ public abstract partial class TVATermDefinitionBaseType : DSType {
+
+ [XmlElement("Name")]
+ public TVATermDefinitionBaseTypeName[] Name;
+
+ [XmlElement("Definition")]
+ public TextualType[] Definition;
+
+ [XmlElement("EquivalentCSTerm", typeof(TVATermDefinitionBaseTypeEquivalentCSTerm))]
+ [XmlElement("mappingTerm", typeof(MappingTermType))]
+ public object[] Items;
+
+ [XmlAttribute(DataType="NMTOKEN")]
+ public string termID;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ [XmlInclude(typeof(UserActionType1))]
+ public partial class UserActionType : DSType {
+
+ public UserActionTypeActionTime ActionTime;
+
+ public UniqueIDType ProgramIdentifier;
+
+ [XmlElement("ActionDataItem")]
+ public ReferenceType[] ActionDataItem;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class UserActionListType : DSType {
+
+ public TermUseType ActionType;
+
+ [XmlElement("UserAction")]
+ public UserActionType1[] UserAction;
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string numOfInstances;
+
+ [XmlAttribute]
+ public string totalDuration;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class TVATermDefinitionType : TVATermDefinitionBaseType {
+
+ [XmlElement("Term")]
+ public TVATermDefinitionTypeTerm[] Term;
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public enum DeliveryModeType {
+
+ ///
+ streaming,
+
+ ///
+ download,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
+ public enum SegmentGroupTypeTypeValue {
+
+ ///
+ highlights,
+
+ ///
+ [XmlEnum("highlights/objects")]
+ highlightsobjects,
+
+ ///
+ [XmlEnum("highlights/events")]
+ highlightsevents,
+
+ ///
+ bookmarks,
+
+ ///
+ [XmlEnum("bookmarks/objects")]
+ bookmarksobjects,
+
+ ///
+ [XmlEnum("bookmarks/events")]
+ bookmarksevents,
+
+ ///
+ themeGroup,
+
+ ///
+ preview,
+
+ ///
+ [XmlEnum("preview/title")]
+ previewtitle,
+
+ ///
+ [XmlEnum("preview/slideshow")]
+ previewslideshow,
+
+ ///
+ tableOfContents,
+
+ ///
+ synopsis,
+
+ ///
+ shots,
+
+ ///
+ insertionPoints,
+
+ ///
+ alternativeGroups,
+
+ ///
+ alternativeSegments,
+
+ ///
+ other,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public enum SynopsisLengthType {
+
+ ///
+ @short,
+
+ ///
+ medium,
+
+ ///
+ @long,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
+ public enum GenreTypeType {
+
+ ///
+ main,
+
+ ///
+ secondary,
+
+ ///
+ other,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
+ public enum KeywordTypeType {
+
+ ///
+ main,
+
+ ///
+ secondary,
+
+ ///
+ other,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public enum serviceInformationNameLengthType {
+
+ ///
+ @short,
+
+ ///
+ medium,
+
+ ///
+ @long,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public partial class MemberOfType : BaseMemberOfType {
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public enum RatingTypeRatingSchemeStyle {
+
+ ///
+ higherBetter,
+
+ ///
+ lowerBetter,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
+ public enum ProgramGroupTypeTypeValue {
+
+ ///
+ series,
+
+ ///
+ show,
+
+ ///
+ programConcept,
+
+ ///
+ programCompilation,
+
+ ///
+ otherCollection,
+
+ ///
+ otherChoice,
+
+ ///
+ [XmlEnum("mini-series")]
+ miniseries,
+
+ ///
+ brand,
+
+ ///
+ automaticAcquisitionThemed,
+
+ ///
+ automaticAcquisitionNonThemed,
+
+ ///
+ clip,
+
+ ///
+ application,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
+ public enum DerivationReasonTypeValue {
+
+ ///
+ violence,
+
+ ///
+ language,
+
+ ///
+ sex,
+
+ ///
+ duration,
+
+ ///
+ other,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class TemporalSegmentLocatorTypeBytePosition {
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string offset;
+
+ [XmlAttribute(DataType="positiveInteger")]
+ public string length;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class ImageLocatorTypeBytePosition {
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string offset;
+
+ [XmlAttribute(DataType="positiveInteger")]
+ public string length;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class MosaicDescriptionLogicalCellElementaryCell {
+
+ [XmlAttribute]
+ public ushort CellId;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class MosaicDescriptionLogicalCellAudioLink {
+
+ [XmlAttribute]
+ public string Language;
+
+ [XmlAttribute]
+ public string ComponentTag;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ public partial class MosaicDescriptionLogicalCellPackageId {
+
+ [XmlAttribute]
+ public string Domain;
+
+ [XmlText]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class BrowsingPreferencesTypePreferenceCondition : PreferenceConditionType {
+
+ public TermUseType Genre;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class PersonTypeAffiliation {
+
+ [XmlElement("Organization", typeof(OrganizationType))]
+ [XmlElement("OrganizationRef", typeof(ReferenceType))]
+ [XmlElement("PersonGroup", typeof(PersonGroupType))]
+ [XmlElement("PersonGroupRef", typeof(ReferenceType))]
+ [XmlChoiceIdentifier("ItemElementName")]
+ public object Item;
+
+ [XmlIgnore]
+ public ItemChoiceType3 ItemElementName;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class PersonGroupTypeName : TextualType {
+
+ [XmlAttribute]
+ public PersonGroupTypeNameType type;
+
+ ///
+ [XmlIgnore]
+ public bool typeSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class PersonGroupTypeNameTerm : ControlledTermUseType {
+
+ [XmlAttribute]
+ public PersonGroupTypeNameTermType type;
+
+ ///
+ [XmlIgnore]
+ public bool typeSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class OrganizationTypeName : TextualType {
+
+ [XmlAttribute]
+ public OrganizationTypeNameType type;
+
+ ///
+ [XmlIgnore]
+ public bool typeSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class OrganizationTypeNameTerm : ControlledTermUseType {
+
+ [XmlAttribute]
+ public OrganizationTypeNameTermType type;
+
+ ///
+ [XmlIgnore]
+ public bool typeSpecified;
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:metadata:2011")]
+ public enum ExplanationLengthType {
+
+ ///
+ @short,
+
+ ///
+ medium,
+
+ ///
+ @long,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class PreferenceConditionTypeTime : TimeType {
+
+ [XmlAttribute]
+ [DefaultValue("none")]
+ public string recurrence;
+
+ [XmlAttribute(DataType="positiveInteger")]
+ public string numOfRecurrences;
+
+ public PreferenceConditionTypeTime() {
+ this.recurrence = "none";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class MediaFormatTypeBitRate {
+
+ [XmlAttribute]
+ [DefaultValue(false)]
+ public bool variable;
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string minimum;
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string average;
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string maximum;
+
+ [XmlText(DataType="nonNegativeInteger")]
+ public string Value;
+
+ public MediaFormatTypeBitRate() {
+ this.variable = false;
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class MediaFormatTypeVisualCoding {
+
+ public MediaFormatTypeVisualCodingFormat Format;
+
+ public MediaFormatTypeVisualCodingPixel Pixel;
+
+ public MediaFormatTypeVisualCodingFrame Frame;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class MediaFormatTypeAudioCoding {
+
+ public ControlledTermUseType Format;
+
+ public MediaFormatTypeAudioCodingAudioChannels AudioChannels;
+
+ public MediaFormatTypeAudioCodingSample Sample;
+
+ public string Emphasis;
+
+ public ControlledTermUseType Presentation;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class SourcePreferencesTypeDisseminationFormat : TermUseType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public SourcePreferencesTypeDisseminationFormat() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class SourcePreferencesTypeDisseminationSource : TextualType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public SourcePreferencesTypeDisseminationSource() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class SourcePreferencesTypeDisseminationLocation : PlaceType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public SourcePreferencesTypeDisseminationLocation() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class SourcePreferencesTypeDisseminationDate : TimeType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public SourcePreferencesTypeDisseminationDate() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class SourcePreferencesTypeDisseminator : MediaAgentType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public SourcePreferencesTypeDisseminator() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class SourcePreferencesTypeMediaFormat : MediaFormatType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public SourcePreferencesTypeMediaFormat() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class CreationPreferencesTypeTitle : TitleType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public CreationPreferencesTypeTitle() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class CreationPreferencesTypeCreator : CreatorType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public CreationPreferencesTypeCreator() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class CreationPreferencesTypeKeyword : TextualType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public CreationPreferencesTypeKeyword() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class CreationPreferencesTypeLocation : PlaceType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public CreationPreferencesTypeLocation() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class CreationPreferencesTypeDatePeriod : TimeType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public CreationPreferencesTypeDatePeriod() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class CreationPreferencesTypeTool : TermUseType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public CreationPreferencesTypeTool() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class ClassificationPreferencesTypeCountry {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ [XmlText]
+ public string Value;
+
+ public ClassificationPreferencesTypeCountry() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class ClassificationPreferencesTypeDatePeriod : TimeType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public ClassificationPreferencesTypeDatePeriod() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class ClassificationPreferencesTypeLanguageFormat {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ [XmlText]
+ public string Value;
+
+ public ClassificationPreferencesTypeLanguageFormat() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class ClassificationPreferencesTypeLanguage : ExtendedLanguageType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public ClassificationPreferencesTypeLanguage() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class ClassificationPreferencesTypeCaptionLanguage {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ [XmlText(DataType="language")]
+ public string Value;
+
+ public ClassificationPreferencesTypeCaptionLanguage() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class ClassificationPreferencesTypeForm : TermUseType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public ClassificationPreferencesTypeForm() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class ClassificationPreferencesTypeGenre : TermUseType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public ClassificationPreferencesTypeGenre() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class ClassificationPreferencesTypeSubject : TextualType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public ClassificationPreferencesTypeSubject() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class ClassificationPreferencesTypeReview {
+
+ public RatingType Rating;
+
+ public AgentType Reviewer;
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public ClassificationPreferencesTypeReview() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class ClassificationPreferencesTypeParentalGuidance : ParentalGuidanceType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public ClassificationPreferencesTypeParentalGuidance() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class SummaryPreferencesTypeSummaryType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ [XmlText]
+ public string Value;
+
+ public SummaryPreferencesTypeSummaryType() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class SummaryPreferencesTypeSummaryTheme : TextualType {
+
+ [XmlAttribute(DataType="integer")]
+ [DefaultValue("10")]
+ public string preferenceValue;
+
+ public SummaryPreferencesTypeSummaryTheme() {
+ this.preferenceValue = "10";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class PlaceTypeGeographicPosition {
+
+ public GeographicPointType Point;
+
+ [XmlAttribute]
+ public string datum;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class PlaceTypeAdministrativeUnit {
+
+ [XmlAttribute]
+ public string type;
+
+ [XmlText]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class PlaceTypePostalAddress {
+
+ [XmlElement("AddressLine")]
+ public TextualType[] AddressLine;
+
+ public TextualType PostingIdentifier;
+
+ [XmlAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")]
+ public string lang;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class TermDefinitionBaseTypeName : TextualType {
+
+ [XmlAttribute]
+ public bool preferred;
+
+ ///
+ [XmlIgnore]
+ public bool preferredSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class TermDefinitionType : TermDefinitionBaseType {
+
+ [XmlElement("Term")]
+ public TermDefinitionTypeTerm[] Term;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(Namespace="urn:tva:mpeg7:2008")]
+ public partial class ClassificationSchemeType : ClassificationSchemeBaseType {
+
+ [XmlElement("Term")]
+ public TermDefinitionType[] Term;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
+ public partial class TVATermDefinitionBaseTypeName : TextualType {
+
+ [XmlAttribute]
+ public bool preferred;
+
+ ///
+ [XmlIgnore]
+ public bool preferredSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
+ public partial class TVATermDefinitionBaseTypeEquivalentCSTerm {
+
+ [XmlAttribute]
+ public string href;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class UserActionTypeActionTime {
+
+ public MediaTimeType MediaTime;
+
+ public TimeType GeneralTime;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(TypeName="UserActionType", Namespace="urn:tva:metadata:2011")]
+ public partial class UserActionType1 : UserActionType {
+
+ [XmlElement(DataType="anyURI")]
+ public string ProgramLocation;
+
+ public RatingType Rating;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
+ public partial class TVATermDefinitionTypeTerm : TVATermDefinitionType {
+
+ [XmlAttribute]
+ [DefaultValue("NT")]
+ public string relation;
+
+ public TVATermDefinitionTypeTerm() {
+ this.relation = "NT";
+ }
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(Namespace="urn:tva:mpeg7:2008", IncludeInSchema=false)]
+ public enum ItemChoiceType3 {
+
+ ///
+ Organization,
+
+ ///
+ OrganizationRef,
+
+ ///
+ PersonGroup,
+
+ ///
+ PersonGroupRef,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public enum PersonGroupTypeNameType {
+
+ ///
+ former,
+
+ ///
+ variant,
+
+ ///
+ main,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public enum PersonGroupTypeNameTermType {
+
+ ///
+ former,
+
+ ///
+ variant,
+
+ ///
+ main,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public enum OrganizationTypeNameType {
+
+ ///
+ former,
+
+ ///
+ variant,
+
+ ///
+ main,
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public enum OrganizationTypeNameTermType {
+
+ ///
+ former,
+
+ ///
+ variant,
+
+ ///
+ main,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class MediaFormatTypeVisualCodingFormat : ControlledTermUseType {
+
+ [XmlAttribute]
+ [DefaultValue("color")]
+ public string colorDomain;
+
+ public MediaFormatTypeVisualCodingFormat() {
+ this.colorDomain = "color";
+ }
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class MediaFormatTypeVisualCodingPixel {
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string resolution;
+
+ [XmlAttribute]
+ public double aspectRatio;
+
+ ///
+ [XmlIgnore]
+ public bool aspectRatioSpecified;
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string bitsPer;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class MediaFormatTypeVisualCodingFrame {
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string height;
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string width;
+
+ [XmlAttribute]
+ public double aspectRatio;
+
+ ///
+ [XmlIgnore]
+ public bool aspectRatioSpecified;
+
+ [XmlAttribute]
+ public double rate;
+
+ ///
+ [XmlIgnore]
+ public bool rateSpecified;
+
+ [XmlAttribute]
+ public MediaFormatTypeVisualCodingFrameStructure structure;
+
+ ///
+ [XmlIgnore]
+ public bool structureSpecified;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class MediaFormatTypeAudioCodingAudioChannels {
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string front;
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string side;
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string rear;
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string lfe;
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string track;
+
+ [XmlText(DataType="nonNegativeInteger")]
+ public string Value;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class MediaFormatTypeAudioCodingSample {
+
+ [XmlAttribute]
+ public double rate;
+
+ ///
+ [XmlIgnore]
+ public bool rateSpecified;
+
+ [XmlAttribute(DataType="nonNegativeInteger")]
+ public string bitsPer;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public partial class TermDefinitionTypeTerm : TermDefinitionType {
+
+ [XmlAttribute]
+ [DefaultValue("NT")]
+ public string relation;
+
+ public TermDefinitionTypeTerm() {
+ this.relation = "NT";
+ }
+ }
+
+ ///
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:mpeg7:2008")]
+ public enum MediaFormatTypeVisualCodingFrameStructure {
+
+ ///
+ progressive,
+
+ ///
+ interlaced,
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ [XmlRoot(Namespace="urn:dvb:metadata:iptv:sdns:2012-1", IsNullable=false)]
+ public partial class CoDAnnounceDescribe {
+
+ public BasicContentDescriptionType ContentDescription;
+
+ public FecInfo FECInfo;
+
+ public RETInfoType RETInfo;
+
+ public ServerBasedEnhancementServiceInfoType ServerBasedEnhancementServiceInfo;
+
+ [XmlAttribute(DataType="anyURI")]
+ public string RTSPControlURL;
+
+ [XmlAttribute]
+ public StreamingType Streaming;
+
+ ///
+ [XmlIgnore]
+ public bool StreamingSpecified;
+ }
+
+ ///
+ /// [en] Provides a list of SRM Download Services
+ ///
+ /// Schema origin: urn:dvb:metadata:iptv:sdns:2012-1:SRMDownloadRecord
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:dvb:metadata:iptv:sdns:2012-1")]
+ [XmlRoot(Namespace="urn:dvb:metadata:iptv:sdns:2012-1", IsNullable=false)]
+ public partial class SRMDownloadRecord : OfferingBase {
+
+ [XmlElement("SRMDownloadService")]
+ public SRMDownloadServiceType[] SRMDownloadService;
+ }
+
+ [GeneratedCode("myxsdtool", "0.0.0.0")]
+ [Serializable]
+ [DebuggerStepThrough]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType=true, Namespace="urn:tva:metadata:2011")]
+ [XmlRoot(Namespace="urn:tva:metadata:2011", IsNullable=false)]
+ public partial class TVAContentLinks {
+
+ [XmlElement("RelatedMaterial")]
+ public RelatedMaterialType[] RelatedMaterial;
+ }
+}
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/Xsd.Unified/tva_metadata_3-1_v171.xsd b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/Xsd.Unified/tva_metadata_3-1_v171.xsd
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/v010501/Xsd.Unified/tva_metadata_3-1_v171.xsd
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/Xsd.Unified/tva_metadata_3-1_v171.xsd
diff --git a/1.5 'Kruger 60'/Etsi.Ts102034/v010501/Xsd.Unified/tva_mpeg7_2008.xsd b/1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/Xsd.Unified/tva_mpeg7_2008.xsd
similarity index 100%
rename from 1.5 'Kruger 60'/Etsi.Ts102034/v010501/Xsd.Unified/tva_mpeg7_2008.xsd
rename to 1.5 'Kruger 60'/Assemblies/Etsi.Ts102034/v010501/Xsd.Unified/tva_mpeg7_2008.xsd
diff --git a/1.5 'Kruger 60'/IpTv.MovistarPlus/EpgInfoProvider.cs b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/EpgInfoProvider.cs
similarity index 91%
rename from 1.5 'Kruger 60'/IpTv.MovistarPlus/EpgInfoProvider.cs
rename to 1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/EpgInfoProvider.cs
index aa8d742d..4f4c3076 100644
--- a/1.5 'Kruger 60'/IpTv.MovistarPlus/EpgInfoProvider.cs
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/EpgInfoProvider.cs
@@ -1,167 +1,172 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
-using System.Text;
-using Newtonsoft.Json;
-using Project.IpTv.Core.IpTvProvider.EPG;
-using Project.IpTv.Services.EPG;
-using Project.IpTv.UiServices.Discovery;
-
-namespace Project.IpTv.MovistarPlus
-{
- internal class EpgInfoProvider: IEpgInfoProvider
- {
- #region IEpgInfoProvider Members
-
- // TODO: get from xml settings, updated from http://www-60.svc.imagenio.telefonica.net:2001/appserver/mvtv.do?action=getConfigurationParams
- private const string EpgThumbnailScheme = "http";
- private const string EpgThumbnailHost = "www-60.svc.imagenio.telefonica.net";
- private const int EpgThumbnailPort = 2001;
- private const string EpgThumbnailPortraitSubPath = "portrait/";
- private const string EpgThumbnailLandscapeSubPath = "landscape/";
- private const string EpgThumbnailBigSubPath = "big/";
- private const string EpgThumbnailUrlFormat = "appclient/incoming/covers/programmeImages/{0}{1}{2}/{3}.jpg";
-
- public EpgInfoProviderCapabilities Capabilities
- {
- get
- {
- return EpgInfoProviderCapabilities.ExtendedInfo |
- EpgInfoProviderCapabilities.IndependentProgramThumbnail;
- } // get
- } // Capabilities
-
- public ExtendedEpgEvent GetEpgInfo(UiBroadcastService service, EpgEvent epgEvent, bool portrait)
- {
- var request = GetExtendedInfoRequest(epgEvent);
- if (request == null) return null;
-
- var movistarEpgInfoResponse = SendRequest(request);
- if (movistarEpgInfoResponse.Code != 0) return null;
-
- var result = ToExtendedEpgEvent(movistarEpgInfoResponse.Data);
- result.UrlThumbnail = GetEpgProgramThumbnailUrl(service, epgEvent, portrait);
-
- return result;
- } // GetEpgInfo
-
- public string GetEpgProgramThumbnailUrl(UiBroadcastService service, EpgEvent epgEvent, bool portrait)
- {
- try
- {
- var crid = MovistarCrId.Get(epgEvent.CRID);
- if (crid == null) return null;
-
- var builder = new UriBuilder();
- builder.Scheme = EpgThumbnailScheme;
- builder.Host = EpgThumbnailHost;
- builder.Port = EpgThumbnailPort;
- builder.Path = string.Format(EpgThumbnailUrlFormat,
- portrait? EpgThumbnailPortraitSubPath: EpgThumbnailLandscapeSubPath,
- EpgThumbnailBigSubPath,
- crid.ContentIdRoot, crid.ContentId);
-
- return builder.Uri.ToString();
- }
- catch
- {
- // ignore
- return null;
- } // try-catch
- } // GetEpgProgramThumbnailUrl
-
- #endregion
-
- public ExtendedEpgEvent ToExtendedEpgEvent(MovistarEpgInfo info)
- {
- var result = new ExtendedEpgEvent();
-
- // Title
- if ((info.LongTitle != null) && (info.LongTitle.Length > 0))
- {
- result.Title = info.LongTitle[0];
- }
- else if (info.Title != null)
- {
- result.Title = info.Title;
- } // if-else if
-
- // Original title
- if ((info.OriginalLongTitle != null) && (info.OriginalLongTitle.Length > 0))
- {
- result.OriginalTitle = info.OriginalLongTitle[0];
- }
- else if ((info.OriginalTitle != null) && (info.OriginalTitle.Length > 0))
- {
- result.OriginalTitle = info.OriginalTitle[0];
- } // if-else if
-
- // Genre / Subgrenre
- result.Genre = info.Genre;
- result.SubGenre = info.SubGenre;
-
- // Synopsis
- result.Synopsis = info.Description;
-
- // Directors
- result.Directors = Split(info.Directors, ',');
-
- // Actors
- result.Actors = Split(info.MainActors, ',');
-
- // Producers
- result.Producers = Split(info.Producer, ',');
-
- // ScriptWriters
- result.ScriptWriters = Split(info.ScriptWriter, ',');
-
- // Country
- result.Country = Split(info.Countries, ',');
-
- // Production date
- result.ProductionDate = Split(info.ProductionDate, ',');
-
- return result;
- } // ToExtendedEpgEvent
-
- private string[] Split(string[] data, params char[] chars)
- {
- if ((data == null) || (data.Length == 0)) return null;
-
- var q = from element in data
- let split = element.Split(chars)
- from item in split
- let text = item.Trim()
- where text != ""
- select text;
-
- return q.ToArray();
- } // Split
-
- private UriBuilder GetExtendedInfoRequest(EpgEvent epgEvent)
- {
- var crid = MovistarCrId.Get(epgEvent.CRID);
- if (crid == null) return null;
-
- var builder = new UriBuilder();
- builder.Scheme = "http";
- builder.Host = "www-60.svc.imagenio.telefonica.net";
- builder.Port = 2001;
- builder.Path = "appserver/mvtv.do";
- builder.Query = string.Format("action=getEpgInfo&extInfoID={0}&tvWholesaler={1}", crid.ContentId, 1);
-
- return builder;
- } // GetExtendedInfoRequest
-
- public static T SendRequest(UriBuilder uri)
- {
- using (var client = new WebClient())
- {
- var data = client.DownloadData(uri.Uri);
- var jsonData = Encoding.UTF8.GetString(data);
- return JsonConvert.DeserializeObject(jsonData);
- } // using client
- } // SendRequest
- } // class EpgInfoProvider
-} // namespace
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace IpTviewr.IpTvServices.MovistarPlus
+{
+ /*
+ internal class EpgInfoProvider: IEpgInfoProvider
+ {
+ #region IEpgInfoProvider Members
+
+ // TODO: get from xml settings, updated from http://www-60.svc.imagenio.telefonica.net:2001/appserver/mvtv.do?action=getConfigurationParams
+ private const string EpgThumbnailScheme = "http";
+ private const string EpgThumbnailHost = "www-60.svc.imagenio.telefonica.net";
+ private const int EpgThumbnailPort = 2001;
+ private const string EpgThumbnailPortraitSubPath = "portrait/";
+ private const string EpgThumbnailLandscapeSubPath = "landscape/";
+ private const string EpgThumbnailBigSubPath = "big/";
+ private const string EpgThumbnailUrlFormat = "appclient/incoming/covers/programmeImages/{0}{1}{2}/{3}.jpg";
+
+ public EpgInfoProviderCapabilities Capabilities
+ {
+ get
+ {
+ return EpgInfoProviderCapabilities.ExtendedInfo |
+ EpgInfoProviderCapabilities.IndependentProgramThumbnail;
+ } // get
+ } // Capabilities
+
+ public ExtendedEpgEvent GetEpgInfo(UiBroadcastService service, EpgEvent epgEvent, bool portrait)
+ {
+ var request = GetExtendedInfoRequest(epgEvent);
+ if (request == null) return null;
+
+ var movistarEpgInfoResponse = SendRequest(request);
+ if (movistarEpgInfoResponse.Code != 0) return null;
+
+ var result = ToExtendedEpgEvent(movistarEpgInfoResponse.Data);
+ result.UrlThumbnail = GetEpgProgramThumbnailUrl(service, epgEvent, portrait);
+
+ return result;
+ } // GetEpgInfo
+
+ public string GetEpgProgramThumbnailUrl(UiBroadcastService service, EpgEvent epgEvent, bool portrait)
+ {
+ try
+ {
+ var crid = MovistarCrId.Get(epgEvent.CRID);
+ if (crid == null) return null;
+
+ var builder = new UriBuilder();
+ builder.Scheme = EpgThumbnailScheme;
+ builder.Host = EpgThumbnailHost;
+ builder.Port = EpgThumbnailPort;
+ builder.Path = string.Format(EpgThumbnailUrlFormat,
+ portrait? EpgThumbnailPortraitSubPath: EpgThumbnailLandscapeSubPath,
+ EpgThumbnailBigSubPath,
+ crid.ContentIdRoot, crid.ContentId);
+
+ return builder.Uri.ToString();
+ }
+ catch
+ {
+ // ignore
+ return null;
+ } // try-catch
+ } // GetEpgProgramThumbnailUrl
+
+ #endregion
+
+ public ExtendedEpgEvent ToExtendedEpgEvent(MovistarEpgInfo info)
+ {
+ var result = new ExtendedEpgEvent();
+
+ // Title
+ if ((info.LongTitle != null) && (info.LongTitle.Length > 0))
+ {
+ result.Title = info.LongTitle[0];
+ }
+ else if (info.Title != null)
+ {
+ result.Title = info.Title;
+ } // if-else if
+
+ // Original title
+ if ((info.OriginalLongTitle != null) && (info.OriginalLongTitle.Length > 0))
+ {
+ result.OriginalTitle = info.OriginalLongTitle[0];
+ }
+ else if ((info.OriginalTitle != null) && (info.OriginalTitle.Length > 0))
+ {
+ result.OriginalTitle = info.OriginalTitle[0];
+ } // if-else if
+
+ // Genre / Subgrenre
+ result.Genre = info.Genre;
+ result.SubGenre = info.SubGenre;
+
+ // Synopsis
+ result.Synopsis = info.Description;
+
+ // Directors
+ result.Directors = Split(info.Directors, ',');
+
+ // Actors
+ result.Actors = Split(info.MainActors, ',');
+
+ // Producers
+ result.Producers = Split(info.Producer, ',');
+
+ // ScriptWriters
+ result.ScriptWriters = Split(info.ScriptWriter, ',');
+
+ // Country
+ result.Country = Split(info.Countries, ',');
+
+ // Production date
+ result.ProductionDate = Split(info.ProductionDate, ',');
+
+ return result;
+ } // ToExtendedEpgEvent
+
+ private string[] Split(string[] data, params char[] chars)
+ {
+ if ((data == null) || (data.Length == 0)) return null;
+
+ var q = from element in data
+ let split = element.Split(chars)
+ from item in split
+ let text = item.Trim()
+ where text != ""
+ select text;
+
+ return q.ToArray();
+ } // Split
+
+ private UriBuilder GetExtendedInfoRequest(EpgEvent epgEvent)
+ {
+ var crid = MovistarCrId.Get(epgEvent.CRID);
+ if (crid == null) return null;
+
+ var builder = new UriBuilder();
+ builder.Scheme = "http";
+ builder.Host = "www-60.svc.imagenio.telefonica.net";
+ builder.Port = 2001;
+ builder.Path = "appserver/mvtv.do";
+ builder.Query = string.Format("action=getEpgInfo&extInfoID={0}&tvWholesaler={1}", crid.ContentId, 1);
+
+ return builder;
+ } // GetExtendedInfoRequest
+
+ public static T SendRequest(UriBuilder uri)
+ {
+ using (var client = new WebClient())
+ {
+ var data = client.DownloadData(uri.Uri);
+ var jsonData = Encoding.UTF8.GetString(data);
+ return JsonConvert.DeserializeObject(jsonData);
+ } // using client
+ } // SendRequest
+ } // class EpgInfoProvider
+ */
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Implementation/MovistarProviderTexts.cs b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Implementation/MovistarProviderTexts.cs
new file mode 100644
index 00000000..a34dc01e
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Implementation/MovistarProviderTexts.cs
@@ -0,0 +1,35 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using IpTviewr.IpTvServices.MovistarPlus.Properties;
+
+namespace IpTviewr.IpTvServices.MovistarPlus.Implementation
+{
+ internal class MovistarProviderTexts : ITvServiceProviderTexts
+ {
+ public string MenuEntry => Texts.ProviderMenuEntry;
+ public string MenuSelect => Texts.ProviderMenuSelect;
+ public string MenuDetails => Texts.ProviderMenuDetails;
+ public string NoSelection => Texts.ProviderNoSelection;
+ public string ListRefreshError => Texts.ProviderListRefreshError;
+ public string ObtainingList => Texts.ProviderObtainingList;
+ public string ParsingList => Texts.ProviderParsingList;
+ public string PropertiesCaption => Texts.ProviderPropertiesCaption;
+ public string LogoLoadError => Texts.ProviderLogoLoadError;
+ public string LogoNotFound => Texts.ProviderLogoNotFound;
+ public string UnknownDisplayDescription => Texts.ProviderUnknownDisplayDescription;
+ public string FormatFriendlyName => Texts.ProviderFormatFriendlyName;
+ public string FormatUnknownName => Texts.ProviderFormatUnknownName;
+ public string SelectCaption => Texts.ProviderSelectCaption;
+ } // class MovistarProviderTexts
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Implementation/MovistarTexts.cs b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Implementation/MovistarTexts.cs
new file mode 100644
index 00000000..03fcd36d
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Implementation/MovistarTexts.cs
@@ -0,0 +1,22 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using IpTviewr.IpTvServices.Implementation;
+
+namespace IpTviewr.IpTvServices.MovistarPlus.Implementation
+{
+ public sealed class MovistarTexts: ServiceTexts
+ {
+ protected override ITvServiceProviderTexts GetProviderTexts() => new MovistarProviderTexts();
+ } // class MovistarTexts
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/IpTv.MovistarPlus.csproj b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/IpTv.MovistarPlus.csproj
new file mode 100644
index 00000000..f91f0926
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/IpTv.MovistarPlus.csproj
@@ -0,0 +1,112 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {E1748F45-DD50-4479-96F6-F7EBA6F3E28B}
+ Library
+ Properties
+ IpTviewr.IpTvServices.MovistarPlus
+ IpTViewr.MovistarPlus
+ v4.6.2
+ 512
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ false
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ false
+
+
+
+ ..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll
+
+
+
+
+
+
+
+
+
+ Properties\AssemblySolutionInfo.cs
+
+
+
+
+
+
+
+
+
+
+
+ True
+ True
+ Texts.resx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {36b8e0a1-f1b1-498d-8fe7-a39bb7fd68ca}
+ IpTviewr.IpTvServices
+
+
+ {8da15060-5a78-4f89-a9f1-7aa56b0d622c}
+ IpTviewr.Common
+
+
+ {A722DE9D-AE51-479C-825F-A19F4C69BD75}
+ UiServices.Config
+
+
+
+
+
+ ResXFileCodeGenerator
+ Texts.Designer.cs
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/IpTvServiceMovistarPlus.cs b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/IpTvServiceMovistarPlus.cs
new file mode 100644
index 00000000..6d5d4fa5
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/IpTvServiceMovistarPlus.cs
@@ -0,0 +1,41 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using IpTviewr.IpTvServices.MovistarPlus.Implementation;
+using System.ComponentModel.Composition;
+using IpTviewr.Common.Configuration;
+
+namespace IpTviewr.IpTvServices.MovistarPlus
+{
+ [Export(typeof(ITvService))]
+ public class IpTvServiceMovistarPlus : IpTvService
+ {
+
+ #region IpTvService implementation
+
+ public override IEpgInfoProvider EpgInfo { get; }
+
+ public override InitializationResult Initialize()
+ {
+ var result = base.Initialize();
+ return result.IsError ? result : InitializationResult.Ok;
+
+ //EpgInfo = new EpgInfoProvider();
+ // return InitializationResult.Ok;
+ } // Initialize
+
+ protected override ITvServiceTexts CreateServiceTexts() => new MovistarTexts();
+
+ #endregion
+ } // class IpTvServiceMovistarPlus
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/LICENSE.ES.MD b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/LICENSE.ES.MD
new file mode 100644
index 00000000..8584ca02
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/LICENSE.ES.MD
@@ -0,0 +1,189 @@
+# Biblioteca 'IpTViewr.MovistarPlus'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Términos y condiciones de uso
+
+Este COMPONENTE (el “SOFTWARE”), ya sea en forma de código binario o fuente, está **sujeto a los términos de la Licencia Recíproca de Microsoft _“Microsoft Reciprocal License” (Ms-RL)_**, excepto en lo relativo a componentes de terceras partes (“THIRD-PARTY”). \
+Todos los demás derechos están reservados por el/los autor(es) del software.
+
+**EL SOFTWARE SE PROPORCIONA “TAL CUAL”, SIN GARANTÍA DE NINGÚN TIPO**, expresa o implícita, incluyendo (pero no limitándose a) las garantías de comerciabilidad, idoneidad para un propósito particular y no infracción. \
+En ningún caso, los autores o titulares del Copyright serán responsables de ninguna reclamación, daños o cualquier otra responsabilidad, ya sea en una acción de contrato, agravio o cualquier otro motivo, con o sin relación con el software o el uso u otros aspectos del software.
+
+Todas las marcas comerciales, marcas de servicio, nombres comerciales, nombres de productos y logotipos son propiedad de sus respectivos propietarios.
+Su uso en el contexto de este software no constituye un respaldo ni apoyo por parte de sus respectivos propietarios.
+
+----------------------------------------------------------------------
+
+
+_A continuación se proporciona una traducción aproximada de la **Licencia recíproca de Microsoft (Ms-RL)** al español. Esta traducción carece de cualquier validez legal._
+
+Esta licencia rige el uso del software que lo acompaña. Si utiliza el software, usted acepta esta licencia. Si no acepta la licencia, no use el software.
+
+1. **Definiciones**
+
+ - Los términos “reproducir”, “reproducción”, “obras derivadas” y “distribución” tienen el mismo significado en este acuerdo de licencia que en la Ley de Derechos de Autor de EE. UU.
+ - Una “contribución” es el software original, o cualquier adición o cambio al software.
+ - Un “colaborador” es cualquier persona que distribuye su contribución bajo esta licencia.
+ - Las “patentes licenciadas” son declaraciones de patente de un contribuyente y que aplican directamente sobre su contribución.
+
+2. **Concesión de derechos**
+
+ - (A) _Concesión de derechos de autor:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le otorga una licencia de copyright no exclusiva, mundial y libre de regalías para reproducir su contribución, preparar crear trabajos derivados de su contribución, y distribuir su contribución o cualquier trabajo derivado que usted cree.
+ - (B) _Concesión de patentes:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le concede una licencia no exclusiva, mundial y libre de regalías bajo sus patentes autorizadas para realizar, haber realizado, usar, vender, ofrecer para la venta, importar y/o disponer de su contribución en el software o trabajos derivados de la contribución en el software.
+
+3. **Condiciones y limitaciones**
+
+ - (A) _Derechos recíprocos:_ Para cualquier archivo que distribuya que contenga código del software (en código fuente o formato binario), debe proporcionar a los destinatarios el código fuente de ese archivo junto con una copia de esta licencia, que será la licencia que regirá sobre el archivo. Puede licenciar otros archivos que son totalmente de su propiedad y que no contengan código alguno del software en los términos de licenciamiento que usted elija.
+ - (B) _Sin licencia de marca comercial:_ esta licencia no le concede el derecho a utilizar el nombre, el logotipo o las marcas comerciales de ningún colaborador.
+ - (C) Si presenta una reclamación de patente contra un contribuyente por patentes que usted alega son infringidas por el software, la licencia de patente sobre el software que dicho colaborador le proporcionó finaliza automáticamente.
+ - (D) Si distribuye cualquier parte del software, debe conservar todos los avisos de copyright, patente, marca comercial y atribución que están presentes en el software.
+ - (E) Si distribuye cualquier porción del software en forma de código fuente, puede hacerlo solo bajo esta licencia incluyendo una copia completa de esta licencia con su distribución. Si distribuye cualquier porción del software en forma de código compilado u objeto, solo puede hacerlo bajo una licencia que cumpla con esta licencia.
+ - (F) El software se proporciona “tal cual está”. Usted asume los riesgos derivados de su uso. Los colaboradores no proporcionan expresamente garantías o condiciones. Es posible que tenga derechos adicionales como consumidor bajo las leyes locales que esta licencia no puede cambiar. En la medida permitida por las leyes locales, los contribuyentes excluyen las garantías implícitas de comerciabilidad, idoneidad para un propósito particular y no infracción.
+
+## Licencias de uso
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+ * [The MIT License (MIT)]
+ * [Microsoft® Exception Message Box License Terms]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** aplica a los siguientes componentes:
+
+#### 1. DvbStpClient
+_Componente por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 2. Etsi.Ts102034
+_Componente por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 3. IpTviewr.Common
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 4. IpTViewr.IpTvServices
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 5. IpTViewr.MovistarPlus
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 6. Services.EpgDiscovery
+_Componente por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 7. UiServices.Common
+_Componente por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 8. UiServices.Configuration
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
+### The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+> **'The MIT License (MIT)'** aplica a los siguientes **componentes de terceros _(“THIRD-PARTY”)_:**
+
+#### 1. JetBrains.Annotations
+_Paquete 'nuget' por JetBrains_
+
+**Copyright (c) 2016 JetBrains http://www.jetbrains.com**
+
+ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+#### 2. Newtonsoft.Json
+_Paquete 'nuget' por James Newton-King_
+
+**Copyright (c) 2007 James Newton-King**
+
+Json.NET is a popular high-performance JSON framework for .NET
+
+
+#### 3. System.ValueTuple
+_Paquete 'nuget' por Microsoft_
+
+**Copyright (c) .NET Foundation and Contributors**
+
+Provides the System.ValueTuple structs, which implement the underlying types for tuples in C# and Visual Basic.
+
+
+
+### Microsoft® Exception Message Box License Terms
+
+**MICROSOFT SOFTWARE SUPPLEMENTAL LICENSE TERMS FOR MICROSOFT EXCEPTION MESSAGE BOX FOR MICROSOFT SQL SERVER**
+
+**PLEASE NOTE:** Refer to your license terms for Microsoft SQL Server 2005 software (the "software") to identify the entity licensing this supplement to you and for support information. You may use a copy of this supplement with each validly licensed copy of the software.
+You may not use the supplement if you do not have a license for the software.
+The license terms for the software apply to your use of this supplement.
+
+
+> **'Microsoft® Exception Message Box License Terms'** aplica a los siguientes **componentes de terceros _(“THIRD-PARTY”)_:**
+
+#### 1. Microsoft® Exception Message Box
+_Biblioteca por Microsoft_
+
+ http://www.microsoft.com/en-us/download/details.aspx?id=20101 (Feature Pack for Microsoft SQL Server 2005 SP4) \
+ x86: ENU\x86\SQLServer2005_EMB.msi \
+ x64: ENU\x64\SQLServer2005_EMB.msi
+
+The exception message box is a programmatic interface that you can use in your applications for any tasks for which MessageBox may be used. The exception message box is a supported managed assembly designed to elegantly handle managed code exceptions. It provides significantly more control over the messaging experience and gives your users the options to save error message content for later reference and to get help on messages.
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/LICENSE.MD b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/LICENSE.MD
new file mode 100644
index 00000000..2ff64166
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/LICENSE.MD
@@ -0,0 +1,161 @@
+# Library 'IpTViewr.MovistarPlus'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Terms and conditions
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+## Licenses
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+ * [The MIT License (MIT)]
+ * [Microsoft® Exception Message Box License Terms]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** applies to the following components:
+
+#### 1. DvbStpClient
+_Component by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 2. Etsi.Ts102034
+_Component by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 3. IpTviewr.Common
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 4. IpTViewr.IpTvServices
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 5. IpTViewr.MovistarPlus
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 6. Services.EpgDiscovery
+_Component by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 7. UiServices.Common
+_Component by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+#### 8. UiServices.Configuration
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
+### The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+> **'The MIT License (MIT)'** applies to the following **third-party components:**
+
+#### 1. JetBrains.Annotations
+_'nuget' package by JetBrains_
+
+**Copyright (c) 2016 JetBrains http://www.jetbrains.com**
+
+ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+#### 2. Newtonsoft.Json
+_'nuget' package by James Newton-King_
+
+**Copyright (c) 2007 James Newton-King**
+
+Json.NET is a popular high-performance JSON framework for .NET
+
+
+#### 3. System.ValueTuple
+_'nuget' package by Microsoft_
+
+**Copyright (c) .NET Foundation and Contributors**
+
+Provides the System.ValueTuple structs, which implement the underlying types for tuples in C# and Visual Basic.
+
+
+
+### Microsoft® Exception Message Box License Terms
+
+**MICROSOFT SOFTWARE SUPPLEMENTAL LICENSE TERMS FOR MICROSOFT EXCEPTION MESSAGE BOX FOR MICROSOFT SQL SERVER**
+
+**PLEASE NOTE:** Refer to your license terms for Microsoft SQL Server 2005 software (the "software") to identify the entity licensing this supplement to you and for support information. You may use a copy of this supplement with each validly licensed copy of the software.
+You may not use the supplement if you do not have a license for the software.
+The license terms for the software apply to your use of this supplement.
+
+
+> **'Microsoft® Exception Message Box License Terms'** applies to the following **third-party components:**
+
+#### 1. Microsoft® Exception Message Box
+_Library by Microsoft_
+
+ http://www.microsoft.com/en-us/download/details.aspx?id=20101 (Feature Pack for Microsoft SQL Server 2005 SP4) \
+ x86: ENU\x86\SQLServer2005_EMB.msi \
+ x64: ENU\x64\SQLServer2005_EMB.msi
+
+The exception message box is a programmatic interface that you can use in your applications for any tasks for which MessageBox may be used. The exception message box is a supported managed assembly designed to elegantly handle managed code exceptions. It provides significantly more control over the messaging experience and gives your users the options to save error message content for later reference and to get help on messages.
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/License.txt b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/License.txt
new file mode 100644
index 00000000..6815e04a
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/License.txt
@@ -0,0 +1,172 @@
+##############################################################################
+##
+## Library 'IpTViewr.MovistarPlus'
+##
+##############################################################################
+##
+## IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+## by Codeplex/GitHub user AlphaCentaury
+##
+## Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+##
+## http://www.alphacentaury.org/movistartv
+## https://github.com/AlphaCentaury
+##
+##############################################################################
+
+A.- Terms and conditions
+==============================================================================
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+
+B.- Licenses
+==============================================================================
+
+ * Microsoft Reciprocal License (Ms-RL)
+ * The MIT License (MIT)
+ * Microsoft® Exception Message Box License Terms
+
+
+////////////////////////////////////////////////////////////
+//
+// Microsoft Reciprocal License (Ms-RL)
+//
+////////////////////////////////////////////////////////////
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+////////////////////////////////////////////////////////////
+
+>>> 'Microsoft Reciprocal License (Ms-RL)' applies to the following components: <<<
+
+1. DvbStpClient
+------------------------------
+Component by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+2. Etsi.Ts102034
+------------------------------
+Component by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+3. IpTviewr.Common
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+4. IpTViewr.IpTvServices
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+5. IpTViewr.MovistarPlus
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+6. Services.EpgDiscovery
+------------------------------
+Component by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+7. UiServices.Common
+------------------------------
+Component by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+8. UiServices.Configuration
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+
+
+////////////////////////////////////////////////////////////
+//
+// The MIT License (MIT)
+//
+////////////////////////////////////////////////////////////
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+////////////////////////////////////////////////////////////
+
+>>> 'The MIT License (MIT)' applies to the following THIRD-PARTY components: <<<
+
+1. JetBrains.Annotations
+------------------------------
+'nuget' package by JetBrains
+Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+2. Newtonsoft.Json
+------------------------------
+'nuget' package by James Newton-King
+Copyright (c) 2007 James Newton-King
+ Json.NET is a popular high-performance JSON framework for .NET
+
+3. System.ValueTuple
+------------------------------
+'nuget' package by Microsoft
+Copyright (c) .NET Foundation and Contributors
+ Provides the System.ValueTuple structs, which implement the underlying types for tuples in C# and Visual Basic.
+
+
+
+////////////////////////////////////////////////////////////
+//
+// Microsoft® Exception Message Box License Terms
+//
+////////////////////////////////////////////////////////////
+
+**MICROSOFT SOFTWARE SUPPLEMENTAL LICENSE TERMS FOR MICROSOFT EXCEPTION MESSAGE BOX FOR MICROSOFT SQL SERVER**
+
+**PLEASE NOTE:** Refer to your license terms for Microsoft SQL Server 2005 software (the "software") to identify the entity licensing this supplement to you and for support information. You may use a copy of this supplement with each validly licensed copy of the software.
+You may not use the supplement if you do not have a license for the software.
+The license terms for the software apply to your use of this supplement.
+
+////////////////////////////////////////////////////////////
+
+>>> 'Microsoft® Exception Message Box License Terms' applies to the following THIRD-PARTY components: <<<
+
+1. Microsoft® Exception Message Box
+------------------------------
+Library by Microsoft
+ http://www.microsoft.com/en-us/download/details.aspx?id=20101 (Feature Pack for Microsoft SQL Server 2005 SP4)
+ x86: ENU\x86\SQLServer2005_EMB.msi
+ x64: ENU\x64\SQLServer2005_EMB.msi
+ The exception message box is a programmatic interface that you can use in your applications for any tasks for which MessageBox may be used. The exception message box is a supported managed assembly designed to elegantly handle managed code exceptions. It provides significantly more control over the messaging experience and gives your users the options to save error message content for later reference and to get help on messages.
+
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/MovistarCrId.cs b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/MovistarCrId.cs
new file mode 100644
index 00000000..4e64d514
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/MovistarCrId.cs
@@ -0,0 +1,49 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+
+namespace IpTviewr.IpTvServices.MovistarPlus
+{
+ internal class MovistarCrId
+ {
+ public MovistarCrId(string contentIdRoot, string contentId, string seriesId)
+ {
+ ContentIdRoot = contentIdRoot;
+ ContentId = contentId;
+ SeriesId = seriesId;
+ }
+
+ public static MovistarCrId Get(string crId)
+ {
+ var crid = new Uri(crId);
+ var components = crid.AbsolutePath.Split('/');
+ if (components.Length != 4) return null;
+ if (components[2] != components[3]) return null;
+ if (components[3].Length < 5) return null;
+
+ var result = new MovistarCrId(
+ seriesId: components[1],
+ contentIdRoot: components[3].Substring(0, 4),
+ contentId: components[3]);
+
+ return result;
+ } // Get
+
+ public string SeriesId { get; }
+
+ public string ContentIdRoot { get; }
+
+ public string ContentId { get; }
+ } // class MovistarCrId
+} // namespace
diff --git a/1.5 'Kruger 60'/IpTv.MovistarPlus/MovistarEpgInfo.cs b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/MovistarEpgInfo.cs
similarity index 82%
rename from 1.5 'Kruger 60'/IpTv.MovistarPlus/MovistarEpgInfo.cs
rename to 1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/MovistarEpgInfo.cs
index 6de4ad74..c419b256 100644
--- a/1.5 'Kruger 60'/IpTv.MovistarPlus/MovistarEpgInfo.cs
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/MovistarEpgInfo.cs
@@ -1,111 +1,116 @@
-// Copyright (C) 2014-2016, Codeplex user AlphaCentaury
-// All rights reserved, except those granted by the governing license of this software. See 'license.txt' file in the project root for complete license information.
-
-using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace Project.IpTv.MovistarPlus
-{
- public class MovistarEpgInfo
- {
- public class LanguageInfo
- {
- [JsonProperty("audioType")]
- public string AudioType;
-
- [JsonProperty("language")]
- public string Language;
- } // LanguageInfo
-
- [JsonProperty("languages")]
- public LanguageInfo[] Languages;
-
- [JsonProperty("startOver")]
- public long StartOver;
-
- [JsonProperty("endtime")]
- public long EndTime;
-
- [JsonProperty("ageRatingID")]
- public string AgeRatingId;
-
- [JsonProperty("description")]
- public string Description;
-
- [JsonProperty("begintime")]
- public long BeginTime;
-
- [JsonProperty("isHdtv")]
- public int IsHdTv;
-
- [JsonProperty("title")]
- public string Title;
-
- [JsonProperty("seriesID")]
- public string SeriesId;
-
- [JsonProperty("duration")]
- public long Duration;
-
- [JsonProperty("subgenre")]
- public string SubGenre;
-
- [JsonProperty("catchUp")]
- public int CatchUp;
-
- [JsonProperty("genre")]
- public string Genre;
-
- [JsonProperty("hasDolby")]
- public int HasDolby;
-
- [JsonProperty("directors")]
- public string[] Directors;
-
- [JsonProperty("preTime")]
- public long PreTime;
-
- [JsonProperty("originalLongTitle")]
- public string[] OriginalLongTitle;
-
- [JsonProperty("countries")]
- public string[] Countries;
-
- [JsonProperty("version")]
- public string[] Version;
-
- [JsonProperty("exptime")]
- public long ExpiryTime;
-
- [JsonProperty("postTime")]
- public long PostTime;
-
- [JsonProperty("productionDate")]
- public string[] ProductionDate;
-
- [JsonProperty("originalTitle")]
- public string[] OriginalTitle;
-
- [JsonProperty("longTitle")]
- public string[] LongTitle;
-
- [JsonProperty("scriptwriter")]
- public string[] ScriptWriter;
-
- [JsonProperty("mainActors")]
- public string[] MainActors;
-
- [JsonProperty("producer")]
- public string[] Producer;
-
- [JsonProperty("audio")]
- public string[] Audio;
-
- [JsonProperty("soundtrack")]
- public string[] Soundtrack;
- } // class MovistarEpgInfo
-} // namespace
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Newtonsoft.Json;
+
+namespace IpTviewr.IpTvServices.MovistarPlus
+{
+ public class MovistarEpgInfo
+ {
+ public class LanguageInfo
+ {
+ [JsonProperty("audioType")]
+ public string AudioType;
+
+ [JsonProperty("language")]
+ public string Language;
+ } // LanguageInfo
+
+ [JsonProperty("languages")]
+ public LanguageInfo[] Languages;
+
+ [JsonProperty("startOver")]
+ public long StartOver;
+
+ [JsonProperty("endtime")]
+ public long EndTime;
+
+ [JsonProperty("ageRatingID")]
+ public string AgeRatingId;
+
+ [JsonProperty("description")]
+ public string Description;
+
+ [JsonProperty("begintime")]
+ public long BeginTime;
+
+ [JsonProperty("isHdtv")]
+ public int IsHdTv;
+
+ [JsonProperty("title")]
+ public string Title;
+
+ [JsonProperty("seriesID")]
+ public string SeriesId;
+
+ [JsonProperty("duration")]
+ public long Duration;
+
+ [JsonProperty("subgenre")]
+ public string SubGenre;
+
+ [JsonProperty("catchUp")]
+ public int CatchUp;
+
+ [JsonProperty("genre")]
+ public string Genre;
+
+ [JsonProperty("hasDolby")]
+ public int HasDolby;
+
+ [JsonProperty("directors")]
+ public string[] Directors;
+
+ [JsonProperty("preTime")]
+ public long PreTime;
+
+ [JsonProperty("originalLongTitle")]
+ public string[] OriginalLongTitle;
+
+ [JsonProperty("countries")]
+ public string[] Countries;
+
+ [JsonProperty("version")]
+ public string[] Version;
+
+ [JsonProperty("exptime")]
+ public long ExpiryTime;
+
+ [JsonProperty("postTime")]
+ public long PostTime;
+
+ [JsonProperty("productionDate")]
+ public string[] ProductionDate;
+
+ [JsonProperty("originalTitle")]
+ public string[] OriginalTitle;
+
+ [JsonProperty("longTitle")]
+ public string[] LongTitle;
+
+ [JsonProperty("scriptwriter")]
+ public string[] ScriptWriter;
+
+ [JsonProperty("mainActors")]
+ public string[] MainActors;
+
+ [JsonProperty("producer")]
+ public string[] Producer;
+
+ [JsonProperty("audio")]
+ public string[] Audio;
+
+ [JsonProperty("soundtrack")]
+ public string[] Soundtrack;
+ } // class MovistarEpgInfo
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/MovistarJsonEpgInfoResponse.cs b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/MovistarJsonEpgInfoResponse.cs
new file mode 100644
index 00000000..9f7e9ba4
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/MovistarJsonEpgInfoResponse.cs
@@ -0,0 +1,25 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Newtonsoft.Json;
+
+namespace IpTviewr.IpTvServices.MovistarPlus
+{
+ /*
+ internal class MovistarJsonEpgInfoResponse: MovistarJsonResponse
+ {
+ [JsonProperty("resultData")]
+ public MovistarEpgInfo Data;
+ } // class MovistarJsonEpgInfoResponse
+ */
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/MovistarJsonResponse.cs b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/MovistarJsonResponse.cs
new file mode 100644
index 00000000..9aeb2ca0
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/MovistarJsonResponse.cs
@@ -0,0 +1,29 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using Newtonsoft.Json;
+
+namespace IpTviewr.IpTvServices.MovistarPlus
+{
+ internal abstract class MovistarJsonResponse
+ {
+ [JsonProperty("resultCode")]
+ public int Code { get; set; }
+
+ [JsonProperty("resultText")]
+ public string Text { get; set; }
+
+ [JsonProperty("hashCode")]
+ public string HashCode { get; set; }
+ } // abstract class MovistarJsonResponse
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Properties/AssemblyInfo.cs b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..8efa1a11
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Properties/AssemblyInfo.cs
@@ -0,0 +1,39 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("IpTv.MovistarPlus")]
+[assembly: AssemblyDescription("IpTviewr.IpTvProvider.MovistarPlus")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCopyright(SolutionVersion.DefaultCopyright)]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("d01ab43e-4873-413f-9fb2-9bde7c593b00")]
+
+// Version information for an assembly consists of the following four values:
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+[assembly: AssemblyVersion(SolutionVersion.DefaultAssemblyVersion)]
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Properties/Texts.Designer.cs b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Properties/Texts.Designer.cs
new file mode 100644
index 00000000..43a0eb0e
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Properties/Texts.Designer.cs
@@ -0,0 +1,192 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace IpTviewr.IpTvServices.MovistarPlus.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Texts {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Texts() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IpTviewr.IpTvServices.MovistarPlus.Properties.Texts", typeof(Texts).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to {0}.
+ ///
+ internal static string ProviderFormatFriendlyName {
+ get {
+ return ResourceManager.GetString("ProviderFormatFriendlyName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to (Name not provided) {0}.
+ ///
+ internal static string ProviderFormatUnknownName {
+ get {
+ return ResourceManager.GetString("ProviderFormatUnknownName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Unable to obtain the list of movistar+ regions..
+ ///
+ internal static string ProviderListRefreshError {
+ get {
+ return ResourceManager.GetString("ProviderListRefreshError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Unable to load region logo file <{0}>..
+ ///
+ internal static string ProviderLogoLoadError {
+ get {
+ return ResourceManager.GetString("ProviderLogoLoadError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Region logo file <{0}> not found..
+ ///
+ internal static string ProviderLogoNotFound {
+ get {
+ return ResourceManager.GetString("ProviderLogoNotFound", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Show technical &details....
+ ///
+ internal static string ProviderMenuDetails {
+ get {
+ return ResourceManager.GetString("ProviderMenuDetails", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to movistar+ ®ion.
+ ///
+ internal static string ProviderMenuEntry {
+ get {
+ return ResourceManager.GetString("ProviderMenuEntry", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to &Select region....
+ ///
+ internal static string ProviderMenuSelect {
+ get {
+ return ResourceManager.GetString("ProviderMenuSelect", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to No movistar+ region has been selected..
+ ///
+ internal static string ProviderNoSelection {
+ get {
+ return ResourceManager.GetString("ProviderNoSelection", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Obtaining the list of movistar+ regions....
+ ///
+ internal static string ProviderObtainingList {
+ get {
+ return ResourceManager.GetString("ProviderObtainingList", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Parsing and extracting the list of regions....
+ ///
+ internal static string ProviderParsingList {
+ get {
+ return ResourceManager.GetString("ProviderParsingList", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Properties of movistar+ region.
+ ///
+ internal static string ProviderPropertiesCaption {
+ get {
+ return ResourceManager.GetString("ProviderPropertiesCaption", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Select movistar+ region.
+ ///
+ internal static string ProviderSelectCaption {
+ get {
+ return ResourceManager.GetString("ProviderSelectCaption", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to No description is available for this region..
+ ///
+ internal static string ProviderUnknownDisplayDescription {
+ get {
+ return ResourceManager.GetString("ProviderUnknownDisplayDescription", resourceCulture);
+ }
+ }
+ }
+}
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Properties/Texts.es.resx b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Properties/Texts.es.resx
new file mode 100644
index 00000000..3244ee0f
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Properties/Texts.es.resx
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ {0} (*)
+
+
+ (Sin nombre) {0}
+
+
+ No ha sido posible obtener la lista de regiones de movistar+.
+
+
+ Error al cargar el archivo con el logo de la región <{0}>.
+
+
+ El archivo con el logo de la región <{0}> no existe.
+
+
+ Ver &detalles técnicos...
+
+
+ &Región de movistar+
+
+
+ &Seleccionar región...
+
+
+ No se ha seleccionado un proveedor de servicios.
+
+
+ Obteniendo la lista de regiones de movistar+...
+
+
+ Analizando y extrayendo la lista de `regiones...
+
+
+ Propiedades de la región de movistar+
+
+
+ Seleccionar región de movistar+
+
+
+ No existe una descripción de esta región de movistar+.
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Properties/Texts.resx b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Properties/Texts.resx
new file mode 100644
index 00000000..f91f9ba1
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Properties/Texts.resx
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ {0}
+
+
+ (Name not provided) {0}
+
+
+ Unable to obtain the list of movistar+ regions.
+
+
+ Unable to load region logo file <{0}>.
+
+
+ Region logo file <{0}> not found.
+
+
+ Show technical &details...
+
+
+ movistar+ ®ion
+
+
+ &Select region...
+
+
+ No movistar+ region has been selected.
+
+
+ Obtaining the list of movistar+ regions...
+
+
+ Parsing and extracting the list of regions...
+
+
+ Properties of movistar+ region
+
+
+ Select movistar+ region
+
+
+ No description is available for this region.
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Serialization/MovistarPlusConfig.cs b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Serialization/MovistarPlusConfig.cs
new file mode 100644
index 00000000..776d6372
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Serialization/MovistarPlusConfig.cs
@@ -0,0 +1,26 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+
+namespace IpTviewr.IpTvServices.MovistarPlus.Serialization
+{
+ [Serializable]
+ public class MovistarPlusConfig
+ {
+ public Opch Opch { get; set; }
+ public IDictionary Environment;
+ public IDictionary> Variables;
+ } // class MovistarPlusConfig
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Serialization/Opch.cs b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Serialization/Opch.cs
new file mode 100644
index 00000000..bb2094cc
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/Serialization/Opch.cs
@@ -0,0 +1,38 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Collections.Generic;
+
+namespace IpTviewr.IpTvServices.MovistarPlus.Serialization
+{
+ public class Opch
+ {
+ public string MulticastAddress
+ {
+ get;
+ set;
+ } // MulticastAddress
+
+ public int MulticastPort
+ {
+ get;
+ set;
+ } // MulticastPort
+
+ public IDictionary Default
+ {
+ get;
+ set;
+ } // DefaultValues
+ } // Opch
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/licensing.xml b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/licensing.xml
new file mode 100644
index 00000000..e8cbed86
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/licensing.xml
@@ -0,0 +1,197 @@
+
+
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+
+
+
+
+
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ IpTviewr.Common
+ Library
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ IpTViewr.IpTvServices
+ Library
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ UiServices.Configuration
+ Library
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ Etsi.Ts102034
+ Unknown
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ DvbStpClient
+ Unknown
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ Services.EpgDiscovery
+ Unknown
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ UiServices.Common
+ Unknown
+
+
+
+
+ MIT
+ JetBrains
+ Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+ MIT
+ James Newton-King
+ Copyright (c) 2007 James Newton-King
+ Json.NET is a popular high-performance JSON framework for .NET
+
+
+ MIT
+ Microsoft
+ Copyright (c) .NET Foundation and Contributors
+ Provides the System.ValueTuple structs, which implement the underlying types for tuples in C# and Visual Basic.
+
+
+ MS-SQL-2005-EMB
+ Microsoft
+
+ The exception message box is a programmatic interface that you can use in your applications for any tasks for which MessageBox may be used. The exception message box is a supported managed assembly designed to elegantly handle managed code exceptions. It provides significantly more control over the messaging experience and gives your users the options to save error message content for later reference and to get help on messages.
+
+
+
+
+
+
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/packages.config b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/packages.config
new file mode 100644
index 00000000..284cc551
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/IpTv.MovistarPlus/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Project.Common/ArgumentsManager.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/ArgumentsManager.cs
similarity index 84%
rename from 1.5 'Kruger 60'/Project.Common/ArgumentsManager.cs
rename to 1.5 'Kruger 60'/Assemblies/Project.Common/ArgumentsManager.cs
index 098b7823..727c0c7d 100644
--- a/1.5 'Kruger 60'/Project.Common/ArgumentsManager.cs
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/ArgumentsManager.cs
@@ -1,9 +1,19 @@
-// Copyright (C) 2014-2016, Codeplex/GitHub user AlphaCentaury
-// All rights reserved, except those granted by the governing license of this software. See 'license.txt' file in the project root for complete license information.
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
using System;
using System.Collections.Generic;
-using System.Linq;
+using System.Diagnostics.CodeAnalysis;
using System.Text;
namespace IpTviewr.Common
@@ -12,16 +22,14 @@ public static class ArgumentsManager
{
public static string[] ExpandArguments(string[] rawArguments, IDictionary parameters, string openBrace, string closeBrace, StringComparison braceComparisonType)
{
- string[] result;
-
if (rawArguments == null) return null;
- result = new string[rawArguments.Length];
+ var result = new string[rawArguments.Length];
if (rawArguments.Length == 0) return result;
Validate(parameters, openBrace, closeBrace);
- for (int index = 0; index < rawArguments.Length; index++)
+ for (var index = 0; index < rawArguments.Length; index++)
{
result[index] = InternalExpandArgument(rawArguments[index], parameters, openBrace, closeBrace, braceComparisonType);
} // for
@@ -76,13 +84,14 @@ public static string JoinArguments(string[] arguments)
return result.ToString();
} // JoinArguments
+ [SuppressMessage("ReSharper", "ParameterOnlyUsedForPreconditionCheck.Local")]
private static void Validate(IDictionary parameters, string openBrace, string closeBrace)
{
if ((string.IsNullOrEmpty(openBrace)) || (string.IsNullOrEmpty(closeBrace)))
{
throw new ArgumentException();
} // if
- if ((parameters == null) || (parameters.Count == 0))
+ if ((parameters?.Count ?? 0) == 0)
{
throw new ArgumentException();
} // if
@@ -94,11 +103,9 @@ private static void Validate(IDictionary parameters, string open
private static string InternalExpandArgument(string rawArgument, IDictionary parameters, string openBrace, string closeBrace, StringComparison braceComparisonType)
{
- int index, param;
-
if (string.IsNullOrEmpty(rawArgument)) return rawArgument;
- index = rawArgument.IndexOf(openBrace, braceComparisonType);
+ var index = rawArgument.IndexOf(openBrace, braceComparisonType);
if (index < 0) return rawArgument;
var current = 0;
@@ -110,7 +117,7 @@ private static string InternalExpandArgument(string rawArgument, IDictionary @$"{message ?? Properties.Texts.MyAppHandleExceptionDefaultMessage}\r\n\r\n{e.Message}",
+ false => @$"{message ?? Properties.Texts.MyAppHandleExceptionDefaultMessage}\r\n\r\n{ex.Message}\r\n{ex.GetType().FullName}\r\n\r\n{e.Message}"
+ };
+
+ MessageBox.Show(owner,
+ text,
+ caption ?? Properties.Texts.MyAppHandleExceptionDefaultCaption,
+ MessageBoxButtons.OK, icon);
+ } // try-catch
+ } // HandleException
+
+ public static void HandleException(object sender, HandleExceptionEventArgs e)
+ {
+ HandleException(e.OwnerForm, e.Caption, e.Message, e.Exception);
+ } // HandleException
+
+ private static ExceptionMessageBoxSymbol TranslateIconToSymbol(MessageBoxIcon icon)
+ {
+ switch (icon)
+ {
+ case MessageBoxIcon.Asterisk: return ExceptionMessageBoxSymbol.Asterisk;
+ case MessageBoxIcon.Error: return ExceptionMessageBoxSymbol.Error;
+ case MessageBoxIcon.Exclamation: return ExceptionMessageBoxSymbol.Exclamation;
+ //case MessageBoxIcon.Hand: return ExceptionMessageBoxSymbol.Hand;
+ //case MessageBoxIcon.Information: return ExceptionMessageBoxSymbol.Information;
+ case MessageBoxIcon.Question: return ExceptionMessageBoxSymbol.Question;
+ //case MessageBoxIcon.Stop: return ExceptionMessageBoxSymbol.Stop;
+ //case MessageBoxIcon.Warning: return ExceptionMessageBoxSymbol.Warning;
+ default:
+ return ExceptionMessageBoxSymbol.None;
+ } // switch
+ } // TranslateIconToSymbol
+
+ private static void AddExceptionAdvancedInformation(Exception ex)
+ {
+ while (ex != null)
+ {
+ ex.Data["AdvancedInformation.Exception.Type"] = ex.GetType().FullName;
+ ex.Data["AdvancedInformation.Exception.Assembly"] = ex.GetType().Assembly.ToString();
+ ex = ex.InnerException;
+ } // while
+ } // AddExceptionAdvancedInformation
+ } // class BaseProgram
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/CommandLineArguments.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/CommandLineArguments.cs
new file mode 100644
index 00000000..92e4aaaa
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/CommandLineArguments.cs
@@ -0,0 +1,137 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace IpTviewr.Common
+{
+ public class CommandLineArguments
+ {
+ private IEqualityComparer _comparer;
+
+ public CommandLineArguments()
+ {
+ _comparer = StringComparer.InvariantCultureIgnoreCase;
+ } // constructor
+
+ public CommandLineArguments(IEqualityComparer comparer)
+ {
+ _comparer = comparer ?? StringComparer.InvariantCultureIgnoreCase;
+ } // constructor
+
+ public bool SpecialHelpArgument
+ {
+ get;
+ set;
+ } // SpecialHelpArgument
+
+ public bool IsHelpRequested => Switches?.ContainsKey("help") ?? false;
+
+ public bool IsOk { get; private set; }
+
+ public IList Arguments { get; private set; }
+
+ public IDictionary Switches { get; private set; }
+
+ public IDictionary> MultiValueSwitches { get; private set; }
+
+ public void Parse(string[] args, int startIndex = 0)
+ {
+ Parse((IReadOnlyCollection)args, startIndex);
+ } // Parse
+
+ public void Parse(IReadOnlyList args, int startIndex = 0)
+ {
+ Parse((IReadOnlyCollection)args, startIndex);
+ } // Parse
+
+ public void Parse(IReadOnlyCollection args, int startIndex = 0)
+ {
+ IsOk = false;
+
+ Arguments = new List(args.Count);
+ Switches = new Dictionary(args.Count, _comparer);
+ MultiValueSwitches = new Dictionary>(args.Count, _comparer);
+
+ foreach (var arg in args.Skip(startIndex))
+ {
+ if ((arg[0] == '/') || (arg[0] == '-'))
+ {
+ if (arg.Length < 2) // switch name expected
+ {
+ return;
+ } // if
+
+ if (SpecialHelpArgument)
+ {
+ var partialArg = arg.Substring(1, 1).ToLower();
+ if ((partialArg.StartsWith("h")) || (partialArg.StartsWith("?")))
+ {
+ Switches.Add("help", null);
+ break;
+ } // if
+ } // if
+
+ string argName;
+ string argValue;
+
+ var pos = arg.IndexOf(':');
+ if (pos < 0)
+ {
+ argName = arg.Substring(1);
+ argValue = null;
+ }
+ else
+ {
+ if (pos == 0) return; // switch name expected
+
+ argName = arg.Substring(1, pos - 1);
+ argValue = arg.Substring(pos + 1);
+ } // if-else
+ AddToSwitches(argName, argValue);
+ }
+ else
+ {
+ Arguments.Add(arg);
+ } // if-else
+ } // foreach arg
+
+ IsOk = true;
+ if (Switches.Count == 0) Switches = new EmptyDictionary();
+ if (MultiValueSwitches.Count == 0) MultiValueSwitches = new EmptyDictionary>();
+ } // Parse
+
+ private void AddToSwitches(string argName, string argValue)
+ {
+ if (MultiValueSwitches.ContainsKey(argName))
+ {
+ MultiValueSwitches[argName].Add(argValue);
+ }
+ else
+ {
+ MultiValueSwitches.Add(argName, new List
+ {
+ argValue
+ });
+
+ // keep first value; do not override with later values
+ if (!Switches.ContainsKey(argName))
+ {
+ Switches[argName] = argValue;
+ } // if
+ } // if-else
+ } // AddToSwitches
+ } // class CommandLineArguments
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/Configuration/InitializationResult.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/Configuration/InitializationResult.cs
new file mode 100644
index 00000000..a90221c3
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Configuration/InitializationResult.cs
@@ -0,0 +1,51 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+
+namespace IpTviewr.Common.Configuration
+{
+ public sealed class InitializationResult
+ {
+ ///
+ /// Gets an with IsOk set to and all remaining fields set to
+ ///
+ public static InitializationResult Ok { get; } = new InitializationResult() { IsOk = true };
+
+ public bool IsOk { get; set; }
+
+ public bool IsError => !IsOk;
+
+ public string Caption { get; set; }
+
+ public string Message { get; set; }
+
+ public Exception InnerException { get; set; }
+
+ public InitializationResult()
+ {
+ // no op
+ } // constructor
+
+ public InitializationResult(string message)
+ {
+ Message = message;
+ } // InitializationResult
+
+ public InitializationResult(Exception exception, string message)
+ {
+ Message = message ?? exception.Message;
+ InnerException = exception;
+ } // InitializationResult
+ } // InitializationResult
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/DateTimeExtensions.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/DateTimeExtensions.cs
new file mode 100644
index 00000000..def00c8d
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/DateTimeExtensions.cs
@@ -0,0 +1,37 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+
+namespace IpTviewr.Common
+{
+ public static class DateTimeExtensions
+ {
+ ///
+ /// Truncates a given DateTime to minutes resolution, ignoring seconds and milliseconds
+ ///
+ /// The DateTime to truncate. The Kind is preserved after truncation
+ /// The truncated DateTime
+ public static DateTime TruncateToMinutes(this DateTime time)
+ {
+ return new DateTime(time.Year, time.Month, time.Day, time.Hour, time.Minute, 0, time.Kind); // set seconds to 0
+ } // TruncateToMinutes
+
+ public static DateTime TruncateToSeconds(this DateTime time, int rounding = 1)
+ {
+ if (rounding < 1) throw new ArgumentOutOfRangeException(nameof(rounding));
+ var seconds = (time.Second / rounding) * rounding;
+ return new DateTime(time.Year, time.Month, time.Day, time.Hour, time.Minute, seconds, time.Kind);
+ } // TruncateToSeconds
+ } // static class DateTimeExtensions
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/EmptyDictionary.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/EmptyDictionary.cs
new file mode 100644
index 00000000..95e1cf29
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/EmptyDictionary.cs
@@ -0,0 +1,81 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace IpTviewr.Common
+{
+ public class EmptyDictionary : IDictionary
+ {
+ #region Implementation of IEnumerable
+
+ public IEnumerator> GetEnumerator()
+ {
+ yield break;
+ } // GetEnumerator
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ } // IEnumerable.GetEnumerator
+
+ #endregion
+
+ #region Implementation of ICollection>
+
+ public void Add(KeyValuePair item) => throw new NotSupportedException();
+
+ public void Clear() => throw new NotSupportedException();
+
+ public bool Contains(KeyValuePair item) => false;
+
+ public void CopyTo(KeyValuePair[] array, int arrayIndex)
+ {
+ // no-op
+ } // CopyTo
+
+ public bool Remove(KeyValuePair item) => throw new NotSupportedException();
+
+ public int Count => 0;
+ public bool IsReadOnly => true;
+
+ #endregion
+
+ #region Implementation of IDictionary
+
+ public bool ContainsKey(TKey key) => false;
+
+ public void Add(TKey key, TValue value) => throw new NotSupportedException();
+
+ public bool Remove(TKey key) => throw new NotSupportedException();
+
+ public bool TryGetValue(TKey key, out TValue value)
+ {
+ value = default;
+ return false;
+ } // TryGetValue
+
+ public TValue this[TKey key]
+ {
+ get => throw new KeyNotFoundException();
+ set => throw new NotSupportedException();
+ } // this[TKey key]
+
+ public ICollection Keys => Array.Empty();
+ public ICollection Values => Array.Empty();
+
+ #endregion
+ } // EmptyDictionary
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/ExceptionEventData.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/ExceptionEventData.cs
new file mode 100644
index 00000000..1580a4bd
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/ExceptionEventData.cs
@@ -0,0 +1,47 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+
+namespace IpTviewr.Common
+{
+ public class ExceptionEventData
+ {
+ public string Caption { get; set; }
+ public string Message { get; set; }
+ public Exception Exception { get; set; }
+
+ public ExceptionEventData()
+ {
+ // no-op
+ } // default constructor
+
+ public ExceptionEventData(Exception ex)
+ {
+ Exception = ex;
+ } // default constructor
+
+ public ExceptionEventData(string message, Exception ex)
+ {
+ Message = message;
+ Exception = ex;
+ } // constructor
+
+ public ExceptionEventData(string caption, string message, Exception ex)
+ {
+ Caption = caption;
+ Message = message;
+ Exception = ex;
+ } // constructor
+ } // class ExceptionEventData
+} // namespace
diff --git a/1.5 'Kruger 60'/Project.Common/FormatString.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/FormatString.cs
similarity index 78%
rename from 1.5 'Kruger 60'/Project.Common/FormatString.cs
rename to 1.5 'Kruger 60'/Assemblies/Project.Common/FormatString.cs
index 4181e9a3..45afaa11 100644
--- a/1.5 'Kruger 60'/Project.Common/FormatString.cs
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/FormatString.cs
@@ -1,7 +1,17 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
namespace IpTviewr.Common
{
@@ -54,16 +64,17 @@ public static bool IsSameDay(DateTime time1, DateTime time2)
public static string TimeSpanTotalMinutes(TimeSpan value, Format format)
{
string spanFormat;
- int minutes;
+ var minutes = value.Minutes + ((value.Seconds > 0) ? 1 : 0);
switch (format)
{
case Format.Compact:
- if (value.TotalMinutes < 61)
+ if (value.TotalMinutes <= 60)
{
+ if (value.TotalMinutes > 59) minutes = 60;
spanFormat = Properties.FormatStringTexts.TimeSpanTotalMinutesCompact;
}
- else if (value.TotalHours < 24)
+ else if (value.TotalHours <= 24)
{
spanFormat = Properties.FormatStringTexts.TimeSpanTotalMinutesCompactHours;
}
@@ -72,12 +83,15 @@ public static string TimeSpanTotalMinutes(TimeSpan value, Format format)
spanFormat = Properties.FormatStringTexts.TimeSpanTotalMinutesCompactDays;
} // if-else
break;
+
case Format.Extended:
+
if (value.TotalMinutes <= 60)
{
+ if (value.TotalMinutes > 59) minutes = 60;
spanFormat = Properties.FormatStringTexts.TimeSpanTotalMinutesExtended;
}
- else if (value.TotalHours < 24)
+ else if (value.TotalHours <= 24)
{
spanFormat = Properties.FormatStringTexts.TimeSpanTotalMinutesExtendedHours;
}
@@ -86,11 +100,11 @@ public static string TimeSpanTotalMinutes(TimeSpan value, Format format)
spanFormat = Properties.FormatStringTexts.TimeSpanTotalMinutesExtendedDays;
} // if-else
break;
+
default:
return string.Format(Properties.FormatStringTexts.TimeSpanTotalMinutesBasic, value.TotalMinutes);
} // switch
- minutes = value.Minutes + ((value.Seconds > 0) ? 1 : 0);
return string.Format(spanFormat, minutes, value.Hours, value.Days);
} // TimeSpanTotalMinutes
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/HandleExceptionEventArgs.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/HandleExceptionEventArgs.cs
new file mode 100644
index 00000000..ef139898
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/HandleExceptionEventArgs.cs
@@ -0,0 +1,39 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Windows.Forms;
+
+namespace IpTviewr.Common
+{
+ public class HandleExceptionEventArgs: EventArgs
+ {
+ public Form OwnerForm { get; set; }
+ public string Caption { get; set; }
+ public string Message { get; set; }
+ public Exception Exception { get; set; }
+
+ public HandleExceptionEventArgs()
+ {
+ // no-op
+ } // default constructor
+
+ public HandleExceptionEventArgs(Form ownerForm, string caption, string message, Exception ex)
+ {
+ OwnerForm = ownerForm;
+ Caption = caption;
+ Message = message;
+ Exception = ex;
+ } // constructor
+ } // class HandleExceptionEventArgs
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/IpTviewr.Common.csproj b/1.5 'Kruger 60'/Assemblies/Project.Common/IpTviewr.Common.csproj
new file mode 100644
index 00000000..c276d8fe
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/IpTviewr.Common.csproj
@@ -0,0 +1,148 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {8DA15060-5A78-4F89-A9F1-7AA56B0D622C}
+ Library
+ Properties
+ IpTviewr.Common
+ IpTviewr.Common
+ v4.6.2
+ 512
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ false
+ 8.0
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ false
+ 8.0
+
+
+
+
+
+ true
+
+
+
+ ..\..\packages\JetBrains.Annotations.2019.1.3\lib\net20\JetBrains.Annotations.dll
+
+
+
+
+
+
+
+
+
+ Properties\AssemblySolutionInfo.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+ True
+ True
+ FormatStringTexts.resx
+
+
+ True
+ True
+ Texts.resx
+
+
+
+
+
+
+
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+ ResXFileCodeGenerator
+ FormatStringTexts.Designer.cs
+
+
+
+
+ ResXFileCodeGenerator
+ Texts.Designer.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/LICENSE.ES.MD b/1.5 'Kruger 60'/Assemblies/Project.Common/LICENSE.ES.MD
new file mode 100644
index 00000000..362b4b2f
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/LICENSE.ES.MD
@@ -0,0 +1,108 @@
+# Biblioteca 'IpTviewr.Common'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Términos y condiciones de uso
+
+Este COMPONENTE (el “SOFTWARE”), ya sea en forma de código binario o fuente, está **sujeto a los términos de la Licencia Recíproca de Microsoft _“Microsoft Reciprocal License” (Ms-RL)_**, excepto en lo relativo a componentes de terceras partes (“THIRD-PARTY”). \
+Todos los demás derechos están reservados por el/los autor(es) del software.
+
+**EL SOFTWARE SE PROPORCIONA “TAL CUAL”, SIN GARANTÍA DE NINGÚN TIPO**, expresa o implícita, incluyendo (pero no limitándose a) las garantías de comerciabilidad, idoneidad para un propósito particular y no infracción. \
+En ningún caso, los autores o titulares del Copyright serán responsables de ninguna reclamación, daños o cualquier otra responsabilidad, ya sea en una acción de contrato, agravio o cualquier otro motivo, con o sin relación con el software o el uso u otros aspectos del software.
+
+Todas las marcas comerciales, marcas de servicio, nombres comerciales, nombres de productos y logotipos son propiedad de sus respectivos propietarios.
+Su uso en el contexto de este software no constituye un respaldo ni apoyo por parte de sus respectivos propietarios.
+
+----------------------------------------------------------------------
+
+
+_A continuación se proporciona una traducción aproximada de la **Licencia recíproca de Microsoft (Ms-RL)** al español. Esta traducción carece de cualquier validez legal._
+
+Esta licencia rige el uso del software que lo acompaña. Si utiliza el software, usted acepta esta licencia. Si no acepta la licencia, no use el software.
+
+1. **Definiciones**
+
+ - Los términos “reproducir”, “reproducción”, “obras derivadas” y “distribución” tienen el mismo significado en este acuerdo de licencia que en la Ley de Derechos de Autor de EE. UU.
+ - Una “contribución” es el software original, o cualquier adición o cambio al software.
+ - Un “colaborador” es cualquier persona que distribuye su contribución bajo esta licencia.
+ - Las “patentes licenciadas” son declaraciones de patente de un contribuyente y que aplican directamente sobre su contribución.
+
+2. **Concesión de derechos**
+
+ - (A) _Concesión de derechos de autor:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le otorga una licencia de copyright no exclusiva, mundial y libre de regalías para reproducir su contribución, preparar crear trabajos derivados de su contribución, y distribuir su contribución o cualquier trabajo derivado que usted cree.
+ - (B) _Concesión de patentes:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le concede una licencia no exclusiva, mundial y libre de regalías bajo sus patentes autorizadas para realizar, haber realizado, usar, vender, ofrecer para la venta, importar y/o disponer de su contribución en el software o trabajos derivados de la contribución en el software.
+
+3. **Condiciones y limitaciones**
+
+ - (A) _Derechos recíprocos:_ Para cualquier archivo que distribuya que contenga código del software (en código fuente o formato binario), debe proporcionar a los destinatarios el código fuente de ese archivo junto con una copia de esta licencia, que será la licencia que regirá sobre el archivo. Puede licenciar otros archivos que son totalmente de su propiedad y que no contengan código alguno del software en los términos de licenciamiento que usted elija.
+ - (B) _Sin licencia de marca comercial:_ esta licencia no le concede el derecho a utilizar el nombre, el logotipo o las marcas comerciales de ningún colaborador.
+ - (C) Si presenta una reclamación de patente contra un contribuyente por patentes que usted alega son infringidas por el software, la licencia de patente sobre el software que dicho colaborador le proporcionó finaliza automáticamente.
+ - (D) Si distribuye cualquier parte del software, debe conservar todos los avisos de copyright, patente, marca comercial y atribución que están presentes en el software.
+ - (E) Si distribuye cualquier porción del software en forma de código fuente, puede hacerlo solo bajo esta licencia incluyendo una copia completa de esta licencia con su distribución. Si distribuye cualquier porción del software en forma de código compilado u objeto, solo puede hacerlo bajo una licencia que cumpla con esta licencia.
+ - (F) El software se proporciona “tal cual está”. Usted asume los riesgos derivados de su uso. Los colaboradores no proporcionan expresamente garantías o condiciones. Es posible que tenga derechos adicionales como consumidor bajo las leyes locales que esta licencia no puede cambiar. En la medida permitida por las leyes locales, los contribuyentes excluyen las garantías implícitas de comerciabilidad, idoneidad para un propósito particular y no infracción.
+
+## Licencias de uso
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+ * [The MIT License (MIT)]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** aplica a los siguientes componentes:
+
+#### 1. IpTviewr.Common
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
+### The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+> **'The MIT License (MIT)'** aplica a los siguientes **componentes de terceros _(“THIRD-PARTY”)_:**
+
+#### 1. JetBrains.Annotations
+_Paquete 'nuget' por JetBrains_
+
+**Copyright (c) 2016 JetBrains http://www.jetbrains.com**
+
+ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/LICENSE.MD b/1.5 'Kruger 60'/Assemblies/Project.Common/LICENSE.MD
new file mode 100644
index 00000000..7a9b81cc
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/LICENSE.MD
@@ -0,0 +1,80 @@
+# Library 'IpTviewr.Common'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Terms and conditions
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+## Licenses
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+ * [The MIT License (MIT)]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** applies to the following components:
+
+#### 1. IpTviewr.Common
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
+### The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+> **'The MIT License (MIT)'** applies to the following **third-party components:**
+
+#### 1. JetBrains.Annotations
+_'nuget' package by JetBrains_
+
+**Copyright (c) 2016 JetBrains http://www.jetbrains.com**
+
+ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
diff --git a/1.5 'Kruger 60'/Project.Common/Launcher.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/Launcher.cs
similarity index 80%
rename from 1.5 'Kruger 60'/Project.Common/Launcher.cs
rename to 1.5 'Kruger 60'/Assemblies/Project.Common/Launcher.cs
index 9a097863..79942c64 100644
--- a/1.5 'Kruger 60'/Project.Common/Launcher.cs
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Launcher.cs
@@ -1,11 +1,18 @@
-// Copyright (C) 2014-2016, Codeplex/GitHub user AlphaCentaury
-// All rights reserved, except those granted by the governing license of this software. See 'license.txt' file in the project root for complete license information.
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
using System;
-using System.Collections.Generic;
using System.Diagnostics;
-using System.Linq;
-using System.Text;
using System.Windows.Forms;
namespace IpTviewr.Common
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/License.txt b/1.5 'Kruger 60'/Assemblies/Project.Common/License.txt
new file mode 100644
index 00000000..441721cd
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/License.txt
@@ -0,0 +1,98 @@
+##############################################################################
+##
+## Library 'IpTviewr.Common'
+##
+##############################################################################
+##
+## IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+## by Codeplex/GitHub user AlphaCentaury
+##
+## Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+##
+## http://www.alphacentaury.org/movistartv
+## https://github.com/AlphaCentaury
+##
+##############################################################################
+
+A.- Terms and conditions
+==============================================================================
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+
+B.- Licenses
+==============================================================================
+
+ * Microsoft Reciprocal License (Ms-RL)
+ * The MIT License (MIT)
+
+
+////////////////////////////////////////////////////////////
+//
+// Microsoft Reciprocal License (Ms-RL)
+//
+////////////////////////////////////////////////////////////
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+////////////////////////////////////////////////////////////
+
+>>> 'Microsoft Reciprocal License (Ms-RL)' applies to the following components: <<<
+
+1. IpTviewr.Common
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+
+
+////////////////////////////////////////////////////////////
+//
+// The MIT License (MIT)
+//
+////////////////////////////////////////////////////////////
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+////////////////////////////////////////////////////////////
+
+>>> 'The MIT License (MIT)' applies to the following THIRD-PARTY components: <<<
+
+1. JetBrains.Annotations
+------------------------------
+'nuget' package by JetBrains
+Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/AssemblyInfo.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..67f41dba
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/AssemblyInfo.cs
@@ -0,0 +1,40 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Project.Common")]
+[assembly: AssemblyDescription("IpTviewr.Common")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCopyright(SolutionVersion.DefaultCopyright)]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("554861bf-241d-400b-a46d-38cd9365e2ea")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+[assembly: AssemblyVersion(SolutionVersion.DefaultAssemblyVersion)]
diff --git a/1.5 'Kruger 60'/Project.Common/Properties/FormatStringTexts.Designer.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/FormatStringTexts.Designer.cs
similarity index 91%
rename from 1.5 'Kruger 60'/Project.Common/Properties/FormatStringTexts.Designer.cs
rename to 1.5 'Kruger 60'/Assemblies/Project.Common/Properties/FormatStringTexts.Designer.cs
index 7bc60ff1..79db8182 100644
--- a/1.5 'Kruger 60'/Project.Common/Properties/FormatStringTexts.Designer.cs
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/FormatStringTexts.Designer.cs
@@ -1,12 +1,15 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
namespace IpTviewr.Common.Properties {
using System;
@@ -19,7 +22,7 @@ namespace IpTviewr.Common.Properties {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class FormatStringTexts {
diff --git a/1.5 'Kruger 60'/Project.Common/Properties/FormatStringTexts.es.resx b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/FormatStringTexts.es.resx
similarity index 97%
rename from 1.5 'Kruger 60'/Project.Common/Properties/FormatStringTexts.es.resx
rename to 1.5 'Kruger 60'/Assemblies/Project.Common/Properties/FormatStringTexts.es.resx
index 51923c1a..d9d1599c 100644
--- a/1.5 'Kruger 60'/Project.Common/Properties/FormatStringTexts.es.resx
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/FormatStringTexts.es.resx
@@ -1,153 +1,153 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- {0:d} {0:t} a {1:d} {1:t}
-
-
- {0:d} {0:t} a {1:t}
-
-
- {0:t} a {1:d} {1:t}
-
-
- {0:t} a {1:t}
-
-
- {0:N0} minutos
-
-
- {0:N0}m
-
-
- {2:N0}d {1:N0}h {0:N0}m
-
-
- {1:N0}h {0:N0}m
-
-
- {0:N0} minutos
-
-
- {2:N0} días, {1:N0} horas y {0:N0} minutos
-
-
- {1:N0} horas y {0:N0} minutos
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ {0:d} {0:t} a {1:d} {1:t}
+
+
+ {0:d} {0:t} a {1:t}
+
+
+ {0:t} a {1:d} {1:t}
+
+
+ {0:t} a {1:t}
+
+
+ {0:N0} minutos
+
+
+ {0:N0}m
+
+
+ {2:N0}d {1:N0}h {0:N0}m
+
+
+ {1:N0}h {0:N0}m
+
+
+ {0:N0} minutos
+
+
+ {2:N0} días, {1:N0} horas y {0:N0} minutos
+
+
+ {1:N0} horas y {0:N0} minutos
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Project.Common/Properties/FormatStringTexts.resx b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/FormatStringTexts.resx
similarity index 97%
rename from 1.5 'Kruger 60'/Project.Common/Properties/FormatStringTexts.resx
rename to 1.5 'Kruger 60'/Assemblies/Project.Common/Properties/FormatStringTexts.resx
index 70bf2882..508387da 100644
--- a/1.5 'Kruger 60'/Project.Common/Properties/FormatStringTexts.resx
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/FormatStringTexts.resx
@@ -1,153 +1,153 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- {0:N0} minutes
-
-
- {0:N0}m
-
-
- {2:N0}d {1:N0}h {0:N0}m
-
-
- {1:N0}h {0:N0}m
-
-
- {2:N0} days, {1:N0} hours, {0:N0} minutes
-
-
- {0:N0} minutes
-
-
- {1:N0} hours, {0:N0} minutes
-
-
- {0:d} {0:t} to {1:d} {1:t}
-
-
- {0:d} {0:t} to {1:t}
-
-
- {0:t} to {1:d} {1:t}
-
-
- {0:t} to {1:t}
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ {0:N0} minutes
+
+
+ {0:N0}m
+
+
+ {2:N0}d {1:N0}h {0:N0}m
+
+
+ {1:N0}h {0:N0}m
+
+
+ {2:N0} days, {1:N0} hours, {0:N0} minutes
+
+
+ {0:N0} minutes
+
+
+ {1:N0} hours, {0:N0} minutes
+
+
+ {0:d} {0:t} to {1:d} {1:t}
+
+
+ {0:d} {0:t} to {1:t}
+
+
+ {0:t} to {1:d} {1:t}
+
+
+ {0:t} to {1:t}
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Resources.Designer.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Resources.Designer.cs
new file mode 100644
index 00000000..95b3d580
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Resources.Designer.cs
@@ -0,0 +1,66 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace IpTviewr.Common.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IpTviewr.Common.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/1.5 'Kruger 60'/UiServices.EPG/EpgChannelPrograms.resx b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Resources.resx
similarity index 100%
rename from 1.5 'Kruger 60'/UiServices.EPG/EpgChannelPrograms.resx
rename to 1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Resources.resx
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Texts.Designer.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Texts.Designer.cs
new file mode 100644
index 00000000..9fa22cac
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Texts.Designer.cs
@@ -0,0 +1,93 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace IpTviewr.Common.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Texts {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Texts() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IpTviewr.Common.Properties.Texts", typeof(Texts).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Unable to open an Internet browser to display this web page: '{0}'..
+ ///
+ internal static string LauncherOpenUrlError {
+ get {
+ return ResourceManager.GetString("LauncherOpenUrlError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to An error has occurred while processing your request.
+ ///
+ internal static string MyAppHandleExceptionDefaultCaption {
+ get {
+ return ResourceManager.GetString("MyAppHandleExceptionDefaultCaption", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to No information has been supplied as to where or why the error occurred. Find error details below:.
+ ///
+ internal static string MyAppHandleExceptionDefaultMessage {
+ get {
+ return ResourceManager.GetString("MyAppHandleExceptionDefaultMessage", resourceCulture);
+ }
+ }
+ }
+}
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Texts.es.resx b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Texts.es.resx
new file mode 100644
index 00000000..e8f308b1
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Texts.es.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ No ha sido posible abrir un navegador de Internet para mostrar la página web '{0}'.
+
+
+ Se ha producido un error al procesar su solicitud
+
+
+ Ninguna información ha sido proporcionada en cuanto a dónde ni por qué ocurrio el error. Los detalles del error se muestran a continuación:
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Texts.resx b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Texts.resx
new file mode 100644
index 00000000..7ba10113
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Properties/Texts.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Unable to open an Internet browser to display this web page: '{0}'.
+
+
+ An error has occurred while processing your request
+
+
+ No information has been supplied as to where or why the error occurred. Find error details below:
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/Serialization/XmlCDataText.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/Serialization/XmlCDataText.cs
new file mode 100644
index 00000000..279bb833
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Serialization/XmlCDataText.cs
@@ -0,0 +1,180 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml;
+using System.Xml.Schema;
+using System.Xml.Serialization;
+
+namespace IpTviewr.Common.Serialization
+{
+ [Serializable]
+ public class XmlCDataText : IXmlSerializable, IEquatable, IEquatable, IComparable, IComparable, IComparable
+ {
+ public XmlCDataText()
+ {
+ // no-op
+ } // constructor
+
+ public XmlCDataText(string text)
+ {
+ Text = text;
+ } // constructor
+
+ [XmlIgnore]
+ public string Text { get; set; }
+
+ public override string ToString() => Text;
+
+ XmlSchema IXmlSerializable.GetSchema()
+ {
+ return null;
+ } // IXmlSerializable.GetSchema
+
+ void IXmlSerializable.ReadXml(XmlReader reader)
+ {
+ Text = reader.ReadElementContentAsString();
+ } // IXmlSerializable.ReadXml
+
+ void IXmlSerializable.WriteXml(XmlWriter writer)
+ {
+ if (Text == null) return;
+ if (Text.Contains('\r') || Text.Contains('\n'))
+ {
+ writer.WriteCData(Text);
+ }
+ else
+ {
+ writer.WriteString(Text);
+ } // if-else
+ } // IXmlSerializable.WriteXml
+
+ public static implicit operator XmlCDataText(string text) => new XmlCDataText(text);
+ public static implicit operator string(XmlCDataText xmlCData) => xmlCData.Text;
+
+ #region Equality members
+
+ public bool Equals(XmlCDataText other)
+ {
+ if (other is null) return false;
+ if (ReferenceEquals(this, other)) return true;
+ return string.Equals(Text, other.Text, StringComparison.CurrentCulture);
+ } // Equals
+
+ public bool Equals(string other)
+ {
+ if (other is null) return false;
+ return string.Equals(Text, other, StringComparison.CurrentCulture);
+ } // Equals
+
+ public override bool Equals(object obj)
+ {
+ return ReferenceEquals(this, obj) || (obj is XmlCDataText other && Equals(other)) || (obj is string text && Equals(text));
+ } // Equals
+
+ public override int GetHashCode()
+ {
+ return (Text != null ? StringComparer.CurrentCulture.GetHashCode(Text) : 0);
+ } // GetHashCode
+
+ public static bool operator ==(XmlCDataText left, XmlCDataText right)
+ {
+ if (ReferenceEquals(left, right)) return true;
+ return !(left is null) && left.Equals(right);
+ } // operator ==
+
+ public static bool operator !=(XmlCDataText left, XmlCDataText right)
+ {
+ return !(left == right);
+ } // operator !=
+
+ public static bool operator ==(XmlCDataText left, string right)
+ {
+ return !(left is null) && left.Equals(right);
+ } // operator ==
+
+ public static bool operator !=(XmlCDataText left, string right)
+ {
+ return !(left == right);
+ } // operator !=
+
+ public static bool operator ==(string left, XmlCDataText right)
+ {
+ return !(right is null) && right.Equals(left);
+ } // operator ==
+
+ public static bool operator !=(string left, XmlCDataText right)
+ {
+ return !(left == right);
+ } // operator !=
+
+ #endregion
+
+ #region Relational members: XmlCDataText
+
+ public int CompareTo(XmlCDataText other)
+ {
+ if (ReferenceEquals(this, other)) return 0;
+ if (other is null) return 1;
+ return string.Compare(Text, other.Text, StringComparison.CurrentCulture);
+ }
+
+ public int CompareTo(object obj)
+ {
+ if (obj is null) return 1;
+ if (ReferenceEquals(this, obj)) return 0;
+ switch (obj)
+ {
+ case XmlCDataText other:
+ return CompareTo(other);
+ case string text:
+ return CompareTo(text);
+ default:
+ throw new ArgumentException($"CompareTo: Object must be of type {nameof(XmlCDataText)} -or- {nameof(String)}");
+ } // switch
+ } // CompareTo
+
+ public static bool operator <(XmlCDataText left, XmlCDataText right)
+ {
+ return Comparer.Default.Compare(left, right) < 0;
+ } // operator <
+
+ public static bool operator >(XmlCDataText left, XmlCDataText right)
+ {
+ return Comparer.Default.Compare(left, right) > 0;
+ } // operator >
+
+ public static bool operator <=(XmlCDataText left, XmlCDataText right)
+ {
+ return Comparer.Default.Compare(left, right) <= 0;
+ } // operator <=
+
+ public static bool operator >=(XmlCDataText left, XmlCDataText right)
+ {
+ return Comparer.Default.Compare(left, right) >= 0;
+ } // operator >=
+
+ #endregion
+
+ #region Relational members: string
+
+ public int CompareTo(string other)
+ {
+ return (other is null) ? 1 : string.Compare(Text, other, StringComparison.CurrentCulture);
+ } // CompareTo
+
+ #endregion
+ } // class XmlCDataText
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/Serialization/XmlSerialization.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/Serialization/XmlSerialization.cs
new file mode 100644
index 00000000..636f9469
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Serialization/XmlSerialization.cs
@@ -0,0 +1,165 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.IO;
+using System.Text;
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace IpTviewr.Common.Serialization
+{
+ public static class XmlSerialization
+ {
+ public static Lazy Utf8NoBomEncoding = new Lazy(CreateDefaultEncoding);
+
+ #region Serialize
+
+ public static object CloneObject(object data)
+ {
+ using var buffer = new MemoryStream();
+
+ SerializeObject(buffer, data);
+ buffer.Seek(0, SeekOrigin.Begin);
+ return Deserialize(buffer, data.GetType());
+ } // Clone
+
+ public static T Clone(T data) where T : class
+ {
+ using var buffer = new MemoryStream();
+ SerializeObject(buffer, data);
+ buffer.Seek(0, SeekOrigin.Begin);
+
+ return Deserialize(buffer);
+ } // CloneSettings
+
+ public static void SerializeObject(Stream output, object o)
+ {
+ var serializer = new XmlSerializer(o.GetType());
+ serializer.Serialize(output, o);
+ } // SerializeObject
+
+ public static void Serialize(string filename, T o)
+ {
+ using var output = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite);
+ Serialize(output, Utf8NoBomEncoding.Value, o);
+ } // Serialize
+
+ public static void Serialize(string filename, Encoding encoding, T o)
+ {
+ using var output = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite);
+ Serialize(output, encoding, o);
+ } // Serialize
+
+ public static void Serialize(Stream output, T o)
+ {
+ Serialize(output, Utf8NoBomEncoding.Value, o);
+ } // Serialize
+
+ public static void Serialize(Stream output, Encoding encoding, T o, bool leaveStreamOpen = false)
+ {
+ var serializer = new XmlSerializer(typeof(T));
+ using var outputWriter = new StreamWriter(output, encoding ?? Utf8NoBomEncoding.Value, 4096, leaveStreamOpen);
+ serializer.Serialize(outputWriter, o);
+ } // Serialize
+
+ public static void Serialize(XmlWriter output, T o)
+ {
+ var serializer = new XmlSerializer(typeof(T));
+ serializer.Serialize(output, o);
+ } // Serialize
+
+ #endregion
+
+ #region Deserialize
+
+ public static object Deserialize(Stream input, Type type, bool trimExtraWhitespace = false, Func namespaceReplacer = null)
+ {
+ using var reader = CreateXmlReader(input, trimExtraWhitespace, namespaceReplacer);
+ return Deserialize(reader, type);
+ } // Deserialize
+
+ public static object Deserialize(XmlReader reader, Type type)
+ {
+ var serializer = new XmlSerializer(type);
+
+ return serializer.Deserialize(reader);
+ } // Deserialize
+
+ public static T DeserializeXmlText(string xmlText, bool trimExtraWhitespace = false, Func namespaceReplacer = null) where T : class
+ {
+ using var input = new StringReader(xmlText);
+ using var reader = CreateXmlReader(input, trimExtraWhitespace, namespaceReplacer);
+
+ return Deserialize(reader);
+ } // Deserialize
+
+ public static T Deserialize(XmlReader reader) where T : class
+ {
+ var serializer = new XmlSerializer(typeof(T));
+ return serializer.Deserialize(reader) as T;
+ } // Deserialize
+
+ public static T Deserialize(string filename, bool trimExtraWhitespace = false, Func namespaceReplacer = null) where T : class
+ {
+ using var input = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
+
+ return Deserialize(input, trimExtraWhitespace, namespaceReplacer);
+ } // XmlDeserialize
+
+ public static T Deserialize(Stream input, bool trimExtraWhitespace = false, Func namespaceReplacer = null) where T : class
+ {
+ return Deserialize(input, typeof(T), trimExtraWhitespace, namespaceReplacer) as T;
+ } // Deserialize
+
+ public static T Deserialize(byte[] data, bool trimExtraWhitespace = false, Func namespaceReplacer = null) where T : class
+ {
+ using var input = new MemoryStream(data);
+
+ return Deserialize(input, trimExtraWhitespace, namespaceReplacer);
+ } // Deserialize
+
+ public static XmlReader CreateXmlReader(Stream input, bool trimExtraWhitespace, Func namespaceReplacer)
+ {
+ if (!trimExtraWhitespace) return XmlReader.Create(input);
+
+ var readerSettings = new XmlReaderSettings()
+ {
+ IgnoreComments = true,
+ IgnoreWhitespace = true,
+ };
+
+ return new XmlTextReaderTrimExtraWhitespace(input, readerSettings, namespaceReplacer);
+ } // CreateXmlReader
+
+ public static XmlReader CreateXmlReader(TextReader input, bool trimExtraWhitespace, Func namespaceReplacer)
+ {
+ if (!trimExtraWhitespace) return XmlReader.Create(input);
+
+ var readerSettings = new XmlReaderSettings
+ {
+ IgnoreComments = true,
+ IgnoreWhitespace = true,
+ };
+
+ return new XmlTextReaderTrimExtraWhitespace(input, readerSettings, namespaceReplacer);
+ } // CreateXmlReader
+
+ #endregion
+
+ private static Encoding CreateDefaultEncoding()
+ {
+ return new UTF8Encoding(false);
+ } // CreateDefaultEncoding
+ } // class XmlSerialization
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/Serialization/XmlTextReaderTrimExtraWhitespace.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/Serialization/XmlTextReaderTrimExtraWhitespace.cs
new file mode 100644
index 00000000..d73cdf8d
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Serialization/XmlTextReaderTrimExtraWhitespace.cs
@@ -0,0 +1,114 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.IO;
+using System.Text;
+using System.Xml;
+
+namespace IpTviewr.Common.Serialization
+{
+ public class XmlTextReaderTrimExtraWhitespace : XmlTextReader
+ {
+ private readonly XmlReaderSettings _mySettings;
+ private readonly Func _namespaceReplacer;
+
+ public XmlTextReaderTrimExtraWhitespace(Stream input, Func namespaceReplacer)
+ : base(input)
+ {
+ _namespaceReplacer = namespaceReplacer;
+ } // constructor
+
+ public XmlTextReaderTrimExtraWhitespace(Stream input, XmlReaderSettings settings, Func namespaceReplacer)
+ : base(input)
+ {
+ _mySettings = settings;
+ _namespaceReplacer = namespaceReplacer;
+ } // constructor
+
+ public XmlTextReaderTrimExtraWhitespace(TextReader input, Func namespaceReplacer)
+ : base(input)
+ {
+ _namespaceReplacer = namespaceReplacer;
+ } // constructor
+
+ public XmlTextReaderTrimExtraWhitespace(TextReader input, XmlReaderSettings settings, Func namespaceReplacer)
+ : base(input)
+ {
+ _mySettings = settings;
+ _namespaceReplacer = namespaceReplacer;
+ } // constructor
+
+ public override XmlReaderSettings Settings => _mySettings ?? base.Settings;
+
+ public override string NamespaceURI
+ {
+ get
+ {
+ var ns = base.NamespaceURI;
+
+ if (_namespaceReplacer == null) return ns;
+ if (string.IsNullOrEmpty(ns)) return ns;
+
+ return _namespaceReplacer(ns);
+ } // get
+ } // NamespaceURI
+
+ public override string ReadString()
+ {
+ return TrimExtraWhitespace(base.ReadString());
+ } // ReadString
+
+ public static string TrimExtraWhitespace(string input)
+ {
+ if (string.IsNullOrEmpty(input)) return input;
+
+ var startIndex = 0;
+ for (var i = 0; i < input.Length; i++)
+ {
+ if (!char.IsWhiteSpace(input[i]))
+ {
+ startIndex = i;
+ break;
+ } // if
+ } // for
+
+ var endIndex = input.Length;
+ for (var i = input.Length - 1; i >= startIndex; i--)
+ {
+ if (!char.IsWhiteSpace(input[i]))
+ {
+ endIndex = i + 1;
+ break;
+ } // if
+ } // for
+
+ var buffer = new StringBuilder((endIndex - startIndex) + 1);
+ for (var i = startIndex; i < endIndex; i++)
+ {
+ var c = input[i];
+ var isWhitespace = char.IsWhiteSpace(c);
+ if (isWhitespace)
+ {
+ c = ' ';
+ } // if
+ if ((i == startIndex) || !isWhitespace || (isWhitespace && !char.IsWhiteSpace(input[i - 1])))
+ {
+ buffer.Append(c);
+ } // if
+ } // for
+
+ return buffer.ToString();
+ } // TrimExtraWhitespace
+ } // XmlTextReaderTrimExtraWhitespace
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/Telemetry/AppTelemetry.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/Telemetry/AppTelemetry.cs
new file mode 100644
index 00000000..eb870a90
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Telemetry/AppTelemetry.cs
@@ -0,0 +1,225 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using JetBrains.Annotations;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Runtime.CompilerServices;
+using System.Windows.Forms;
+
+namespace IpTviewr.Common.Telemetry
+{
+ public static class AppTelemetry
+ {
+ public const string LoadEvent = "Load";
+ public const string UnloadEvent = "Unload";
+
+ private static readonly object Sync = new object();
+ private static List _providers;
+ private static bool _enabled;
+
+ public static bool Enabled
+ {
+ get => _enabled;
+ private set
+ {
+ _enabled = value;
+ ForEach(provider => provider.Enabled = value);
+ } // set
+ } // Enabled
+
+ public static bool Usage
+ {
+ get;
+ private set;
+ } // Usage
+
+ public static bool Exceptions
+ {
+ get;
+ private set;
+ } // Exceptions
+
+ public static IReadOnlyList Providers => _providers;
+
+ public static void Start([NotNull] ITelemetryFactory factory, [NotNull] TelemetryConfiguration configuration, [NotNull] IReadOnlyDictionary> providersProperties)
+ {
+ if (factory == null) throw new ArgumentNullException(nameof(factory));
+ if (providersProperties == null) throw new ArgumentNullException(nameof(providersProperties));
+ if (configuration == null) throw new ArgumentNullException(nameof(configuration));
+
+ lock (Sync)
+ {
+ if (_providers != null) return;
+ } // lock
+
+ _enabled = configuration.Enabled;
+ Usage = configuration.Usage;
+ Exceptions = configuration.Exceptions;
+
+ if (!Enabled) return;
+
+ _providers = factory.GetProviders();
+ if (_providers == null) throw new NullReferenceException();
+
+ foreach (var provider in _providers)
+ {
+ provider.Enabled = configuration.Enabled;
+ // ReSharper disable once AssignNullToNotNullAttribute
+ provider.Start(providersProperties.TryGetValue(provider.GetType().FullName, out var properties) ? properties : null);
+ } // foreach
+ } // Start
+
+ /*
+ public static void Enable(bool? enable, bool? usage, bool? exceptions)
+ {
+ lock (Sync)
+ {
+ if (usage != null) Usage = usage.Value;
+ if (exceptions != null) Exceptions = exceptions.Value;
+ if (enable != null) Enabled = enable.Value;
+ } // lock
+ } // Enable
+ */
+
+ public static void End()
+ {
+ lock (Sync)
+ {
+ if (_providers == null) return;
+ ForEach(provider => provider.End());
+ _providers = null;
+ _enabled = false;
+ Usage = false;
+ Exceptions = false;
+ } // lock
+ } // End
+
+ #region Screen/Form event
+
+ public static void ScreenEvent(string eventName, string screenName, string data = null)
+ {
+ if (!_enabled || !Usage) return;
+
+ ForEach(provider => provider.ScreenEvent(eventName, screenName, data));
+ } // ScreenEvent
+
+ public static void ScreenEvent(string eventName, string screenName, string data, IEnumerable> properties)
+ {
+ if (!_enabled || !Usage) return;
+
+ ForEach(provider => provider.ScreenEvent(eventName, screenName, data, properties));
+ } // ScreenEvent
+
+ public static void FormEvent(string eventName, Form form, string data = null)
+ {
+ ScreenEvent(eventName, form?.GetType().FullName, data);
+ } // ScreenEvent
+
+ [PublicAPI]
+ public static void FormEvent(string eventName, Form form, string data, IEnumerable> properties)
+ {
+ ScreenEvent(eventName, form?.GetType().FullName, data, properties);
+ } // ScreenEvent
+
+ #endregion
+
+ #region Screen/Form exception
+
+ public static void ScreenException(Exception ex, string screenName, string message = null)
+ {
+ if (!_enabled || !Exceptions) return;
+
+ ForEach(provider => provider.Exception(ex, screenName, message));
+ } // FormException
+
+ public static void FormException(Exception ex, Form form, string message = null)
+ {
+ ScreenException(ex, form?.GetType().FullName, message);
+ } // FormException
+
+ public static void ScreenException(Exception ex, string screenName, string message, IEnumerable> properties)
+ {
+ if (!_enabled || !Exceptions) return;
+
+ ForEach(provider => provider.Exception(ex, screenName, message, properties));
+ } // FormException
+
+ [PublicAPI]
+ public static void FormException(Exception ex, Form form, string message, IEnumerable> properties)
+ {
+ ScreenException(ex, form?.GetType().FullName, message, properties);
+ } // FormException
+
+ #endregion
+
+ #region Screen/Form custom event
+
+ public static void CustomEvent(string screenName, string category, string action, string data = null)
+ {
+ if (!_enabled || !Usage) return;
+
+ ForEach(provider => provider.CustomEvent(category, action, screenName, data));
+ } // CustomEvent
+
+ [PublicAPI]
+ public static void FormCustomEvent(Form form, string category, string action, string data = null)
+ {
+ CustomEvent(form?.GetType().FullName, category, action, data);
+ } // CustomEvent
+
+ public static void CustomEvent(string screenName, string category, string action, string data, IEnumerable> properties)
+ {
+ if (!_enabled || !Usage) return;
+
+ ForEach(provider => provider.CustomEvent(category, action, screenName, data, properties));
+ } // CustomEvent
+
+ [PublicAPI]
+ public static void FormCustomEvent(Form form, string category, string action, string data, IEnumerable> properties)
+ {
+ CustomEvent(form?.GetType().FullName, category, action, data, properties);
+ } // CustomEvent
+
+ #endregion
+
+ #region Auxiliary methods
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ private static void ForEach(Action action)
+ {
+ SafeForEach(_providers, action);
+ } // ForEach
+
+ private static void SafeForEach(IEnumerable list, Action action)
+ {
+ if (list == null) return;
+
+ foreach (var provider in list)
+ {
+ try
+ {
+ action.Invoke(provider);
+ }
+ catch
+ {
+ // ignore all exceptions
+ } // try-catch
+ } // foreach
+ } // SafeForEach
+
+ #endregion
+ } // class AppTelemetry
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/Telemetry/ITelemetryFactory.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/Telemetry/ITelemetryFactory.cs
new file mode 100644
index 00000000..bc4d2cad
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Telemetry/ITelemetryFactory.cs
@@ -0,0 +1,22 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Collections.Generic;
+
+namespace IpTviewr.Common.Telemetry
+{
+ public interface ITelemetryFactory
+ {
+ List GetProviders();
+ } // interface ITelemetryFactory
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/Telemetry/ITelemetryProvider.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/Telemetry/ITelemetryProvider.cs
new file mode 100644
index 00000000..c42be5a6
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Telemetry/ITelemetryProvider.cs
@@ -0,0 +1,29 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Collections.Generic;
+using JetBrains.Annotations;
+
+namespace IpTviewr.Common.Telemetry
+{
+ public interface ITelemetryProvider
+ {
+ bool Enabled { get; set; }
+ void Start([CanBeNull] IReadOnlyDictionary properties);
+ void End();
+ void ScreenEvent(string eventName, string screenName, string data = null, IEnumerable> properties = null);
+ void Exception(Exception ex, string screenName, string message = null, IEnumerable> properties = null);
+ void CustomEvent(string eventName, string action, string screenName, string data = null, IEnumerable> properties = null);
+ } // interface ITelemetryProvider
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/Telemetry/TelemetryConfiguration.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/Telemetry/TelemetryConfiguration.cs
new file mode 100644
index 00000000..b0827850
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/Telemetry/TelemetryConfiguration.cs
@@ -0,0 +1,51 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Xml.Serialization;
+
+namespace IpTviewr.Common.Telemetry
+{
+ [Serializable]
+ public class TelemetryConfiguration
+ {
+ public TelemetryConfiguration()
+ {
+ } // constructor
+
+ public TelemetryConfiguration(bool enabled, bool usage, bool exceptions)
+ {
+ Enabled = enabled;
+ Usage = usage;
+ Exceptions = exceptions;
+ } // AnalyticsConfig
+
+ public bool Enabled
+ {
+ get;
+ set;
+ } // Enabled
+
+ public bool Usage
+ {
+ get;
+ set;
+ } // Usage
+
+ public bool Exceptions
+ {
+ get;
+ set;
+ } // Exceptions
+ } // class TelemetryConfiguration
+} // namespace
diff --git a/1.5 'Kruger 60'/Project.Common/TextUtils.cs b/1.5 'Kruger 60'/Assemblies/Project.Common/TextUtils.cs
similarity index 78%
rename from 1.5 'Kruger 60'/Project.Common/TextUtils.cs
rename to 1.5 'Kruger 60'/Assemblies/Project.Common/TextUtils.cs
index e7ca9f63..1395ee0b 100644
--- a/1.5 'Kruger 60'/Project.Common/TextUtils.cs
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/TextUtils.cs
@@ -1,12 +1,20 @@
-// Copyright (C) 2014-2016, Codeplex/GitHub user AlphaCentaury
-// All rights reserved, except those granted by the governing license of this software. See 'license.txt' file in the project root for complete license information.
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
using System;
-using System.Collections.Generic;
using System.IO;
-using System.Linq;
using System.Text;
-using System.Threading.Tasks;
+using JetBrains.Annotations;
namespace IpTviewr.Common
{
@@ -14,18 +22,16 @@ public class TextUtils
{
#region RemoveInvalidChars
+ [PublicAPI]
public static string RemoveInvalidChars(string text, char[] invalidChars)
{
- bool modified;
-
- return RemoveInvalidChars(text, invalidChars, null, out modified);
+ return RemoveInvalidChars(text, invalidChars, null, out _);
} // RemoveInvalidChars
+ [PublicAPI]
public static string RemoveInvalidChars(string text, char[] invalidChars, string replacementText)
{
- bool modified;
-
- return RemoveInvalidChars(text, invalidChars, replacementText, out modified);
+ return RemoveInvalidChars(text, invalidChars, replacementText, out _);
} // RemoveInvalidChars
public static string RemoveInvalidChars(string text, char[] invalidChars, string replacementText, out bool modified)
@@ -40,20 +46,17 @@ public static string RemoveInvalidChars(string text, char[] invalidChars, string
private static string InternalRemoveInvalidChars(string text, char[] invalidChars, string replacementString, out bool modified)
{
- StringBuilder buffer;
- int startIndex, index;
-
modified = false;
// do nothing is null or empty
if (string.IsNullOrEmpty(text)) return text;
// quick test: any offending char?
- index = text.IndexOfAny(invalidChars);
+ var index = text.IndexOfAny(invalidChars);
if (index < 0) return text;
- buffer = new StringBuilder(text.Length * 2);
- startIndex = 0;
+ var buffer = new StringBuilder(text.Length * 2);
+ var startIndex = 0;
while (index >= 0)
{
if (index != startIndex)
@@ -88,20 +91,19 @@ public static char[] GetFilenameInvalidChars()
return Path.GetInvalidFileNameChars();
} // GetInvalidChars
+ [PublicAPI]
public static string SanitizeFilename(string text)
{
- bool modified;
-
- return InternalRemoveInvalidChars(text, GetFilenameInvalidChars(), null, out modified);
+ return InternalRemoveInvalidChars(text, GetFilenameInvalidChars(), null, out _);
} // SanitizeFilename
+ [PublicAPI]
public static string SanitizeFilename(string text, string replacementText)
{
- bool modified;
-
- return InternalRemoveInvalidChars(text, GetFilenameInvalidChars(), replacementText, out modified);
+ return InternalRemoveInvalidChars(text, GetFilenameInvalidChars(), replacementText, out _);
} // SanitizeFilename
+ [PublicAPI]
public static string SanitizeFilename(string text, string replacementText, out bool modified)
{
return InternalRemoveInvalidChars(text, GetFilenameInvalidChars(), replacementText, out modified);
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/app.config b/1.5 'Kruger 60'/Assemblies/Project.Common/app.config
new file mode 100644
index 00000000..aba5e0c4
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/app.config
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/licensing.xml b/1.5 'Kruger 60'/Assemblies/Project.Common/licensing.xml
new file mode 100644
index 00000000..bdd51320
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/licensing.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+
+
+
+
+
+
+
+ MIT
+ JetBrains
+ Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
+
+
+
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Common/packages.config b/1.5 'Kruger 60'/Assemblies/Project.Common/packages.config
new file mode 100644
index 00000000..3d5fd2ef
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Common/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/IpTviewr.Native.csproj b/1.5 'Kruger 60'/Assemblies/Project.Native/IpTviewr.Native.csproj
new file mode 100644
index 00000000..cdfa69d9
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/IpTviewr.Native.csproj
@@ -0,0 +1,96 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {8986CD52-0C65-42D6-9C47-20FF47CF87BB}
+ Library
+ Properties
+ IpTviewr.Native
+ IpTViewr.Native
+ v4.6.2
+ 512
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ false
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ false
+
+
+
+ ..\..\packages\JetBrains.Annotations.2019.1.3\lib\net20\JetBrains.Annotations.dll
+
+
+
+
+
+
+
+
+
+
+ Properties\AssemblySolutionInfo.cs
+
+
+
+
+
+
+ True
+ True
+ Texts.resx
+
+
+
+
+
+ Component
+
+
+
+
+
+
+
+
+
+
+ ResXFileCodeGenerator
+ Texts.Designer.cs
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/LICENSE.ES.MD b/1.5 'Kruger 60'/Assemblies/Project.Native/LICENSE.ES.MD
new file mode 100644
index 00000000..27112823
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/LICENSE.ES.MD
@@ -0,0 +1,108 @@
+# Biblioteca 'IpTViewr.Native'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Términos y condiciones de uso
+
+Este COMPONENTE (el “SOFTWARE”), ya sea en forma de código binario o fuente, está **sujeto a los términos de la Licencia Recíproca de Microsoft _“Microsoft Reciprocal License” (Ms-RL)_**, excepto en lo relativo a componentes de terceras partes (“THIRD-PARTY”). \
+Todos los demás derechos están reservados por el/los autor(es) del software.
+
+**EL SOFTWARE SE PROPORCIONA “TAL CUAL”, SIN GARANTÍA DE NINGÚN TIPO**, expresa o implícita, incluyendo (pero no limitándose a) las garantías de comerciabilidad, idoneidad para un propósito particular y no infracción. \
+En ningún caso, los autores o titulares del Copyright serán responsables de ninguna reclamación, daños o cualquier otra responsabilidad, ya sea en una acción de contrato, agravio o cualquier otro motivo, con o sin relación con el software o el uso u otros aspectos del software.
+
+Todas las marcas comerciales, marcas de servicio, nombres comerciales, nombres de productos y logotipos son propiedad de sus respectivos propietarios.
+Su uso en el contexto de este software no constituye un respaldo ni apoyo por parte de sus respectivos propietarios.
+
+----------------------------------------------------------------------
+
+
+_A continuación se proporciona una traducción aproximada de la **Licencia recíproca de Microsoft (Ms-RL)** al español. Esta traducción carece de cualquier validez legal._
+
+Esta licencia rige el uso del software que lo acompaña. Si utiliza el software, usted acepta esta licencia. Si no acepta la licencia, no use el software.
+
+1. **Definiciones**
+
+ - Los términos “reproducir”, “reproducción”, “obras derivadas” y “distribución” tienen el mismo significado en este acuerdo de licencia que en la Ley de Derechos de Autor de EE. UU.
+ - Una “contribución” es el software original, o cualquier adición o cambio al software.
+ - Un “colaborador” es cualquier persona que distribuye su contribución bajo esta licencia.
+ - Las “patentes licenciadas” son declaraciones de patente de un contribuyente y que aplican directamente sobre su contribución.
+
+2. **Concesión de derechos**
+
+ - (A) _Concesión de derechos de autor:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le otorga una licencia de copyright no exclusiva, mundial y libre de regalías para reproducir su contribución, preparar crear trabajos derivados de su contribución, y distribuir su contribución o cualquier trabajo derivado que usted cree.
+ - (B) _Concesión de patentes:_ Sujeto a los términos de esta licencia, incluidas las condiciones y limitaciones de la licencia en la sección 3, cada colaborador le concede una licencia no exclusiva, mundial y libre de regalías bajo sus patentes autorizadas para realizar, haber realizado, usar, vender, ofrecer para la venta, importar y/o disponer de su contribución en el software o trabajos derivados de la contribución en el software.
+
+3. **Condiciones y limitaciones**
+
+ - (A) _Derechos recíprocos:_ Para cualquier archivo que distribuya que contenga código del software (en código fuente o formato binario), debe proporcionar a los destinatarios el código fuente de ese archivo junto con una copia de esta licencia, que será la licencia que regirá sobre el archivo. Puede licenciar otros archivos que son totalmente de su propiedad y que no contengan código alguno del software en los términos de licenciamiento que usted elija.
+ - (B) _Sin licencia de marca comercial:_ esta licencia no le concede el derecho a utilizar el nombre, el logotipo o las marcas comerciales de ningún colaborador.
+ - (C) Si presenta una reclamación de patente contra un contribuyente por patentes que usted alega son infringidas por el software, la licencia de patente sobre el software que dicho colaborador le proporcionó finaliza automáticamente.
+ - (D) Si distribuye cualquier parte del software, debe conservar todos los avisos de copyright, patente, marca comercial y atribución que están presentes en el software.
+ - (E) Si distribuye cualquier porción del software en forma de código fuente, puede hacerlo solo bajo esta licencia incluyendo una copia completa de esta licencia con su distribución. Si distribuye cualquier porción del software en forma de código compilado u objeto, solo puede hacerlo bajo una licencia que cumpla con esta licencia.
+ - (F) El software se proporciona “tal cual está”. Usted asume los riesgos derivados de su uso. Los colaboradores no proporcionan expresamente garantías o condiciones. Es posible que tenga derechos adicionales como consumidor bajo las leyes locales que esta licencia no puede cambiar. En la medida permitida por las leyes locales, los contribuyentes excluyen las garantías implícitas de comerciabilidad, idoneidad para un propósito particular y no infracción.
+
+## Licencias de uso
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+ * [The MIT License (MIT)]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** aplica a los siguientes componentes:
+
+#### 1. IpTViewr.Native
+_Biblioteca por Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
+### The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+> **'The MIT License (MIT)'** aplica a los siguientes **componentes de terceros _(“THIRD-PARTY”)_:**
+
+#### 1. JetBrains.Annotations
+_Paquete 'nuget' por JetBrains_
+
+**Copyright (c) 2016 JetBrains http://www.jetbrains.com**
+
+ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/LICENSE.MD b/1.5 'Kruger 60'/Assemblies/Project.Native/LICENSE.MD
new file mode 100644
index 00000000..366ef0ed
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/LICENSE.MD
@@ -0,0 +1,80 @@
+# Library 'IpTViewr.Native'
+IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1\
+_by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+_http://www.alphacentaury.org/movistartv \
+https://github.com/AlphaCentaury_
+
+## Terms and conditions
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+## Licenses
+
+ * [Microsoft Reciprocal License (Ms-RL)]
+ * [The MIT License (MIT)]
+
+### Microsoft Reciprocal License (Ms-RL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+
+> **'Microsoft Reciprocal License (Ms-RL)'** applies to the following components:
+
+#### 1. IpTViewr.Native
+_Library by Codeplex/GitHub user AlphaCentaury_
+
+**Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors**
+
+
+
+### The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+> **'The MIT License (MIT)'** applies to the following **third-party components:**
+
+#### 1. JetBrains.Annotations
+_'nuget' package by JetBrains_
+
+**Copyright (c) 2016 JetBrains http://www.jetbrains.com**
+
+ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/License.txt b/1.5 'Kruger 60'/Assemblies/Project.Native/License.txt
new file mode 100644
index 00000000..a6352712
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/License.txt
@@ -0,0 +1,98 @@
+##############################################################################
+##
+## Library 'IpTViewr.Native'
+##
+##############################################################################
+##
+## IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+## by Codeplex/GitHub user AlphaCentaury
+##
+## Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+##
+## http://www.alphacentaury.org/movistartv
+## https://github.com/AlphaCentaury
+##
+##############################################################################
+
+A.- Terms and conditions
+==============================================================================
+
+This COMPONENT (“SOFWARE”), either in binary or source code form, is **licensed under the terms of the _Microsoft Reciprocal License (Ms-RL)_** except for “THIRD-PARTY” components. \
+All other rights are reserved by the author(s) of the software.
+
+_**THIS SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND**_, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. \
+In no event shall the authors or the copyright holders be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
+
+All trademarks, service marks, trade names, product names and logos are the property of their respective owners. \
+Its use in the context of this product does not constitute endorsement nor support by their respective owners.
+
+
+B.- Licenses
+==============================================================================
+
+ * Microsoft Reciprocal License (Ms-RL)
+ * The MIT License (MIT)
+
+
+////////////////////////////////////////////////////////////
+//
+// Microsoft Reciprocal License (Ms-RL)
+//
+////////////////////////////////////////////////////////////
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+1. **Definitions**
+
+ - The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+ - A “contribution” is the original software, or any additions or changes to the software.
+ - A “contributor” is any person that distributes its contribution under this license.
+ - “Licensed patents” are a contributor's patent claims that read directly on its contribution.
+
+2. **Grant of Rights**
+
+ - (A) _Copyright Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+ - (B) _Patent Grant_ - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+3. **Conditions and Limitations**
+
+ - (A) _Reciprocal Grants_ - For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
+ - (B) _No Trademark License_ - This license does not grant you rights to use any contributors' name, logo, or trademarks.
+ - (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+ - (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+ - (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+ - (F) _The software is licensed “as-is.”_ You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+
+////////////////////////////////////////////////////////////
+
+>>> 'Microsoft Reciprocal License (Ms-RL)' applies to the following components: <<<
+
+1. IpTViewr.Native
+------------------------------
+Library by Codeplex/GitHub user AlphaCentaury
+Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+
+
+
+////////////////////////////////////////////////////////////
+//
+// The MIT License (MIT)
+//
+////////////////////////////////////////////////////////////
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND**, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+////////////////////////////////////////////////////////////
+
+>>> 'The MIT License (MIT)' applies to the following THIRD-PARTY components: <<<
+
+1. JetBrains.Annotations
+------------------------------
+'nuget' package by JetBrains
+Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/NativeUtils.cs b/1.5 'Kruger 60'/Assemblies/Project.Native/NativeUtils.cs
new file mode 100644
index 00000000..929e25b0
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/NativeUtils.cs
@@ -0,0 +1,38 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Runtime.InteropServices;
+
+namespace IpTviewr.Native
+{
+ public static class NativeUtils
+ {
+ public static byte[] StructToBytes(T structure) where T : struct
+ {
+ var gcHandle = new GCHandle();
+
+ var bytes = new byte[Marshal.SizeOf(typeof(T))];
+ try
+ {
+ gcHandle = GCHandle.Alloc(structure, GCHandleType.Pinned);
+ Marshal.Copy(gcHandle.AddrOfPinnedObject(), bytes, 0, bytes.Length);
+
+ return bytes;
+ }
+ finally
+ {
+ if (gcHandle.IsAllocated) gcHandle.Free();
+ } // finally
+ } // StructToBytes
+ } // static class NativeUtils
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/Properties/AssemblyInfo.cs b/1.5 'Kruger 60'/Assemblies/Project.Native/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..2d698955
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/Properties/AssemblyInfo.cs
@@ -0,0 +1,40 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Project.Native")]
+[assembly: AssemblyDescription("IpTviewr.Native")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCopyright(SolutionVersion.DefaultCopyright)]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("b9724e24-10fb-45e0-8eee-e35975a9bb3f")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+[assembly: AssemblyVersion(SolutionVersion.DefaultAssemblyVersion)]
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/Properties/Texts.Designer.cs b/1.5 'Kruger 60'/Assemblies/Project.Native/Properties/Texts.Designer.cs
new file mode 100644
index 00000000..de5a6f53
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/Properties/Texts.Designer.cs
@@ -0,0 +1,93 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace IpTviewr.Native.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Texts {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Texts() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IpTviewr.Native.Properties.Texts", typeof(Texts).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Non-square icons are not supported.
+ ///
+ internal static string WindowsIcon_NonSquare {
+ get {
+ return ResourceManager.GetString("WindowsIcon_NonSquare", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Icons bigger than 256x256 are not supported in Windows.
+ ///
+ internal static string WindowsIcon_TooBig {
+ get {
+ return ResourceManager.GetString("WindowsIcon_TooBig", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Icons smaller than 16x16 are not supported in Windows.
+ ///
+ internal static string WindowsIcon_TooSmall {
+ get {
+ return ResourceManager.GetString("WindowsIcon_TooSmall", resourceCulture);
+ }
+ }
+ }
+}
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/Properties/Texts.es.resx b/1.5 'Kruger 60'/Assemblies/Project.Native/Properties/Texts.es.resx
new file mode 100644
index 00000000..20fc5b5b
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/Properties/Texts.es.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Los iconos no cuadrados no se admiten
+
+
+ Los iconos más grandes que 256x256 no se admiten en Windows
+
+
+ Los iconos más pequeños que 16x16 no se admiten en Windows
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/Properties/Texts.resx b/1.5 'Kruger 60'/Assemblies/Project.Native/Properties/Texts.resx
new file mode 100644
index 00000000..efa41d5f
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/Properties/Texts.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Non-square icons are not supported
+
+
+ Icons bigger than 256x256 are not supported in Windows
+
+
+ Icons smaller than 16x16 are not supported in Windows
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Project.Native/ShellLink.cs b/1.5 'Kruger 60'/Assemblies/Project.Native/ShellLink.cs
similarity index 86%
rename from 1.5 'Kruger 60'/Project.Native/ShellLink.cs
rename to 1.5 'Kruger 60'/Assemblies/Project.Native/ShellLink.cs
index 73e22cf6..92c0d85d 100644
--- a/1.5 'Kruger 60'/Project.Native/ShellLink.cs
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/ShellLink.cs
@@ -1,9 +1,17 @@
-// Copyright (C) 2014-2016, Codeplex/GitHub user AlphaCentaury
-// All rights reserved, except those granted by the governing license of this software. See 'license.txt' file in the project root for complete license information.
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
using System;
-using System.Collections.Generic;
-using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using System.Text;
@@ -14,8 +22,8 @@ public class ShellLink
{
public class UnsafeNativeMethods
{
- public static readonly Guid CLSID_FolderShortcut = new Guid(0x0AFACED1, 0xE828, 0x11D1, 0x91, 0x87, 0xB5, 0x32, 0xF1, 0xE9, 0x57, 0x5D);
- public static readonly Guid CLSID_ShellLink = new Guid("00021401-0000-0000-C000-000000000046");
+ public static readonly Guid ClsidFolderShortcut = new Guid(0x0AFACED1, 0xE828, 0x11D1, 0x91, 0x87, 0xB5, 0x32, 0xF1, 0xE9, 0x57, 0x5D);
+ public static readonly Guid ClsidShellLink = new Guid("00021401-0000-0000-C000-000000000046");
[ComImport, Guid("0000010c-0000-0000-c000-000000000046"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IPersist
@@ -45,7 +53,7 @@ public interface IPersistFile
public interface IShellLinkW
{
/// Retrieves the path and file name of a Shell link object
- void GetPath([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszFile, int cchMaxPath, out UnsafeNativeMethods.WIN32_FIND_DATAW pfd, UnsafeNativeMethods.SLGP_FLAGS fFlags);
+ void GetPath([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszFile, int cchMaxPath, out Win32FindDataw pfd, SlgpFlags fFlags);
/// Retrieves the list of item identifiers for a Shell link object
void GetIDList(out IntPtr ppidl);
/// Sets the pointer to an item identifier list (PIDL) for a Shell link object.
@@ -77,18 +85,18 @@ public interface IShellLinkW
/// Sets the relative path to the Shell link object
void SetRelativePath([MarshalAs(UnmanagedType.LPWStr)] string pszPathRel, int dwReserved);
/// Attempts to find the target of a Shell link, even if it has been moved or renamed
- void Resolve(IntPtr hwnd, UnsafeNativeMethods.SLR_FLAGS fFlags);
+ void Resolve(IntPtr hwnd, SlrFlags fFlags);
/// Sets the path and file name of a Shell link object
void SetPath([MarshalAs(UnmanagedType.LPWStr)] string pszFile);
} // interface IShellLink
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
- public struct WIN32_FIND_DATAW
+ public struct Win32FindDataw
{
public uint dwFileAttributes;
- public Int64 ftCreationTime;
- public Int64 ftLastAccessTime;
- public Int64 ftLastWriteTime;
+ public long ftCreationTime;
+ public long ftLastAccessTime;
+ public long ftLastWriteTime;
public uint nFileSizeHigh;
public uint nFileSizeLow;
public uint dwReserved0;
@@ -101,19 +109,19 @@ public struct WIN32_FIND_DATAW
/// IShellLink.GetPath fFlags: Flags that specify the type of path information to retrieve
[Flags()]
- public enum SLGP_FLAGS
+ public enum SlgpFlags
{
/// Retrieves the standard short (8.3 format) file name
- SLGP_SHORTPATH = 0x1,
+ SlgpShortpath = 0x1,
/// Retrieves the Universal Naming Convention (UNC) path name of the file
- SLGP_UNCPRIORITY = 0x2,
+ SlgpUncpriority = 0x2,
/// Retrieves the raw path name. A raw path is something that might not exist and may include environment variables that need to be expanded
- SLGP_RAWPATH = 0x4
+ SlgpRawpath = 0x4
} // enum SLGP_FLAGS
/// IShellLink.Resolve fFlags
[Flags()]
- public enum SLR_FLAGS
+ public enum SlrFlags
{
///
/// Do not display a dialog box if the link cannot be resolved. When SLR_NO_UI is set,
@@ -124,26 +132,26 @@ public enum SLR_FLAGS
/// (3 seconds). To specify a value, set the high word of fFlags to the desired time-out
/// duration, in milliseconds.
///
- SLR_NO_UI = 0x1,
+ SlrNoUi = 0x1,
/// Obsolete and no longer used
- SLR_ANY_MATCH = 0x2,
+ SlrAnyMatch = 0x2,
/// If the link object has changed, update its path and list of identifiers.
/// If SLR_UPDATE is set, you do not need to call IPersistFile::IsDirty to determine
/// whether or not the link object has changed.
- SLR_UPDATE = 0x4,
+ SlrUpdate = 0x4,
/// Do not update the link information
- SLR_NOUPDATE = 0x8,
+ SlrNoupdate = 0x8,
/// Do not execute the search heuristics
- SLR_NOSEARCH = 0x10,
+ SlrNosearch = 0x10,
/// Do not use distributed link tracking
- SLR_NOTRACK = 0x20,
+ SlrNotrack = 0x20,
/// Disable distributed link tracking. By default, distributed link tracking tracks
/// removable media across multiple devices based on the volume name. It also uses the
/// Universal Naming Convention (UNC) path to track remote file systems whose drive letter
/// has changed. Setting SLR_NOLINKINFO disables both types of tracking.
- SLR_NOLINKINFO = 0x40,
+ SlrNolinkinfo = 0x40,
/// Call the Microsoft Windows Installer
- SLR_INVOKE_MSI = 0x80
+ SlrInvokeMsi = 0x80
} // enum SLR_FLAGS
} // class
@@ -236,8 +244,8 @@ public string CreateShortcut(string shortcutPath)
}
finally
{
- if (shortcutFile != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(shortcutFile);
- if (shortcut != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(shortcut);
+ if (shortcutFile != null) Marshal.ReleaseComObject(shortcutFile);
+ if (shortcut != null) Marshal.ReleaseComObject(shortcut);
} // try-finally
} // Create
} // ShellLink
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/WinForms/SelectFolderDialog.cs b/1.5 'Kruger 60'/Assemblies/Project.Native/WinForms/SelectFolderDialog.cs
new file mode 100644
index 00000000..958afc75
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/WinForms/SelectFolderDialog.cs
@@ -0,0 +1,127 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using System.Windows.Forms;
+
+namespace IpTviewr.Native.WinForms
+{
+ /// Displays a dialog box from which the user can select a folder.
+ /// Requires Windows Vista or better.
+
+ public class SelectFolderDialog : CommonDialog
+ {
+ public SelectFolderDialog()
+ {
+ SetDefaultValues();
+ } // constructor
+
+ #region Basic properties
+
+ /// Gets or sets the initial directory displayed by the folder dialog box.
+ /// The initial directory displayed by the folder dialog box. The default is an empty string ("").
+ [DefaultValue("")]
+ public string InitialDirectory { get; set; }
+
+ /// Gets or sets a string containing the folder name selected in the dialog box.
+ /// The folder name selected in the dialog box. The default value is an empty string ("").
+ [DefaultValue("")]
+ public string SelectedPath { get; set; }
+
+ /// Gets or sets a value indicating whether the dialog box displays a warning if the user specifies a path that does not exist.
+ ///
+ /// if the dialog box displays a warning when the user specifies a path that does not exist; otherwise, . The default value is .
+ [DefaultValue(true)]
+ public bool CheckPathExists { get; set; }
+
+ #endregion
+
+ #region Overrides of CommonDialog
+
+ public override void Reset()
+ {
+ SetDefaultValues();
+ } // Reset
+
+ protected override bool RunDialog(IntPtr hwndOwner)
+ {
+ Win32Shell.IFileOpenDialog dialog = null;
+
+ try
+ {
+ dialog = CreateDialog();
+
+ var result = dialog.Show(hwndOwner);
+ if (result != 0) return false;
+
+ dialog.GetResult(out var item);
+ item.GetDisplayName(Win32Shell.GetDisplayName.FILESYSPATH, out var path);
+ Marshal.ReleaseComObject(item);
+ SelectedPath = path;
+
+ return true;
+ }
+ catch
+ {
+ return false;
+ }
+ finally
+ {
+ if (dialog != null) Marshal.ReleaseComObject(dialog);
+ } // finally
+ } // RunDialog
+
+ #endregion
+
+ private void SetDefaultValues()
+ {
+ InitialDirectory = string.Empty;
+ SelectedPath = string.Empty;
+ CheckPathExists = true;
+ } // SetDefaultValues
+
+ private Win32Shell.IFileOpenDialog CreateDialog()
+ {
+ // ReSharper disable once SuspiciousTypeConversion.Global
+ // COM type cast
+ var dialog = (Win32Shell.IFileOpenDialog)new Win32Shell.FileOpenDialog();
+
+ var options = Win32Shell.FileOpenDialogOptions.PICKFOLDERS |
+ Win32Shell.FileOpenDialogOptions.FORCEFILESYSTEM |
+ Win32Shell.FileOpenDialogOptions.DONTADDTORECENT;
+ if (CheckPathExists) options |= Win32Shell.FileOpenDialogOptions.PATHMUSTEXIST;
+ dialog.SetOptions(options);
+
+ SetPath(SelectedPath, dialog.SetFolder);
+ SetPath(InitialDirectory, dialog.SetDefaultFolder);
+
+ return dialog;
+
+ void SetPath(string path, Action action)
+ {
+ if (string.IsNullOrEmpty(path)) return;
+
+ uint attributes = 0;
+ if ((Win32Shell.SHILCreateFromPath(SelectedPath, out var idl, ref attributes) == 0) &&
+ (Win32Shell.SHCreateShellItem(IntPtr.Zero, IntPtr.Zero, idl, out var item) == 0))
+ {
+ action(item);
+ } // if
+
+ if (idl != IntPtr.Zero) Marshal.FreeCoTaskMem(idl);
+ } // local SetPath
+ } // CreateDialog
+ } // class SelectFolderDialog
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/WinForms/Win32Shell.cs b/1.5 'Kruger 60'/Assemblies/Project.Native/WinForms/Win32Shell.cs
new file mode 100644
index 00000000..4b46d55e
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/WinForms/Win32Shell.cs
@@ -0,0 +1,223 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows.Forms;
+
+namespace IpTviewr.Native.WinForms
+{
+ public class Win32Shell
+ {
+ #region Shell item
+
+ ///
+ /// Win32 PROPERTYKEY struct
+ ///
+ [StructLayout(LayoutKind.Sequential, Pack = 4)]
+ public struct PropertyKey
+ {
+ public Guid fmtid;
+ public uint pid;
+ } // struct PropertyKey
+
+ ///
+ /// Win32 SIGDN enum
+ ///
+ public enum GetDisplayName : uint
+ {
+ NORMALDISPLAY = 0,
+ PARENTRELATIVEPARSING = 0x80018001,
+ DESKTOPABSOLUTEPARSING = 0x80028000,
+ PARENTRELATIVEEDITING = 0x80031001,
+ DESKTOPABSOLUTEEDITING = 0x8004C000,
+ FILESYSPATH = 0x80058000,
+ URL = 0x80068000,
+ PARENTRELATIVEFORADDRESSBAR = 0x8007C001,
+ PARENTRELATIVE = 0x80080001
+ } // enum ShellGetDisplayName
+
+ // SIGDN
+ ///
+ /// Win32 SIATTRIBFLAGS enum
+ ///
+ public enum ItemAttributeFlags
+ {
+ AND = 1,
+ OR = 2,
+ APPCOMPAT = 3,
+ } // enum ItemAttributeFlags
+
+ [Guid("43826D1E-E718-42EE-BC55-A1E261C37BFE")]
+ [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ [ComImport]
+ public interface IShellItem
+ {
+ void BindToHandler([MarshalAs(UnmanagedType.Interface), In] IntPtr pbc, [In] ref Guid bhid, [In] ref Guid riid, out IntPtr ppv);
+
+ void GetParent([MarshalAs(UnmanagedType.Interface)] out IShellItem ppsi);
+
+ void GetDisplayName([In] GetDisplayName sigdnName, [MarshalAs(UnmanagedType.LPWStr)] out string ppszName);
+
+ void GetAttributes([In] uint sfgaoMask, out uint psfgaoAttribs);
+
+ void Compare([MarshalAs(UnmanagedType.Interface), In] IShellItem psi, [In] uint hint, out int piOrder);
+ } // interface IShellItem
+
+ [Guid("B63EA76D-1F85-456F-A19C-48159EFA858B")]
+ [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ [ComImport]
+ public interface IShellItemArray
+ {
+ void BindToHandler([MarshalAs(UnmanagedType.Interface), In] IntPtr pbc, [In] ref Guid rbhid, [In] ref Guid riid, out IntPtr ppvOut);
+
+ void GetPropertyStore([In] int Flags, [In] ref Guid riid, out IntPtr ppv);
+
+ void GetPropertyDescriptionList([In] ref PropertyKey keyType, [In] ref Guid riid, out IntPtr ppv);
+
+ void GetAttributes([In] ItemAttributeFlags dwAttribFlags, [In] uint sfgaoMask, out uint psfgaoAttribs);
+
+ void GetCount(out uint pdwNumItems);
+
+ void GetItemAt([In] uint dwIndex, [MarshalAs(UnmanagedType.Interface)] out IShellItem ppsi);
+
+ void EnumItems([MarshalAs(UnmanagedType.Interface)] out IntPtr ppenumShellItems);
+ } // interface IShellItemArray
+
+ [DllImport("shell32.dll")]
+ public static extern int SHCreateShellItem(IntPtr pidlParent, IntPtr psfParent, IntPtr pidl, out IShellItem ppsi);
+
+ [DllImport("shell32.dll")]
+ public static extern int SHILCreateFromPath([MarshalAs(UnmanagedType.LPWStr)] string pszPath, out IntPtr ppIdl, ref uint rgflnOut);
+
+ #endregion
+
+ #region OpenFileDialog
+
+ ///
+ /// Win32 COMDLG_FILTERSPEC struct
+ ///
+ [StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Auto)]
+ public struct CommonDialogFilter
+ {
+ [MarshalAs(UnmanagedType.LPWStr)]
+ internal string pszName;
+ [MarshalAs(UnmanagedType.LPWStr)]
+ internal string pszSpec;
+ } // struct CommonDialogFilter
+
+ ///
+ /// Win32 FOS (FILEOPENDIALOGOPTIONS) enum
+ ///
+ [Flags]
+ public enum FileOpenDialogOptions : uint
+ {
+ OVERWRITEPROMPT = 2,
+ STRICTFILETYPES = 4,
+ NOCHANGEDIR = 8,
+ PICKFOLDERS = 0x00000020,
+ FORCEFILESYSTEM = 0x00000040,
+ ALLNONSTORAGEITEMS = 0x00000080,
+ NOVALIDATE = 0x00000100,
+ ALLOWMULTISELECT = 0x00000200,
+ PATHMUSTEXIST = 0x00000800,
+ FILEMUSTEXIST = 0x00001000,
+ CREATEPROMPT = 0x00002000,
+ SHAREAWARE = 0x00004000,
+ NOREADONLYRETURN = 0x00008000,
+ NOTESTFILECREATE = 0x00010000,
+ HIDEMRUPLACES = 0x00020000,
+ HIDEPINNEDPLACES = 0x00040000,
+ NODEREFERENCELINKS = 0x00100000,
+ DONTADDTORECENT = 0x02000000,
+ FORCESHOWHIDDEN = 0x10000000,
+ DEFAULTNOMINIMODE = 0x20000000,
+ } // enum FileOpenDialogOptions
+
+ [Guid("d57c7288-d4ad-4768-be02-9d969532d960")]
+ [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ [ComImport]
+ public interface IFileOpenDialog
+ {
+ // from IModalDialog
+
+ [MethodImpl(MethodImplOptions.PreserveSig)]
+ int Show([In] IntPtr parent);
+
+ // from IFileDialog
+
+ void SetFileTypes([In] uint cFileTypes, [In] ref CommonDialogFilter rgFilterSpec);
+
+ void SetFileTypeIndex([In] uint iFileType);
+
+ void GetFileTypeIndex(out uint piFileType);
+
+ void Advise([MarshalAs(UnmanagedType.Interface), In] IntPtr pfde, out uint pdwCookie);
+
+ void Unadvise([In] uint dwCookie);
+
+ void SetOptions([In] FileOpenDialogOptions fos);
+
+ void GetOptions(out FileOpenDialogOptions pfos);
+
+ void SetDefaultFolder([MarshalAs(UnmanagedType.Interface), In] IShellItem psi);
+
+ void SetFolder([MarshalAs(UnmanagedType.Interface), In] IShellItem psi);
+
+ void GetFolder([MarshalAs(UnmanagedType.Interface)] out IShellItem ppsi);
+
+ void GetCurrentSelection([MarshalAs(UnmanagedType.Interface)] out IShellItem ppsi);
+
+ void SetFileName([MarshalAs(UnmanagedType.LPWStr), In] string pszName);
+
+ void GetFileName([MarshalAs(UnmanagedType.LPWStr)] out string pszName);
+
+ void SetTitle([MarshalAs(UnmanagedType.LPWStr), In] string pszTitle);
+
+ void SetOkButtonLabel([MarshalAs(UnmanagedType.LPWStr), In] string pszText);
+
+ void SetFileNameLabel([MarshalAs(UnmanagedType.LPWStr), In] string pszLabel);
+
+ void GetResult([MarshalAs(UnmanagedType.Interface)] out IShellItem ppsi);
+
+ void AddPlace([MarshalAs(UnmanagedType.Interface), In] IShellItem psi, FileDialogCustomPlace fdcp);
+
+ void SetDefaultExtension([MarshalAs(UnmanagedType.LPWStr), In] string pszDefaultExtension);
+
+ void Close([MarshalAs(UnmanagedType.Error)] int hr);
+
+ void SetClientGuid([In] ref Guid guid);
+
+ void ClearClientData();
+
+ void SetFilter([MarshalAs(UnmanagedType.Interface)] IntPtr pFilter);
+
+ // from IFileOpenDialog
+
+ void GetResults([MarshalAs(UnmanagedType.Interface)] out IShellItemArray ppenum);
+
+ void GetSelectedItems([MarshalAs(UnmanagedType.Interface)] out IShellItemArray ppsai);
+ } //
+
+ [ClassInterface(ClassInterfaceType.None)]
+ [TypeLibType(TypeLibTypeFlags.FCanCreate)]
+ [Guid("DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7")]
+ [ComImport]
+ public class FileOpenDialog
+ {
+ } // class FileOpenDialog
+
+ #endregion
+ } // class Win32Shell
+} // namespace
diff --git a/1.5 'Kruger 60'/UiServices.Config/WindowsBitness.cs b/1.5 'Kruger 60'/Assemblies/Project.Native/WindowsBitness.cs
similarity index 79%
rename from 1.5 'Kruger 60'/UiServices.Config/WindowsBitness.cs
rename to 1.5 'Kruger 60'/Assemblies/Project.Native/WindowsBitness.cs
index 7c54e4a7..c98c4da9 100644
--- a/1.5 'Kruger 60'/UiServices.Config/WindowsBitness.cs
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/WindowsBitness.cs
@@ -1,17 +1,20 @@
-// Copyright (C) 2014-2016, Codeplex/GitHub user AlphaCentaury
-// All rights reserved, except those granted by the governing license of this software. See 'license.txt' file in the project root for complete license information.
-
-// This file contains code (c) Microsoft Corporation, licensed under Microsoft Public License
-// See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL.
-// Original source code: http://1code.codeplex.com/SourceControl/changeset/view/39074#842775
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
using System;
-using System.Collections.Generic;
-using System.Linq;
using System.Runtime.InteropServices;
-using System.Text;
-namespace IpTviewr.UiServices.Configuration
+namespace IpTviewr.Native
{
public static class WindowsBitness
{
@@ -56,7 +59,7 @@ public static bool Is64BitWindows()
} // Is64BitWindows
///
- /// The function determins whether a method exists in the export
+ /// The function determines whether a method exists in the export
/// table of a certain module.
///
/// The name of the module
@@ -67,7 +70,7 @@ public static bool Is64BitWindows()
///
private static bool DoesWin32MethodExist(string moduleName, string methodName)
{
- IntPtr moduleHandle = GetModuleHandle(moduleName);
+ var moduleHandle = GetModuleHandle(moduleName);
if (moduleHandle == IntPtr.Zero)
{
return false;
@@ -77,10 +80,8 @@ private static bool DoesWin32MethodExist(string moduleName, string methodName)
private static bool SafeIsWow64Process()
{
- bool flag;
-
if (!DoesWin32MethodExist("kernel32.dll", "IsWow64Process")) return false;
- IsWow64Process(GetCurrentProcess(), out flag);
+ IsWow64Process(GetCurrentProcess(), out var flag);
return flag;
} // SafeIsWow64Process
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/WindowsDesktop.cs b/1.5 'Kruger 60'/Assemblies/Project.Native/WindowsDesktop.cs
new file mode 100644
index 00000000..64acd6e3
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/WindowsDesktop.cs
@@ -0,0 +1,68 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.Diagnostics.CodeAnalysis;
+using System.Drawing;
+using System.Runtime.InteropServices;
+
+namespace IpTviewr.Native
+{
+ public static class WindowsDesktop
+ {
+ [SuppressMessage("ReSharper", "InconsistentNaming")]
+ [SuppressMessage("ReSharper", "IdentifierTypo")]
+ internal enum DeviceCap
+ {
+ ///
+ /// Logical pixels inch in X
+ ///
+ LOGPIXELSX = 88,
+ ///
+ /// Logical pixels inch in Y
+ ///
+ LOGPIXELSY = 90
+ } // enum DeviceCap
+
+ [DllImport("gdi32.dll", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)]
+ [SuppressMessage("ReSharper", "InconsistentNaming")]
+ internal static extern int GetDeviceCaps(IntPtr hDC, DeviceCap cap);
+
+ public static void GetDpi(out int x, out int y)
+ {
+ var g = (Graphics) null;
+ var desktopHdc = IntPtr.Zero;
+
+ try
+ {
+ g = Graphics.FromHwnd(IntPtr.Zero);
+ desktopHdc = g.GetHdc();
+ x = GetDeviceCaps(desktopHdc, DeviceCap.LOGPIXELSX);
+ y = GetDeviceCaps(desktopHdc, DeviceCap.LOGPIXELSY);
+ }
+ catch
+ {
+ x = 96;
+ y = 96;
+ }
+ finally
+ {
+ if (desktopHdc != IntPtr.Zero)
+ {
+ g?.ReleaseHdc(desktopHdc);
+ }
+ g?.Dispose();
+ } // try-catch-finally
+ } // GetDpi
+ } // WindowsDesktop
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/WindowsIcon.Structs.cs b/1.5 'Kruger 60'/Assemblies/Project.Native/WindowsIcon.Structs.cs
new file mode 100644
index 00000000..4229bb80
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/WindowsIcon.Structs.cs
@@ -0,0 +1,191 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Runtime.InteropServices;
+
+namespace IpTviewr.Native
+{
+ partial class WindowsIcon
+ {
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ public struct IconDirHeader
+ {
+ ///
+ /// Reserved (must be 0)
+ ///
+ public ushort Reserved;
+
+ ///
+ /// Resource Type (1 for icons)
+ ///
+ public ushort Type;
+
+ ///
+ /// Number of images ("icons")
+ ///
+ public ushort Count;
+
+ public IconDirHeader(int count)
+ {
+ Reserved = 0;
+ Type = 1;
+ Count = checked((ushort)count);
+ } // constructor
+ } // struct IconDirHeader
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ public struct IconDirEntry
+ {
+ ///
+ /// Width, in pixels, of the image
+ ///
+ /// 0 = 256
+ public byte Width;
+
+ ///
+ /// Height, in pixels, of the image
+ ///
+ /// 0 = 256
+ public byte Height;
+
+ ///
+ /// Number of colors in image
+ ///
+ /// 0 if >=8bpp
+ public byte ColorCount;
+
+ ///
+ /// Reserved (must be 0)
+ ///
+ public byte Reserved;
+
+ ///
+ /// Color Planes
+ ///
+ public ushort Planes;
+
+ ///
+ /// Bits per pixel
+ ///
+ public ushort BitCount;
+
+ ///
+ /// Size of the bitmap (in bytes)
+ ///
+ public uint BytesInRes;
+
+ ///
+ /// Where in the file is this image?
+ ///
+ public uint ImageOffset;
+ } // struct IconDirEntry
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ public struct BitmapInfoHeader
+ {
+ ///
+ /// The number of bytes required by the structure
+ ///
+ public uint Size;
+
+ ///
+ /// The width of the bitmap, in pixels
+ ///
+ public int Width;
+
+ ///
+ /// The height of the bitmap, in pixels.
+ ///
+ ///
+ /// If biHeight is positive, the bitmap is a bottom-up DIB and its origin is the lower-left corner. If biHeight is negative, the bitmap is a top-down DIB and its origin is the upper-left corner
+ ///
+ public int Height;
+
+ ///
+ /// The number of planes for the target device. This value must be set to 1
+ ///
+ public ushort Planes;
+
+ ///
+ /// The number of bits-per-pixel
+ ///
+ ///
+ /// This member must be one of the following values: 0, 1, 4, 8, 16, 24 or 32
+ ///
+ public ushort BitCount;
+
+ ///
+ /// The type of compression for a compressed bottom-up bitmap
+ ///
+ ///
+ /// Top-down DIBs cannot be compressed
+ ///
+ public uint Compression;
+
+ ///
+ /// The size, in bytes, of the image. This may be set to zero for BI_RGB bitmaps
+ ///
+ ///
+ /// This may be set to zero for RGB bitmaps
+ /// For JPEG or PNG compression, indicates the size of the JPEG or PNG image buffer, respectively
+ ///
+ public uint SizeImage;
+
+ ///
+ /// The horizontal resolution, in pixels-per-meter, of the target device for the bitmap
+ ///
+ public int XPelsPerMeter;
+
+ ///
+ /// The vertical resolution, in pixels-per-meter, of the target device for the bitmap
+ ///
+ public int YPelsPerMeter;
+
+ ///
+ /// The number of color indexes in the color table that are actually used by the bitmap
+ ///
+ ///
+ /// If this value is zero, the bitmap uses the maximum number of colors
+ ///
+ public uint ClrUsed;
+
+ ///
+ /// The number of color indexes that are required for displaying the bitmap
+ ///
+ ///
+ /// If this value is zero, all colors are required
+ ///
+ public uint ClrImportant;
+ } // struct BitmapInfoHeader
+
+ private struct IconKind
+ {
+ public readonly short Size;
+ public readonly byte BitsPerPixel;
+ public readonly SaveAs SaveAs;
+
+ public IconKind(int size, byte bitsPerPixel, SaveAs saveAs)
+ {
+ Size = (short)size;
+ BitsPerPixel = bitsPerPixel;
+ SaveAs = saveAs;
+ } // constructor
+
+ public override int GetHashCode()
+ {
+ var hash = ((ushort)Size << 8) | BitsPerPixel;
+ return hash;
+ } // GetHashCode
+ } // IconKind
+ } // partial class WindowsIcon
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/WindowsIcon.cs b/1.5 'Kruger 60'/Assemblies/Project.Native/WindowsIcon.cs
new file mode 100644
index 00000000..ae686f21
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/WindowsIcon.cs
@@ -0,0 +1,394 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using IpTviewr.Native.Properties;
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices;
+
+namespace IpTviewr.Native
+{
+ ///
+ /// This class allows to create icons in Windows .ico file-format
+ ///
+ ///
+ /// Only 32bpp ARGB images are supported
+ ///
+ public partial class WindowsIcon: IDisposable
+ {
+ private Dictionary _images;
+
+ public enum SaveAs
+ {
+ Auto = 0,
+ Bmp = 1,
+ Png = 2
+ } // SaveAs
+
+ public WindowsIcon()
+ {
+ _images = new Dictionary();
+ } // constructor
+
+ public WindowsIcon(int imageCount)
+ {
+ _images = new Dictionary(imageCount);
+ } // constructor
+
+ public bool AllowNonSquareImages
+ {
+ get;
+ set;
+ } // AllowNowSquareImages
+
+ ///
+ /// Adds an image to the Icon
+ ///
+ /// The image to add
+ /// How the image will be stored within the icon file
+ ///
+ /// Only 32bpp ARGB images are supported. Therefore, the supplied image wil be converted to PixelFormat.Format32bppArgb
+ /// This will cause ArgumentException to be thrown if two images of different bit depth are supplied for the same size
+ ///
+ public void AddImage(Bitmap image, SaveAs saveAs = SaveAs.Auto)
+ {
+ if (image == null) throw new ArgumentNullException(nameof(image));
+ if (!AllowNonSquareImages)
+ {
+ if ((image.Width != image.Height)) throw new ArgumentOutOfRangeException(nameof(image), Texts.WindowsIcon_NonSquare);
+ } // if
+ if (image.Width > 256) throw new ArgumentOutOfRangeException(nameof(image), Texts.WindowsIcon_TooBig);
+ if (image.Width < 16) throw new ArgumentOutOfRangeException(nameof(image), Texts.WindowsIcon_TooSmall);
+
+ // we only support 32bpp ARGB images; therefore, we need to convert the image to this format
+ if (image.PixelFormat != PixelFormat.Format32bppArgb)
+ {
+ var newImage = To32BppArgbBitmap(image);
+ image.Dispose();
+ image = newImage;
+ } // if
+
+ // this code is retained for future enhancement
+ var bitsPerPixel = GetBitsPerPixel(image.PixelFormat);
+ if (bitsPerPixel > 32)
+ {
+ var newImage = To32BppArgbBitmap(image);
+ image.Dispose();
+ image = newImage;
+ } // if
+
+ // adding a duplicated image will throw ArgumentException
+ _images.Add(new IconKind(image.Width, bitsPerPixel, saveAs), image);
+ } // AddImage
+
+ ///
+ /// Clears all added images and disposes of them
+ ///
+ public void Clear()
+ {
+ foreach (var entry in _images) entry.Value.Dispose();
+ _images.Clear();
+ } // Clear
+
+ ///
+ /// Disposes the instance
+ ///
+ public void Dispose()
+ {
+ Clear();
+ _images = null;
+ } // Dispose
+
+ ///
+ /// Creates an .ico file format file from the supplied images
+ ///
+ /// The path of the file
+ public void Save(string path)
+ {
+ using (var output = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None, 4096))
+ {
+ Save(output);
+ } // using output
+ } // Save
+
+ ///
+ /// Saves the supplied images in .ico file format
+ ///
+ ///
+ public void Save(Stream stream)
+ {
+ // although not strictly necessary, it's customary to
+ // write the images sorted by size and bpp
+ var icons = from entry in _images
+ orderby entry.Key.Size ascending, entry.Key.BitsPerPixel ascending
+ select new
+ {
+ Image = entry.Value,
+ entry.Key.SaveAs
+ };
+
+ // create icon directory header
+ var iconDirHeader = new IconDirHeader(_images.Count);
+
+ // create icon directory entries
+ var entries = new IconDirEntry[_images.Count];
+ var imageData = new byte[_images.Count][];
+
+ var index = 0;
+ foreach (var icon in icons)
+ {
+ imageData[index] = GetIconImageData(icon.Image, icon.SaveAs);
+ var entry = new IconDirEntry()
+ {
+ Width = (icon.Image.Width < 256) ? (byte)icon.Image.Width : (byte)0,
+ Height = (icon.Image.Height < 256) ? (byte)icon.Image.Height : (byte)0,
+ ColorCount = 0, // more than 256 colors
+ Reserved = 0, // must be zero
+ Planes = 1,
+ BitCount = GetBitsPerPixel(icon.Image.PixelFormat),
+ BytesInRes = (uint)imageData[index].Length,
+ ImageOffset = 0 // to be set later
+ };
+ entries[index++] = entry;
+ } // foreach
+
+ // set offsets
+ var sizeOfIconDirEntry = Marshal.SizeOf();
+ var offset = Marshal.SizeOf() + (sizeOfIconDirEntry * _images.Count);
+ for (index=0;index();
+ var paddedWidth = RoundTo(image.Width, 4);
+ var pixelCount = paddedWidth * image.Height;
+ var maskWidth = paddedWidth / 8; // bitmask is 1-bit per pixel (1 byte per 8 pixels)
+
+ // create the BitmapInfoHeader of the given image
+ var bitmapInfoHeader = new BitmapInfoHeader()
+ {
+ Size = (uint)sizeOfHeader,
+ Width = image.Width,
+ Height = image.Height * 2, // bitmap data and bitmask
+ Planes = 1,
+ BitCount = 32,
+ Compression = 0, // no compression
+ SizeImage = (uint)((pixelCount * 4) + (maskWidth * image.Height)),
+ XPelsPerMeter = 0, // not specified
+ YPelsPerMeter = 0, // not specified
+ ClrUsed = 0, // all colors
+ ClrImportant = 0 // all colors
+ };
+ WriteStruct(output, bitmapInfoHeader);
+
+ // get the bytes of the image
+ var imageRectangle = new Rectangle(0, 0, image.Width, image.Height);
+ data = image.LockBits(imageRectangle, ImageLockMode.ReadOnly, image.PixelFormat);
+ var scanData = new byte[data.Stride];
+
+ // write bitmap data
+ // remember: bitmaps in icons are bottom-up DIBs
+ for (var scanIndex = image.Height - 1; scanIndex >= 0; scanIndex--)
+ {
+ var scan = data.Scan0 + (data.Stride * scanIndex);
+ Marshal.Copy(scan, scanData, 0, scanData.Length);
+ output.Write(scanData, 0, scanData.Length);
+ } // for scanIndex
+
+ // create bottom-up bitmask
+ for (var scanIndex = image.Height - 1; scanIndex >= 0; scanIndex--)
+ {
+ byte bits = 0;
+ var bitIndex = 0;
+ var scan = data.Scan0 + (data.Stride * scanIndex);
+ Marshal.Copy(scan, scanData, 0, scanData.Length);
+
+ // get alpha values for current scan line
+ for (var alphaIndex = 0; alphaIndex < scanData.Length; alphaIndex += 4)
+ {
+ var alpha = scanData[alphaIndex];
+ if (alpha < 128) bits |= (byte)(1 << (7 - bitIndex));
+
+ bitIndex++;
+ if (bitIndex < 8) continue;
+
+ output.WriteByte(bits);
+ bits = 0;
+ bitIndex = 0;
+ } // for alphaIndex
+
+ // add padding to 4 bytes if necessary
+ var width = image.Width;
+ for (var padding = 0; padding < ((width / 8) % 4); padding++)
+ {
+ output.WriteByte(0);
+ } // for
+ } // for scanIndex
+ }
+ finally
+ {
+ if (data != null) image.UnlockBits(data);
+ } // finally
+ } // GetIconImageBitmapData
+
+ private int GetEstimatedIconImageSize(Bitmap image)
+ {
+ // this code assumes the image is in 32-bit ARGB format
+
+ var sizeOfHeader = Marshal.SizeOf();
+ var paddedWidth = RoundTo(image.Width, 4);
+ var pixelCount = paddedWidth * image.Height;
+ var maskWidth = paddedWidth / 8; // bitmask is 1-bit per pixel (1 byte per 8 pixels)
+
+ var estimatedCapacity = sizeOfHeader + (pixelCount * 4) + (maskWidth * image.Height); // pixels are in 32-bit ARGB format (4 bytes per pixel)
+
+ return estimatedCapacity;
+ } // GetEstimatedIconImageSize
+
+ private int RoundTo(int value, int round)
+ {
+ var mod = value % round;
+ if (mod == 0) return value;
+
+ return value + (round - mod);
+ } // RoundTo
+
+ private byte GetBitsPerPixel(PixelFormat format)
+ {
+ switch(format)
+ {
+ case PixelFormat.Format1bppIndexed:
+ return 1;
+
+ case PixelFormat.Format4bppIndexed:
+ return 4;
+
+ case PixelFormat.Format8bppIndexed:
+ return 8;
+
+ case PixelFormat.Format16bppArgb1555:
+ case PixelFormat.Format16bppGrayScale:
+ case PixelFormat.Format16bppRgb555:
+ case PixelFormat.Format16bppRgb565:
+ return 16;
+
+ case PixelFormat.Format24bppRgb:
+ return 24;
+
+ case PixelFormat.Canonical:
+ case PixelFormat.Format32bppArgb:
+ case PixelFormat.Format32bppPArgb:
+ case PixelFormat.Format32bppRgb:
+ return 32;
+
+ case PixelFormat.Format48bppRgb:
+ return 48;
+
+ case PixelFormat.Format64bppArgb:
+ case PixelFormat.Format64bppPArgb:
+ return 64;
+
+ default:
+ throw new ArgumentOutOfRangeException(nameof(format), format, "Unknow or unsupported PixelFormat");
+ } // switch format
+ } // GetBitsPerPixel
+
+ private static Bitmap To32BppArgbBitmap(Bitmap image)
+ {
+ Bitmap result = null;
+ Graphics g = null;
+ var ok = false;
+
+ try
+ {
+ result = new Bitmap(image.Width, image.Height, PixelFormat.Format32bppArgb);
+ result.SetResolution(image.HorizontalResolution, image.VerticalResolution);
+
+ g = Graphics.FromImage(result);
+ g.Clear(Color.Transparent);
+ g.DrawImageUnscaled(image, 0, 0);
+ ok = true;
+
+ return result;
+ }
+ finally
+ {
+ g?.Dispose();
+ if (!ok) result?.Dispose();
+ } // try-catch-finally
+ } // To32BitBitmap
+
+ private static int WriteStruct(Stream stream, T structure) where T : struct
+ {
+ var bytes = NativeUtils.StructToBytes(structure);
+ stream.Write(bytes, 0, bytes.Length);
+
+ return bytes.Length;
+ } // WriteStruct
+ } // WindowsIcon
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/licensing.xml b/1.5 'Kruger 60'/Assemblies/Project.Native/licensing.xml
new file mode 100644
index 00000000..355d0a8e
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/licensing.xml
@@ -0,0 +1,117 @@
+
+
+
+
+ Ms-RL
+ Codeplex/GitHub user AlphaCentaury
+ Copyright (C) 2014-2020, Codeplex/GitHub user AlphaCentaury and its contributors
+ IPTViewr: Virtual Decoder for movistar+ version 1.5 “Kruger 60” Beta 1
+
+
+
+
+
+
+
+ MIT
+ JetBrains
+ Copyright (c) 2016 JetBrains http://www.jetbrains.com
+ ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit usages of members, support special semantics of APIs in ASP.NET and XAML frameworks and otherwise increase accuracy of ReSharper code inspections.
+
+
+
+
+
+
+
+
diff --git a/1.5 'Kruger 60'/Assemblies/Project.Native/packages.config b/1.5 'Kruger 60'/Assemblies/Project.Native/packages.config
new file mode 100644
index 00000000..52cb031c
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Project.Native/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/Common.cs b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/Common.cs
new file mode 100644
index 00000000..203d0af0
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/Common.cs
@@ -0,0 +1,20 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace IpTviewr.Services.EpgDiscovery
+{
+ internal class Common
+ {
+ public const string XmlNamespace = "urn:AlphaCentaury:IpTViewr:2019:EPG";
+ } // class Common
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgCodedValue.cs b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgCodedValue.cs
new file mode 100644
index 00000000..e9069737
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgCodedValue.cs
@@ -0,0 +1,66 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Xml.Serialization;
+
+namespace IpTviewr.Services.EpgDiscovery
+{
+ [Serializable()]
+ [DebuggerStepThrough()]
+ [DesignerCategory("code")]
+ [XmlType(AnonymousType = true, Namespace = Common.XmlNamespace)]
+ public class EpgCodedValue
+ {
+ public string Code
+ {
+ get;
+ set;
+ } // Code
+
+ public string Description
+ {
+ get;
+ set;
+ } // Description
+
+ public static EpgCodedValue ToCodedValue(TvAnytime.TvaName name)
+ {
+ if (name == null) return null;
+
+ return new EpgCodedValue()
+ {
+ Code = name.HRef,
+ Description = name.Name
+ };
+ } // ToCodedValue
+
+ public static EpgCodedValue ToCodedValue(TvAnytime.Mpeg7Name name)
+ {
+ if (name == null) return null;
+
+ return new EpgCodedValue()
+ {
+ Code = name.HRef,
+ Description = name.Name
+ };
+ } // ToCodedValue
+
+ public override string ToString()
+ {
+ return Description;
+ } // ToString
+ } // class EpgCode
+} // namespace
diff --git a/1.5 'Kruger 60'/Services.EpgDiscovery/EpgDatastore.cs b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgDatastore.cs
similarity index 83%
rename from 1.5 'Kruger 60'/Services.EpgDiscovery/EpgDatastore.cs
rename to 1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgDatastore.cs
index c4854994..a2890d43 100644
--- a/1.5 'Kruger 60'/Services.EpgDiscovery/EpgDatastore.cs
+++ b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgDatastore.cs
@@ -1,12 +1,23 @@
-using System;
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System;
using System.Collections.Generic;
using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
namespace IpTviewr.Services.EpgDiscovery
{
- public abstract class EpgDatastore
+ public abstract class EpgDataStore
{
public bool IsProgramDataUnsorted
{
@@ -84,5 +95,5 @@ private void Fill(EpgService epgService)
current = current.Next;
} // while
} // Fill
- } // abstract class EpgDatastore
+ } // abstract class EpgDataStore
} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgDownloader.SegmentsProcessor.cs b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgDownloader.SegmentsProcessor.cs
new file mode 100644
index 00000000..e01c7d8a
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgDownloader.SegmentsProcessor.cs
@@ -0,0 +1,123 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using IpTviewr.Common.Serialization;
+using IpTviewr.Services.EpgDiscovery.TvAnytime;
+using System;
+using System.Collections.Concurrent;
+using System.Threading;
+
+namespace IpTviewr.Services.EpgDiscovery
+{
+ partial class EpgDownloader
+ {
+ private class SegmentsProcessor
+ {
+ private ConcurrentQueue _segmentsQueue;
+ private AutoResetEvent _enqueuedSegments;
+ private AutoResetEvent _processSegmentsEnded;
+ private bool _noMoreSegments;
+ private EpgDataStore _datastore;
+
+ public event EventHandler ScheduleReceived;
+ public event EventHandler ParseError;
+
+ public void Start(EpgDataStore datastore)
+ {
+ if (_segmentsQueue != null) throw new InvalidOperationException();
+
+ _segmentsQueue = new ConcurrentQueue();
+ _enqueuedSegments = new AutoResetEvent(false);
+ _processSegmentsEnded = new AutoResetEvent(false);
+ _noMoreSegments = false;
+ _datastore = datastore;
+
+ var worker = new Thread(ProcessSegments);
+ worker.Start();
+ } // Start
+
+ public void AddSegment(byte[] segmentPayload)
+ {
+ if (_segmentsQueue == null) throw new ObjectDisposedException(nameof(SegmentsProcessor));
+
+ _segmentsQueue.Enqueue(segmentPayload);
+ _enqueuedSegments.Set();
+ } // AddSegment
+
+ public void WaitCompletion()
+ {
+ _noMoreSegments = true;
+ _enqueuedSegments.Set();
+ _processSegmentsEnded.WaitOne();
+ } // WaitCompletion
+
+ public void Dispose()
+ {
+ if (_segmentsQueue == null) return;
+
+ _segmentsQueue = null;
+ _enqueuedSegments.Dispose();
+ _processSegmentsEnded.Dispose();
+ _datastore = null;
+ } // Dispose
+
+ private void ProcessSegments()
+ {
+ byte[] payload;
+
+ while ((payload = GetNextSegment()) != null)
+ {
+ try
+ {
+ var item = XmlSerialization.Deserialize(payload, trimExtraWhitespace: true, namespaceReplacer: NamespaceUnification.Replacer);
+ var schedule = item?.ProgramDescription?.LocationTable?.Schedule;
+ if (schedule == null)
+ {
+ // TODO: log
+ continue;
+ } // if
+ var epgService = EpgService.FromSchedule(schedule);
+ ScheduleReceived?.Invoke(this, EventArgs.Empty);
+ _datastore.Add(epgService);
+ }
+ catch (Exception ex)
+ {
+ ParseError?.Invoke(this, EventArgs.Empty);
+#if DEBUG
+ // TODO: log
+ Console.WriteLine("Unable to parse: {0}", ex.Message);
+#endif
+ return;
+ } // try-catch
+ } // while
+
+ _processSegmentsEnded.Set();
+ } // ProcessSegments
+
+ private byte[] GetNextSegment()
+ {
+ while (true)
+ {
+ if (_segmentsQueue.TryDequeue(out var payload))
+ {
+ return payload;
+ } // if
+
+ if (_noMoreSegments) return null;
+
+ _enqueuedSegments.WaitOne();
+ } // while
+ } // GetNextPayload
+ } // SegmentsProcessor
+ } // partial class EpgDownloader
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgDownloader.cs b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgDownloader.cs
new file mode 100644
index 00000000..46512075
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgDownloader.cs
@@ -0,0 +1,157 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using IpTviewr.DvbStp.Client;
+using System;
+using System.Net;
+using System.Net.Sockets;
+using System.Threading;
+using System.Threading.Tasks;
+
+// Please note: this code is designed to work ONLY with the p_f broadcast content guide of movistar+
+// It is not multitasking (meaning: reading from several sources at the same time)
+// It also asumes the EPG data is in text-plain XML format
+// movistar+ employs a custom compression method (DVBBINSTP) for all it EPG sources, save 'p_f' (present and following)
+
+namespace IpTviewr.Services.EpgDiscovery
+{
+ public sealed partial class EpgDownloader
+ {
+ private IPEndPoint _endpoint;
+ private DvbStpStreamClient _streamClient;
+ private SegmentsProcessor _processor;
+
+ public IPAddress MulticastIpAddress { get; set; }
+ public int MulticastPort { get; set; }
+ private EpgDataStore DataStore { get; set; }
+ private CancellationToken Token { get; set; }
+
+ public event EventHandler ProgramReceived;
+ public event EventHandler ParseError;
+ public event EventHandler FatalError;
+
+ public EpgDownloader(string multicastIpEndPoint)
+ {
+ var parts = multicastIpEndPoint.Split(':');
+ if (parts.Length != 2) throw new ArgumentOutOfRangeException();
+
+ Init(parts[0], parts[1]);
+ } // constructor
+
+ public EpgDownloader(string multicastIpAddress, string port)
+ {
+ Init(multicastIpAddress, port);
+ } // constructor
+
+ public EpgDownloader(IPAddress multicastIpAddress, int port)
+ {
+ MulticastIpAddress = multicastIpAddress;
+ MulticastPort = port;
+ } // constructor
+
+ private void Init(string ipAddress, string port)
+ {
+ MulticastIpAddress = IPAddress.Parse(ipAddress);
+ MulticastPort = int.Parse(port);
+ } // Init
+
+ public EpgDownloader(IPEndPoint endpoint)
+ {
+ _endpoint = endpoint;
+ } // constructor
+
+ public Task StartAsync(EpgDataStore datastore, CancellationToken token)
+ {
+ Token = token;
+ DataStore = datastore;
+
+ return Task.Run(Download, token);
+ } // StartAsync
+
+ private void Download()
+ {
+ var retryIncrement = new TimeSpan(0, 0, 5);
+ var retryTime = new TimeSpan(0, 0, 0);
+ var maxRetryTime = new TimeSpan(0, 1, 0);
+
+ try
+ {
+ while (retryTime <= maxRetryTime)
+ {
+ // initialize DVB-STP client
+ _streamClient = new DvbStpStreamClient(MulticastIpAddress, MulticastPort, Token)
+ {
+ NoDataTimeout = -1, // not implemented by DvbStpStreamClient
+ ReceiveDatagramTimeout = 60 * 1000, // 60 seconds
+ OperationTimeout = -1 // forever
+ };
+ _streamClient.SegmentPayloadReceived += SegmentPayloadReceived;
+
+ var retry = false;
+ try
+ {
+ _processor?.Dispose();
+ _processor = new SegmentsProcessor();
+ _processor.ScheduleReceived += (sender, args) =>
+ ProgramReceived?.BeginInvoke(this, EventArgs.Empty, null, null);
+ _processor.ParseError += (sender, args) => ParseError?.BeginInvoke(this, EventArgs.Empty, null, null);
+
+ _processor.Start(DataStore);
+ _streamClient.DownloadStream();
+ break;
+ }
+ catch (SocketException) // reception error
+ {
+ retry = true;
+ }
+ catch (TimeoutException) // reception timeout
+ {
+ // took too much time to process the stream
+ } // try-catch
+
+ // Safety check. If we asked to stop the download, but an exception is thrown in between,
+ // we can ignore it and end the reception;
+ if ((_streamClient.CancelRequested) || Token.IsCancellationRequested || (!retry)) break;
+
+ // wait and then retry, increasing wait time
+ retryTime += retryIncrement;
+ Thread.Sleep(retryTime);
+ } // while
+ }
+ catch
+ {
+ FatalError?.BeginInvoke(this, EventArgs.Empty, null, null);
+ }
+ finally
+ {
+ _streamClient?.Close();
+ _streamClient = null;
+ _processor?.WaitCompletion();
+ _processor?.Dispose();
+ _processor = null;
+ DataStore = null;
+ } // try-finally
+ } // Download
+
+ private void SegmentPayloadReceived(object sender, PayloadStorage.SegmentPayloadReceivedEventArgs e)
+ {
+ //Console.WriteLine($@"{e.SegmentIdentity}:{e.Payload.Length} ({_streamClient.DatagramCount} received)");
+ _processor.AddSegment(e.Payload);
+
+ // TODO: stop when EPG is complete
+ // Notify the caller.
+ // Give the caller the option to download in a continuous loop
+ // or the restart the download after a given time
+ } // SegmentPayloadReceived
+ } // class EpgDownloader
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgEmptyLinkedList.cs b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgEmptyLinkedList.cs
new file mode 100644
index 00000000..db9773de
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgEmptyLinkedList.cs
@@ -0,0 +1,51 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Collections;
+using System.Collections.Generic;
+
+namespace IpTviewr.Services.EpgDiscovery
+{
+ public class EpgEmptyLinkedList : IEpgLinkedList
+ {
+ public EpgEmptyLinkedList(string serviceIdRef)
+ {
+ ServiceIdRef = serviceIdRef;
+ } // constructor
+
+ public int Count=>0;
+
+ public IEpgLinkedListNode First=>null;
+
+ public IEpgLinkedListNode Last=>null;
+
+ public IEpgLinkedListNode Requested=>null;
+
+ public string ServiceIdRef { get; }
+
+ public IEpgLinkedListNode GetMore(bool forward, int nodesCount, bool keepExistingData)
+ {
+ return null;
+ } // IEpgLinkedListNode
+
+ public IEnumerator GetEnumerator()
+ {
+ yield break;
+ } // GetEnumerator
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ } // GetEnumerator
+ } // class EpgEmptyLinkedList
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgLinkedListNodeWrapper.cs b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgLinkedListNodeWrapper.cs
new file mode 100644
index 00000000..a711a216
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgLinkedListNodeWrapper.cs
@@ -0,0 +1,95 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Collections.Generic;
+
+namespace IpTviewr.Services.EpgDiscovery
+{
+ public sealed class EpgLinkedListNodeWrapper : IEpgLinkedListNode
+ {
+ private readonly LinkedListNode _node;
+ private readonly EpgLinkedListWrapper _linkedList;
+
+ public EpgLinkedListNodeWrapper(EpgLinkedListWrapper list, LinkedListNode node)
+ {
+ _linkedList = list;
+ _node = node;
+ } // constructor
+
+ public IEpgLinkedList List => _linkedList;
+
+ public IEpgLinkedListNode Next
+ {
+ get
+ {
+ var next = _node.Next;
+ if (next != null) return new EpgLinkedListNodeWrapper(_linkedList, next);
+
+ if ((_linkedList.PhantomNode != null) && (_linkedList.PhantomNode.IsLast))
+ {
+ return _linkedList.PhantomNode;
+ } // if
+
+ return null;
+ } // get
+ } // Next
+
+ public IEpgLinkedListNode Previous
+ {
+ get
+ {
+ var previous = _node.Previous;
+ if (previous != null) return new EpgLinkedListNodeWrapper(_linkedList, previous);
+
+ if ((_linkedList.PhantomNode != null) && (_linkedList.PhantomNode.IsFirst))
+ {
+ return _linkedList.PhantomNode;
+ } // if
+
+ return null;
+ } // get
+ } // Previous
+
+ public EpgProgram Program=>_node.Value;
+
+ public override int GetHashCode()
+ {
+ return _node.GetHashCode();
+ } // GetHashCode
+
+ public override bool Equals(object obj)
+ {
+ var wrappedNode = obj as EpgLinkedListNodeWrapper;
+ if (ReferenceEquals(wrappedNode, null)) return false;
+
+ return (_node == wrappedNode._node);
+ } // Equals
+
+ public override string ToString()
+ {
+ return _node.Value.ToString();
+ } // ToString
+
+ public static bool operator ==(EpgLinkedListNodeWrapper a, EpgLinkedListNodeWrapper b)
+ {
+ if (ReferenceEquals(a, b)) return true;
+ if ((a == null) || (b == null)) return false;
+ return (a._node == b._node);
+ } // operator ==
+
+ public static bool operator !=(EpgLinkedListNodeWrapper a, EpgLinkedListNodeWrapper b)
+ {
+ return !(a == b);
+ } // operator !=
+ } // class EpgLinkedListNodeWrapper
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgLinkedListPhantomNode.cs b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgLinkedListPhantomNode.cs
new file mode 100644
index 00000000..afcd7d7b
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgLinkedListPhantomNode.cs
@@ -0,0 +1,49 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+namespace IpTviewr.Services.EpgDiscovery
+{
+ public sealed class EpgLinkedListPhantomNode : IEpgLinkedListNode
+ {
+ private readonly EpgLinkedListWrapper _linkedList;
+
+ public EpgLinkedListPhantomNode(EpgLinkedListWrapper list, EpgProgram program, bool first)
+ {
+ _linkedList = list;
+ Program = program;
+ IsFirst = first;
+ if (first)
+ {
+ Previous = null;
+ Next = new EpgLinkedListNodeWrapper(list, list.List.First);
+ }
+ else
+ {
+ Previous = new EpgLinkedListNodeWrapper(list, list.List.Last);
+ Next = null;
+ } // if-else
+ } // constructor
+
+ public IEpgLinkedList List => _linkedList;
+
+ public IEpgLinkedListNode Next { get; }
+
+ public IEpgLinkedListNode Previous { get; }
+
+ public EpgProgram Program { get; }
+
+ public bool IsFirst { get; }
+
+ public bool IsLast => !IsFirst;
+ } // sealed class EpgLinkedListPhantomNode
+} // namespace
diff --git a/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgLinkedListWrapper.cs b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgLinkedListWrapper.cs
new file mode 100644
index 00000000..60682036
--- /dev/null
+++ b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgLinkedListWrapper.cs
@@ -0,0 +1,107 @@
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using System.Collections;
+using System.Collections.Generic;
+
+namespace IpTviewr.Services.EpgDiscovery
+{
+ public sealed class EpgLinkedListWrapper : IEpgLinkedList
+ {
+ private readonly LinkedListNode _requestedNode;
+
+ public EpgLinkedListWrapper(string serviceIdRef, LinkedList linkedList, LinkedListNode requested = null)
+ {
+ ServiceIdRef = serviceIdRef;
+ List = linkedList;
+ _requestedNode = requested;
+ } // constructor
+
+ public EpgLinkedListWrapper(string serviceIdRef, LinkedList linkedList, EpgProgram phantomEmptyProgram, bool first = true)
+ {
+ ServiceIdRef = serviceIdRef;
+ List = linkedList;
+ PhantomNode = new EpgLinkedListPhantomNode(this, phantomEmptyProgram, first);
+ } // constructor
+
+ public int Count => (PhantomNode == null) ? List.Count : List.Count + 1;
+
+ public IEpgLinkedListNode First
+ {
+ get
+ {
+ if ((PhantomNode != null) && (PhantomNode.IsFirst)) return PhantomNode;
+
+ return new EpgLinkedListNodeWrapper(this, List.First);
+ } // get
+ } // First
+
+ public IEpgLinkedListNode Last
+ {
+ get
+ {
+ if ((PhantomNode != null) && (!PhantomNode.IsFirst)) return PhantomNode;
+
+ return new EpgLinkedListNodeWrapper(this, List.Last);
+ } // get
+ } // Last
+
+ public IEpgLinkedListNode Requested
+ {
+ get
+ {
+ if (PhantomNode != null) return PhantomNode;
+
+ return new EpgLinkedListNodeWrapper(this, _requestedNode ?? List.First);
+ } // get
+ } // Requested
+
+ public string ServiceIdRef
+ {
+ get;
+ private set;
+ } // ServiceIdRef
+
+ internal EpgLinkedListPhantomNode PhantomNode
+ {
+ get;
+ set;
+ } // PhantomNode
+
+ public IEpgLinkedListNode GetMore(bool forward, int nodesCount, bool keepExistingData)
+ {
+ return null;
+ } // GetMore
+
+ public IEnumerator GetEnumerator()
+ {
+ var current = First;
+ while (current != null)
+ {
+ yield return current.Program;
+ current = current.Next;
+ } // while
+ } // GetEnumerator
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ } // IEnumerable.GetEnumerator
+
+ internal LinkedList List
+ {
+ get;
+ set;
+ } // List
+ } // class EpgLinkedListWrapper
+} // namespace
diff --git a/1.5 'Kruger 60'/Services.EpgDiscovery/EpgMemoryDatastore.cs b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgMemoryDatastore.cs
similarity index 75%
rename from 1.5 'Kruger 60'/Services.EpgDiscovery/EpgMemoryDatastore.cs
rename to 1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgMemoryDatastore.cs
index 9b316cf7..86956e65 100644
--- a/1.5 'Kruger 60'/Services.EpgDiscovery/EpgMemoryDatastore.cs
+++ b/1.5 'Kruger 60'/Assemblies/Services.EpgDiscovery/EpgMemoryDatastore.cs
@@ -1,10 +1,20 @@
-using IpTviewr.Common;
+// ==============================================================================
+//
+// Copyright (C) 2014-2020, GitHub/Codeplex user AlphaCentaury
+// All rights reserved.
+//
+// See 'LICENSE.MD' file (or 'license.txt' if missing) in the project root
+// for complete license information.
+//
+// http://www.alphacentaury.org/movistartv
+// https://github.com/AlphaCentaury
+//
+// ==============================================================================
+
+using IpTviewr.Common;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
namespace IpTviewr.Services.EpgDiscovery
{
@@ -14,13 +24,13 @@ public enum EpgMemoryStorageMethod
Merge
} // EpgMemoryStorageMethod
- public sealed class EpgMemoryDatastore: EpgDatastore
+ public sealed class EpgMemoryDataStore: EpgDataStore
{
- private ConcurrentDictionary Data;
+ private readonly ConcurrentDictionary _data;
- public EpgMemoryDatastore()
+ public EpgMemoryDataStore()
{
- Data = new ConcurrentDictionary();
+ _data = new ConcurrentDictionary();
} // constructor
public EpgMemoryStorageMethod StorageMethod
@@ -31,22 +41,20 @@ public EpgMemoryStorageMethod StorageMethod
public override ICollection GetServicesRefs()
{
- return Data.Keys;
+ return _data.Keys;
} // GetServicesRefs
public override IEpgLinkedList GetPrograms(string serviceIdRef, DateTime? localTime, int nodesBefore, int nodesAfter)
{
- EpgService epgService;
-
- if (!Data.TryGetValue(serviceIdRef, out epgService)) return null;
+ if (!_data.TryGetValue(serviceIdRef, out var epgService)) return null;
return GetLinkedList(epgService, localTime);
} // GetPrograms
public override IDictionary GetAllPrograms(DateTime? localTime, int nodesBefore, int nodesAfter)
{
- var result = new Dictionary(Data.Count);
- foreach(var entry in Data)
+ var result = new Dictionary