diff --git a/.github/labeler.yml b/.github/labeler.yml
index 52f0aff7cd1..c14244acb17 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -15,3 +15,6 @@ Tuning:
MPE:
- 'MPE'
+
+Skin:
+ - '(Titan|DWHD|skin)'
diff --git a/.github/workflows/mediaportal.yml b/.github/workflows/mediaportal.yml
index 59451437d47..52726d40325 100644
--- a/.github/workflows/mediaportal.yml
+++ b/.github/workflows/mediaportal.yml
@@ -52,7 +52,7 @@ jobs:
- name: Setup NSIS
run: |
- choco install --yes nsis --version=3.09 --force
+ choco install --yes nsis --version=3.10 --force
- name: Git Checkout
uses: actions/checkout@v4
@@ -73,7 +73,7 @@ jobs:
with:
name: Build result file ${{ matrix.architecture }}
path: |
- ${{ github.workspace }}\Build\BuildFullInstaller.log
+ ${{ github.workspace }}\Build\*.log
retention-days: ${{ inputs.retention-logs || 3 }}
- name: Upload Artifact / Mediaportal setup file
diff --git a/.github/workflows/workflow_codeql.yml b/.github/workflows/workflow_codeql.yml
index 8d0adacb788..342a1430e53 100644
--- a/.github/workflows/workflow_codeql.yml
+++ b/.github/workflows/workflow_codeql.yml
@@ -33,7 +33,7 @@ jobs:
- name: Setup NSIS
run: |
- choco install --yes nsis --version=3.09 --force
+ choco install --yes nsis --version=3.10 --force
- name: Git Checkout
uses: actions/checkout@v4
diff --git a/.github/workflows/workflow_xml_validate.yml b/.github/workflows/workflow_xml_validate.yml
index 97233590751..2e87d58c7da 100644
--- a/.github/workflows/workflow_xml_validate.yml
+++ b/.github/workflows/workflow_xml_validate.yml
@@ -18,6 +18,7 @@ jobs:
- name: ⤵️ Check out configuration from GitHub
uses: actions/checkout@v4
- name: 🚀 Run XML Validate
- uses: action-pack/valid-xml@v1
+ uses: kehoecj/validate-configs-action@v4
with:
- file-endings: ".xml"
+ exclude-dirs: "MediaPortal.Tests"
+ exclude-file-types: "yaml,yml"
diff --git a/Common-MP-TVE3/External/Gentle.NET/Documentation/Help/H2Reg.ini b/Common-MP-TVE3/External/Gentle.NET/Documentation/Help/H2Reg.help
similarity index 100%
rename from Common-MP-TVE3/External/Gentle.NET/Documentation/Help/H2Reg.ini
rename to Common-MP-TVE3/External/Gentle.NET/Documentation/Help/H2Reg.help
diff --git a/Common-MP-TVE3/External/Gentle.NET/Documentation/Help/Register.bat b/Common-MP-TVE3/External/Gentle.NET/Documentation/Help/Register.bat
index f7cc248cdac..86251dc0d72 100644
--- a/Common-MP-TVE3/External/Gentle.NET/Documentation/Help/Register.bat
+++ b/Common-MP-TVE3/External/Gentle.NET/Documentation/Help/Register.bat
@@ -4,4 +4,4 @@ REM *** EDIT THE PATHS BELOW IF NEEDED
REM
REM Registers Gentle.Framework in HTML 2 Help
REM
-"C:\Program Files\Helpware\H2Reg\H2Reg.exe" -r cmdfile="C:\Code\Gentle.NET\Documentation\Help\H2Reg.ini"
+"C:\Program Files\Helpware\H2Reg\H2Reg.exe" -r cmdfile="C:\Code\Gentle.NET\Documentation\Help\H2Reg.help"
diff --git a/Common-MP-TVE3/External/Gentle.NET/Documentation/Help/Unregister.bat b/Common-MP-TVE3/External/Gentle.NET/Documentation/Help/Unregister.bat
index 122f7cc1f1a..6ce018c149a 100644
--- a/Common-MP-TVE3/External/Gentle.NET/Documentation/Help/Unregister.bat
+++ b/Common-MP-TVE3/External/Gentle.NET/Documentation/Help/Unregister.bat
@@ -1,3 +1,3 @@
@echo off
REM Unregisters Gentle.Framework in HTML 2 Help
-"C:\Program Files\H2Reg\H2Reg.exe" -u cmdfile="C:\Code\Gentle.NET\Documentation\Help\H2Reg.ini"
+"C:\Program Files\H2Reg\H2Reg.exe" -u cmdfile="C:\Code\Gentle.NET\Documentation\Help\H2Reg.help"
diff --git a/Common-MP-TVE3/SolutionInfo.cs b/Common-MP-TVE3/SolutionInfo.cs
index cade7bf9dc8..7528cfb9726 100644
--- a/Common-MP-TVE3/SolutionInfo.cs
+++ b/Common-MP-TVE3/SolutionInfo.cs
@@ -50,8 +50,8 @@
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.35.000.0")]
-[assembly: AssemblyFileVersion("1.35.000.0")]
+[assembly: AssemblyVersion("1.36.000.0")]
+[assembly: AssemblyFileVersion("1.36.000.0")]
//[assembly: AssemblyInformationalVersion("")]
//[assembly: CompatibleVersion("1.1.8.*", "1.1.8.*")]
diff --git a/Tools/InstallationScripts/XML-plugin/Example/test.xml b/Tools/InstallationScripts/XML-plugin/Example/test.xml
index ffba3d99ee7..706cae725a5 100644
--- a/Tools/InstallationScripts/XML-plugin/Example/test.xml
+++ b/Tools/InstallationScripts/XML-plugin/Example/test.xml
@@ -1,5 +1,6 @@
+
AAA
@@ -17,3 +18,4 @@
HHH
+
diff --git a/Tools/InstallationScripts/include-MP-PreBuild.nsh b/Tools/InstallationScripts/include-MP-PreBuild.nsh
index 4f4d094cce6..85fe707a4db 100644
--- a/Tools/InstallationScripts/include-MP-PreBuild.nsh
+++ b/Tools/InstallationScripts/include-MP-PreBuild.nsh
@@ -1,6 +1,6 @@
-#region Copyright (C) 2005-2023 Team MediaPortal
+#region Copyright (C) 2005-2024 Team MediaPortal
/*
-// Copyright (C) 2005-2023 Team MediaPortal
+// Copyright (C) 2005-2024 Team MediaPortal
// http://www.team-mediaportal.com
//
// MediaPortal is free software: you can redistribute it and/or modify
@@ -110,7 +110,7 @@
; Build MP installer
!ifdef BUILD_Installer
;!system '${git_ROOT}\Build\MSBUILD_MP_LargeAddressAware.bat Release' = 0
-!system '"${NSISDIR}\makensis.exe" /DBUILD_TYPE=Release /DArchitecture=${Architecture} "${git_MP}\Setup\setup.nsi"' = 0
+!system '"${NSISDIR}\makensis.exe" /V3 /DBUILD_TYPE=Release /DArchitecture=${Architecture} "${git_MP}\Setup\setup.nsi" > ${git_ROOT}\Build\BuildMediaportal.log' = 0
!endif
; Build TV server
@@ -139,5 +139,5 @@
; Build TV installer
!ifdef BUILD_Installer
-!system '"${NSISDIR}\makensis.exe" /DBUILD_TYPE=Release /DArchitecture=${Architecture} "${git_TVServer}\Setup\setup.nsi"' = 0
+!system '"${NSISDIR}\makensis.exe" /V3 /DBUILD_TYPE=Release /DArchitecture=${Architecture} "${git_TVServer}\Setup\setup.nsi" > ${git_ROOT}\Build\BuildTVServer.log' = 0
!endif
diff --git a/Tools/InstallationScripts/include/MediaPortalCurrentVersion.nsh b/Tools/InstallationScripts/include/MediaPortalCurrentVersion.nsh
index bb65427ecb4..5a1e87e2cee 100644
--- a/Tools/InstallationScripts/include/MediaPortalCurrentVersion.nsh
+++ b/Tools/InstallationScripts/include/MediaPortalCurrentVersion.nsh
@@ -31,7 +31,7 @@
!define VER_MAJOR 1
-!define VER_MINOR 35
+!define VER_MINOR 36
!define VER_REVISION 000
#**********************************************************************************************************#
diff --git a/Tools/InstallationScripts/include/MediaPortalMacros.nsh b/Tools/InstallationScripts/include/MediaPortalMacros.nsh
index bffd3d616eb..9ea6934c194 100644
--- a/Tools/InstallationScripts/include/MediaPortalMacros.nsh
+++ b/Tools/InstallationScripts/include/MediaPortalMacros.nsh
@@ -1,6 +1,6 @@
-#region Copyright (C) 2005-2023 Team MediaPortal
+#region Copyright (C) 2005-2024 Team MediaPortal
/*
-// Copyright (C) 2005-2023 Team MediaPortal
+// Copyright (C) 2005-2024 Team MediaPortal
// http://www.team-mediaportal.com
//
// MediaPortal is free software: you can redistribute it and/or modify
@@ -18,8 +18,8 @@
*/
#endregion
-!if "${NSIS_VERSION}" != "v3.09"
- !error "$\r$\n$\r$\nUnsupported NSIS version: ${NSIS_VERSION}. Please use NSIS v3.09, http://nsis.sourceforge.net$\r$\n$\r$\n"
+!if "${NSIS_VERSION}" != "v3.10"
+ !error "$\r$\n$\r$\nUnsupported NSIS version: ${NSIS_VERSION}. Please use NSIS v3.10, http://nsis.sourceforge.net$\r$\n$\r$\n"
!endif
!ifndef ___COMMON_MP_MACROS__NSH___
diff --git a/Tools/MediaPortal.DeployTool/Utils.cs b/Tools/MediaPortal.DeployTool/Utils.cs
index 439b3befffc..e5c5b81dc9f 100644
--- a/Tools/MediaPortal.DeployTool/Utils.cs
+++ b/Tools/MediaPortal.DeployTool/Utils.cs
@@ -781,7 +781,7 @@ public static Version GetPackageVersion(string type)
break;
case "max":
major = 1;
- minor = 34;
+ minor = 35;
revision = 100;
break;
}
@@ -802,7 +802,7 @@ public static bool IsPackageUpdatabled(Version pkgVer)
public static Version GetCurrentPackageVersion()
{
int major = 1;
- int minor = 35;
+ int minor = 36;
int revision = 000;
Version ver = new Version(major, minor, revision);
@@ -853,7 +853,7 @@ public static Version VersionFromRegistry(string regkey)
public static string GetDisplayVersion()
{
- return "1.35 Horizon";
+ return "1.36 Polar Express";
}
///
diff --git a/Tools/SkinEditor/config.xml b/Tools/SkinEditor/config.xml
index bcf3ed5bffa..6097facfa5b 100644
Binary files a/Tools/SkinEditor/config.xml and b/Tools/SkinEditor/config.xml differ
diff --git a/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Croatia.D3 - sjeverna hrvatska.xml b/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Croatia.D3 - sjeverna hrvatska.xml
index 4f2ea01e4fd..93ceb8fe938 100644
--- a/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Croatia.D3 - sjeverna hrvatska.xml
+++ b/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Croatia.D3 - sjeverna hrvatska.xml
@@ -4,6 +4,7 @@
658000
8
0
+
690000
8
diff --git a/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Ireland.Donegal - Holywell Hill.xml b/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Ireland.Donegal - Holywell Hill.xml
index b918e8f8af3..cdf0785dcf8 100644
--- a/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Ireland.Donegal - Holywell Hill.xml
+++ b/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Ireland.Donegal - Holywell Hill.xml
@@ -5,6 +5,7 @@
8
167
+
506000
8
167
diff --git a/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Beacon Hill.xml b/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Beacon Hill.xml
index accf7d2f24b..cf8dd6a2100 100644
--- a/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Beacon Hill.xml
+++ b/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Beacon Hill.xml
@@ -36,4 +36,4 @@
8
167
-3
\ No newline at end of file
+
diff --git a/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Bluebell Hill.xml b/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Bluebell Hill.xml
index 51940ffe01d..3ab6ae0f22d 100644
--- a/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Bluebell Hill.xml
+++ b/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Bluebell Hill.xml
@@ -1,6 +1,7 @@
+
562000
8
167
@@ -47,4 +48,4 @@
8
167
-
\ No newline at end of file
+
diff --git a/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Rosneath.xml b/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Rosneath.xml
index 8bdc993fc1c..97ce5d62130 100644
--- a/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Rosneath.xml
+++ b/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Rosneath.xml
@@ -1,6 +1,7 @@
+
618000
8
167
@@ -35,4 +36,4 @@
8
167
-
\ No newline at end of file
+
diff --git a/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Tunbridge Wells.xml b/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Tunbridge Wells.xml
index 5d5db3c8c68..361a06a7024 100644
--- a/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Tunbridge Wells.xml
+++ b/TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/UK.Tunbridge Wells.xml
@@ -1,6 +1,7 @@
+
634000
8
167
@@ -41,4 +42,4 @@
8
167
-
\ No newline at end of file
+
diff --git a/TvEngine3/TVLibrary/TVServer.Base/WebEPG/grabbers/FR/linternaute_com.xml b/TvEngine3/TVLibrary/TVServer.Base/WebEPG/grabbers/FR/linternaute_com.xml
index e4947f53c80..612abc3f4b2 100644
--- a/TvEngine3/TVLibrary/TVServer.Base/WebEPG/grabbers/FR/linternaute_com.xml
+++ b/TvEngine3/TVLibrary/TVServer.Base/WebEPG/grabbers/FR/linternaute_com.xml
@@ -7,8 +7,8 @@
-
-
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -34,7 +34,7 @@
-
+
@@ -42,33 +42,33 @@
-
-
-
+
+
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
@@ -76,7 +76,7 @@
-
+
@@ -87,7 +87,7 @@
-
+
<tr>
@@ -119,4 +119,3 @@
---
-
diff --git a/TvEngine3/TVLibrary/TVServer.Base/WebEPG/grabbers/GR/www_in_gr.xml b/TvEngine3/TVLibrary/TVServer.Base/WebEPG/grabbers/GR/www_in_gr.xml
index fd9874c5e0a..aec8345a392 100644
--- a/TvEngine3/TVLibrary/TVServer.Base/WebEPG/grabbers/GR/www_in_gr.xml
+++ b/TvEngine3/TVLibrary/TVServer.Base/WebEPG/grabbers/GR/www_in_gr.xml
@@ -65,7 +65,7 @@
-
+
<div><div></div><p><#DESCRIPTION></p>
diff --git a/TvEngine3/TVLibrary/TVServer.Base/WebEPG/grabbers/commented-grabber.xml b/TvEngine3/TVLibrary/TVServer.Base/WebEPG/grabbers/commented-grabber.xml.template
similarity index 100%
rename from TvEngine3/TVLibrary/TVServer.Base/WebEPG/grabbers/commented-grabber.xml
rename to TvEngine3/TVLibrary/TVServer.Base/WebEPG/grabbers/commented-grabber.xml.template
diff --git a/appveyor.yml b/appveyor.yml
index 708d9c0ba2b..85cfee60136 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,4 +1,4 @@
-version: 1.35.Final.{build}
+version: 1.36.Final.{build}
image: Visual Studio 2019
clone_folder: c:\project\mediaportal
environment:
@@ -12,7 +12,7 @@ install:
- cmd: >-
git submodule update --init --recursive
- choco install nsis --version=3.09
+ choco install --yes nsis --version=3.10 --force
java -version
diff --git a/mediaportal/Configuration/App.config b/mediaportal/Configuration/App.config
index 15394f59d42..852f3c29c43 100644
--- a/mediaportal/Configuration/App.config
+++ b/mediaportal/Configuration/App.config
@@ -23,7 +23,7 @@
-
+
diff --git a/mediaportal/Configuration/Sections/Movies.cs b/mediaportal/Configuration/Sections/Movies.cs
index c4f56bbeef2..ebcc792cd44 100644
--- a/mediaportal/Configuration/Sections/Movies.cs
+++ b/mediaportal/Configuration/Sections/Movies.cs
@@ -152,7 +152,7 @@ public override void LoadSettings()
repeatPlaylistCheckBox.Checked = xmlreader.GetValueAsBool("movies", "repeat", true);
comboBoxPlayAll.SelectedIndex = xmlreader.GetValueAsInt("movies", "playallinfolder", 3);
-
+ MadVrInUse = xmlreader.GetValueAsBool("general", "useMadVideoRenderer", false);
subEnginesCombo.SelectedItem = xmlreader.GetValueAsString("subtitles", "engine", "MPC-HC");
subPaths.Text = xmlreader.GetValueAsString("subtitles", "paths", @".\,.\Subtitles\");
checkBoxShowWatched.Checked = xmlreader.GetValueAsBool("movies", "markwatched", true);
@@ -163,7 +163,7 @@ public override void LoadSettings()
playedPercentageTB.Value = playedPercentageTrackBar.Value;
comSkipCheckBox.Checked = xmlreader.GetValueAsBool("comskip", "automaticskip", false);
- MadVrInUse = xmlreader.GetValueAsBool("general", "useMadVideoRenderer", false);
+
string selection = (string)subEnginesCombo.SelectedItem;
if ((!MadVrInUse && selection.Equals("XySubFilter") && !SubtitleComboMessageDone))
{
diff --git a/mediaportal/Core/Core.csproj b/mediaportal/Core/Core.csproj
index a7c66c904ee..2e3e4ba0619 100644
--- a/mediaportal/Core/Core.csproj
+++ b/mediaportal/Core/Core.csproj
@@ -1766,11 +1766,11 @@ xcopy "$(TargetDir)core.*" "$(SolutionDir)MediaPortal.Application\bin\$(Configur
-
+
-
+
\ No newline at end of file
diff --git a/mediaportal/Core/Player/FFDShow/FFDShowEngine.cs b/mediaportal/Core/Player/FFDShow/FFDShowEngine.cs
index 3d4b783981e..5aab6f85b69 100644
--- a/mediaportal/Core/Player/FFDShow/FFDShowEngine.cs
+++ b/mediaportal/Core/Player/FFDShow/FFDShowEngine.cs
@@ -38,6 +38,7 @@ public class FFDShowEngine : SubSettings, ISubEngine, IPostProcessingEngine
private FFDShowAPI ffdshowAPI;
private bool hasPostProcessing = false;
protected int audiodelayInterval;
+ private string _SubtitleFilename = null;
public static void DisableFFDShowSubtitles(IGraphBuilder graphBuilder)
{
@@ -161,6 +162,8 @@ public void SetDevice(IntPtr device) {}
public bool LoadSubtitles(IGraphBuilder graphBuilder, string filename)
{
+ this._SubtitleFilename = filename;
+
LoadSettings();
//remove DirectVobSub
@@ -348,6 +351,8 @@ public bool AutoShow
set { autoShow = value; }
}
+ public string FileName { get => this._SubtitleFilename; }
+
#endregion
#region IPostProcessing Members
diff --git a/mediaportal/Core/Player/Subtitles/DirectVobSubEngine.cs b/mediaportal/Core/Player/Subtitles/DirectVobSubEngine.cs
index 3fbafae64b4..b287f932a72 100644
--- a/mediaportal/Core/Player/Subtitles/DirectVobSubEngine.cs
+++ b/mediaportal/Core/Player/Subtitles/DirectVobSubEngine.cs
@@ -43,6 +43,7 @@ public class DirectVobSubEngine : SubSettings, ISubEngine
private List SubtitleNames = new List();
private int extCount;
private int current;
+ private string _SubtitleFilename = null;
#region ISubEngine Members
@@ -50,6 +51,8 @@ public void SetDevice(IntPtr device) {}
public bool LoadSubtitles(IGraphBuilder graphBuilder, string filename)
{
+ this._SubtitleFilename = filename;
+
FreeSubtitles();
LoadSettings();
@@ -383,6 +386,8 @@ public bool AutoShow
}
}
+ public string FileName { get => this._SubtitleFilename; }
+
#endregion
}
diff --git a/mediaportal/Core/Player/Subtitles/MpcEngine.cs b/mediaportal/Core/Player/Subtitles/MpcEngine.cs
index c17cc0ba493..70396096b29 100644
--- a/mediaportal/Core/Player/Subtitles/MpcEngine.cs
+++ b/mediaportal/Core/Player/Subtitles/MpcEngine.cs
@@ -35,6 +35,8 @@ namespace MediaPortal.Player.Subtitles
{
public class MpcEngine : SubSettings, ISubEngine
{
+ private string _SubtitleFilename = null;
+
protected override void LoadAdvancedSettings(Settings xmlreader)
{
int subPicsBufferAhead = xmlreader.GetValueAsInt("subtitles", "subPicsBufferAhead", 3);
@@ -117,6 +119,7 @@ public void SetDevice(IntPtr device)
public bool LoadSubtitles(IGraphBuilder graphBuilder, string filename)
{
+ this._SubtitleFilename = filename;
LoadSettings();
MpcSubtitles.SetDefaultStyle(ref this.defStyle, this.overrideASSStyle);
if (selectionOff)
@@ -288,6 +291,8 @@ public bool AutoShow
}
}
+ public string FileName { get => this._SubtitleFilename; }
+
#endregion
private class MpcSubtitles
diff --git a/mediaportal/Core/Player/Subtitles/SubEngine.cs b/mediaportal/Core/Player/Subtitles/SubEngine.cs
index 17e558129b9..1947854d871 100644
--- a/mediaportal/Core/Player/Subtitles/SubEngine.cs
+++ b/mediaportal/Core/Player/Subtitles/SubEngine.cs
@@ -73,6 +73,8 @@ public interface ISubEngine
void DelayMinus(int subtitleDelay);
bool AutoShow { get; set; }
+
+ string FileName { get; }
}
public class SubEngine
@@ -123,12 +125,15 @@ public static ISubEngine GetInstance(bool forceinitialize)
public class DummyEngine : ISubEngine
{
+ private string _SubtitleFilename = null;
+
#region ISubEngine Members
public void SetDevice(IntPtr device) {}
public bool LoadSubtitles(IGraphBuilder graphBuilder, string filename)
{
+ this._SubtitleFilename = filename;
DirectVobSubUtil.RemoveFromGraph(graphBuilder);
return false;
}
@@ -207,6 +212,8 @@ public bool AutoShow
set { }
}
+ public string FileName { get => this._SubtitleFilename; }
+
#endregion
}
}
diff --git a/mediaportal/Core/Player/VideoPlayerVMR7.cs b/mediaportal/Core/Player/VideoPlayerVMR7.cs
index 18dae85be97..e20e9da876b 100644
--- a/mediaportal/Core/Player/VideoPlayerVMR7.cs
+++ b/mediaportal/Core/Player/VideoPlayerVMR7.cs
@@ -18,7 +18,8 @@
#endregion
-using System;
+using System;
+using System.Linq;
using System.Globalization;
using System.Drawing;
using System.IO;
@@ -1825,40 +1826,49 @@ public override string SubtitleLanguage(int iStream)
{
string streamName = SubEngine.GetInstance().GetLanguage(iStream);
string langName = SubEngine.GetInstance().GetLanguage(iStream);
- string streamNameUND = SubEngine.GetInstance().GetSubtitleName(iStream);
+ string streamNameUND = SubEngine.GetInstance().GetSubtitleName(iStream);
+ string strSubtitleFileName = SubEngine.GetInstance().FileName; //filename used to load subtitle engine
if (streamName == null)
{
return Strings.Unknown;
}
-
- //MPC-HC 2.0.0
- //"[Local] 4-3 bar test.English-Forced.srt\tEnglish"
- Regex regexMPCHC = new Regex(@"^\[([^\]]+)\]\s(?[^\t]+)(\t(?.+))?");
- Match match = regexMPCHC.Match(streamName);
- if (match.Success)
+
+ if (!string.IsNullOrWhiteSpace(strSubtitleFileName))
{
- // Group grLng = match.Groups["lng"];
- // if (grLng.Success)
- // return grLng.Value;
- //
- // string strVideNoExt = Path.GetFileNameWithoutExtension(this.m_strCurrentFile);
- // string strSubNoExt = Path.GetFileNameWithoutExtension(match.Groups["file"].Value);
- // if (strVideNoExt.Equals(strSubNoExt, StringComparison.CurrentCultureIgnoreCase))
- // return "Undetermined";
+ //MPC-HC 2.0.0
+ //"[Local] 4-3 bar test.English-Forced.srt\tEnglish"
+ Regex regexMPCHC = new Regex(@"^\[([^\]]+)\]\s(?[^\t]+)(\t(?.+))?");
+ Match match = regexMPCHC.Match(streamName);
+ if (match.Success)
+ {
+ Group grLng = match.Groups["lng"];
+ if (grLng.Success)
+ return grLng.Value; //language parsed by MPC-HC
- string strVideNoExt = Path.GetFileNameWithoutExtension(this.m_strCurrentFile);
- string strSubNoExt = Path.GetFileNameWithoutExtension(match.Groups["file"].Value);
- if (strSubNoExt.Length > strVideNoExt.Length)
- streamName = strSubNoExt.Substring(strVideNoExt.Length + 1);
- else
- streamName = string.Empty;
+ string strVideNoExt = Path.GetFileNameWithoutExtension(strSubtitleFileName);
+ string strSubNoExt = Path.GetFileNameWithoutExtension(match.Groups["file"].Value);
+ if (strVideNoExt.Equals(strSubNoExt, StringComparison.CurrentCultureIgnoreCase))
+ return "Undetermined"; //no subtitle suffix
+ else if (strSubNoExt.StartsWith(strVideNoExt, StringComparison.CurrentCultureIgnoreCase))
+ {
+ if (strSubNoExt.Length > strVideNoExt.Length)
+ streamName = strSubNoExt.Substring(strVideNoExt.Length + 1); //Subtitle filename has a suffix
+ else
+ streamName = string.Empty;
- if (string.IsNullOrWhiteSpace(streamName))
- streamName = strVideNoExt;
+ if (string.IsNullOrWhiteSpace(streamName))
+ streamName = strVideNoExt;
+ }
+ else
+ {
+ //difference between m_strCurrentFile and ISubEngine.LoadSubtitles call
+ streamName = strSubNoExt;
+ }
- langName = streamName;
- streamNameUND = streamName;
+ langName = streamName;
+ streamNameUND = streamName;
+ }
}
// remove prefix, which is added by Haali Media Splitter
@@ -1932,27 +1942,54 @@ public override string SubtitleName(int iStream)
{
string streamName = SubEngine.GetInstance().GetSubtitleName(iStream);
string streamNameFalse = SubEngine.GetInstance().GetSubtitleName(iStream);
- string langName = SubEngine.GetInstance().GetLanguage(iStream);
+ string langName = SubEngine.GetInstance().GetLanguage(iStream);
+ string strSubtitleFileName = SubEngine.GetInstance().FileName; //filename used to load subtitle engine
+
if (streamName == null)
{
return Strings.Unknown;
}
- //MPC-HC 2.0.0
- //"[Local] 4-3 bar test.English-Forced.srt\tEnglish"
- Regex regexMPCHC = new Regex(@"^\[([^\]]+)\]\s(?[^\t]+)(\t(?.+))?");
- Match match = regexMPCHC.Match(streamName);
- if (match.Success)
+ if (!string.IsNullOrWhiteSpace(strSubtitleFileName))
{
- string strVideNoExt = Path.GetFileNameWithoutExtension(this.m_strCurrentFile);
- string strSubNoExt = Path.GetFileNameWithoutExtension(match.Groups["file"].Value);
- if (strSubNoExt.Length > strVideNoExt.Length)
- streamName = strSubNoExt.Substring(strVideNoExt.Length + 1);
- else
- streamName = string.Empty;
+ //MPC-HC 2.0.0
+ //"[Local] 4-3 bar test.English-Forced.srt\tEnglish"
+ Regex regexMPCHC = new Regex(@"^\[([^\]]+)\]\s(?[^\t]+)(\t(?.+))?");
+ Match match = regexMPCHC.Match(streamName);
+ if (match.Success)
+ {
+ string strVideNoExt = Path.GetFileNameWithoutExtension(strSubtitleFileName);
+ string strSubNoExt = Path.GetFileNameWithoutExtension(match.Groups["file"].Value);
+ if (strSubNoExt.StartsWith(strVideNoExt, StringComparison.CurrentCultureIgnoreCase))
+ {
+ if (strSubNoExt.Length > strVideNoExt.Length)
+ {
+ //Subtitle filename has a suffix
+ Group grLng = match.Groups["lng"];
+ if (grLng.Success)
+ {
+ //Try to extract additional suffix following the language
+ match = Regex.Match(strSubNoExt.Substring(strVideNoExt.Length), @"[-\._](?[A-Za-z]+)[-\._\[]+(?.+?)\]?\z");
+ if (match.Success)
+ return match.Groups["suffix"].Value;
+ else
+ return string.Empty; //no additional suffix - just language
+ }
- streamNameFalse = streamName;
- langName = streamName;
+ //Unknown subtitle filename suffix
+ return strSubNoExt.Substring(strVideNoExt.Length + 1);
+ }
+ else
+ return string.Empty;
+ }
+ else
+ {
+ //difference between m_strCurrentFile and ISubEngine.LoadSubtitles call
+ streamName = strSubNoExt;
+ streamNameFalse = streamName;
+ langName = streamName;
+ }
+ }
}
// remove prefix, which is added by Haali Media Splitter
@@ -2084,192 +2121,202 @@ public void AnalyseStreamsChapters()
}
}
- public bool AnalyseStreams()
- {
- try
- {
- if (FStreams == null)
- {
- FStreams = new FilterStreams();
- }
- FStreams.DeleteAllStreams();
- //RETRIEVING THE CURRENT SPLITTER
- string filter;
- IBaseFilter[] foundfilter = new IBaseFilter[2];
- int fetched = 0;
- IEnumFilters enumFilters;
- graphBuilder.EnumFilters(out enumFilters);
- if (enumFilters != null)
- {
- enumFilters.Reset();
- while (enumFilters.Next(1, foundfilter, out fetched) == 0)
- {
- if (foundfilter[0] != null && fetched == 1)
- {
- if (chapters == null)
- {
- IAMExtendedSeeking pEs = foundfilter[0] as IAMExtendedSeeking;
- if (pEs != null)
- {
- int markerCount = 0;
- if (pEs.get_MarkerCount(out markerCount) == 0 && markerCount > 0)
- {
- chapters = new double[markerCount];
- chaptersname = new string[markerCount];
- for (int i = 1; i <= markerCount; i++)
- {
- double markerTime = 0;
- pEs.GetMarkerTime(i, out markerTime);
- chapters[i - 1] = markerTime;
- //fill up chapter names
- string name = null;
- pEs.GetMarkerName(i, out name);
- chaptersname[i - 1] = name;
- }
- }
- }
- }
- IAMStreamSelect pStrm = foundfilter[0] as IAMStreamSelect;
- if (pStrm != null)
- {
- FilterInfo foundfilterinfos = new FilterInfo();
- foundfilter[0].QueryFilterInfo(out foundfilterinfos);
- filter = foundfilterinfos.achName;
- int cStreams = 0;
- pStrm.Count(out cStreams);
- if (cStreams < 2)
- {
- continue;
- }
- //GET STREAMS
- for (int istream = 0; istream < cStreams; istream++)
- {
- AMMediaType sType;
- AMStreamSelectInfoFlags sFlag;
- int sPDWGroup, sPLCid;
- string sName;
- object pppunk, ppobject;
- //STREAM INFO
- pStrm.Info(istream, out sType, out sFlag, out sPLCid,
- out sPDWGroup, out sName, out pppunk, out ppobject);
- FilterStreamInfos FSInfos = new FilterStreamInfos();
- FSInfos.Current = false;
- FSInfos.Filter = filter;
- FSInfos.Name = sName;
- FSInfos.LCID = sPLCid;
- FSInfos.Id = istream;
- FSInfos.Type = StreamType.Unknown;
- FSInfos.sFlag = sFlag;
- //Avoid listing ffdshow video filter's plugins amongst subtitle and audio streams and editions.
- if ((FSInfos.Filter == "ffdshow DXVA Video Decoder" || FSInfos.Filter == "ffdshow Video Decoder" ||
- FSInfos.Filter == "ffdshow raw video filter") &&
- ((sPDWGroup == 1) || (sPDWGroup == 2) || (sPDWGroup == 18) || (sPDWGroup == 4)))
- {
- FSInfos.Type = StreamType.Unknown;
- }
- //VIDEO
- else if (sPDWGroup == 0)
- {
- FSInfos.Type = StreamType.Video;
- }
- //AUDIO
- else if (sPDWGroup == 1)
- {
- FSInfos.Type = StreamType.Audio;
- }
- //SUBTITLE
- else if (sPDWGroup == 2 && sName.LastIndexOf("off", StringComparison.Ordinal) == -1 && sName.LastIndexOf("Hide ", StringComparison.Ordinal) == -1 &&
- sName.LastIndexOf("No ", StringComparison.Ordinal) == -1 && sName.LastIndexOf("Miscellaneous ", StringComparison.Ordinal) == -1)
- {
- FSInfos.Type = StreamType.Subtitle;
- }
- //NO SUBTITILE TAG
- else if ((sPDWGroup == 2 && (sName.LastIndexOf("off", StringComparison.Ordinal) != -1 || sName.LastIndexOf("No ", StringComparison.Ordinal) != -1)) ||
- (sPDWGroup == 6590033 && sName.LastIndexOf("Hide ", StringComparison.Ordinal) != -1))
- {
- FSInfos.Type = StreamType.Subtitle_hidden;
- }
- //DirectVobSub SHOW SUBTITLE TAG
- else if (sPDWGroup == 6590033 && sName.LastIndexOf("Show ", StringComparison.Ordinal) != -1)
- {
- FSInfos.Type = StreamType.Subtitle_shown;
- }
- //EDITION
- else if (sPDWGroup == 18)
- {
- FSInfos.Type = StreamType.Edition;
- }
- else if (sPDWGroup == 4) //Subtitle file
- {
- FSInfos.Type = StreamType.Subtitle_file;
- }
- else if (sPDWGroup == 10) //Postprocessing filter
- {
- FSInfos.Type = StreamType.PostProcessing;
- }
- Log.Debug("VideoPlayer: FoundStreams: Type={0}; Name={1}, Filter={2}, Id={3}, PDWGroup={4}, LCID={5}",
- FSInfos.Type.ToString(), FSInfos.Name, FSInfos.Filter, FSInfos.Id.ToString(),
- sPDWGroup.ToString(), sPLCid.ToString());
-
- switch (FSInfos.Type)
- {
- case StreamType.Unknown:
- case StreamType.Subtitle:
- case StreamType.Subtitle_file:
- case StreamType.Subtitle_hidden:
- case StreamType.Subtitle_shown:
- if (streamLAVSelection &&
- (FSInfos.Filter.ToLowerInvariant().Contains("LAV Splitter".ToLowerInvariant()) ||
- FSInfos.Filter.ToUpperInvariant().Contains(@"\BDMV\INDEX.BDMV")))
- {
- if (FSInfos.sFlag == AMStreamSelectInfoFlags.Enabled ||
- FSInfos.sFlag == (AMStreamSelectInfoFlags.Enabled | AMStreamSelectInfoFlags.Exclusive))
- {
- FSInfos.Current = true;
- pStrm.Enable(FSInfos.Id, 0);
- pStrm.Enable(FSInfos.Id, AMStreamSelectEnableFlags.Enable);
- }
- goto default;
- }
- break;
- case StreamType.Video:
- case StreamType.Audio:
- case StreamType.Edition:
- case StreamType.PostProcessing:
- if (FSInfos.Type == StreamType.Audio && FSInfos.Filter == MEDIAPORTAL_AUDIOSWITCHER_FILTER && FSInfos.Name == "Audio " && !AutoRenderingCheck && GetInterface)
- {
- FStreams.AddStreamInfosEx(FSInfos);
- break;
- }
- if (streamLAVSelection)
+ public bool AnalyseStreams()
+ {
+ try
+ {
+ if (FStreams == null)
+ {
+ FStreams = new FilterStreams();
+ }
+ FStreams.DeleteAllStreams();
+ //RETRIEVING THE CURRENT SPLITTER
+ string filter;
+ IBaseFilter[] foundfilter = new IBaseFilter[2];
+ int fetched = 0;
+ IEnumFilters enumFilters;
+ graphBuilder.EnumFilters(out enumFilters);
+ if (enumFilters != null)
+ {
+ string[] sourceFilters = null;
+ while (true)
+ {
+ enumFilters.Reset();
+ while (enumFilters.Next(1, foundfilter, out fetched) == 0)
+ {
+ if (foundfilter[0] != null && fetched == 1)
+ {
+ if (chapters == null)
+ {
+ IAMExtendedSeeking pEs = foundfilter[0] as IAMExtendedSeeking;
+ if (pEs != null)
+ {
+ int markerCount = 0;
+ if (pEs.get_MarkerCount(out markerCount) == 0 && markerCount > 0)
+ {
+ chapters = new double[markerCount];
+ chaptersname = new string[markerCount];
+ for (int i = 1; i <= markerCount; i++)
{
- if (FSInfos.sFlag == AMStreamSelectInfoFlags.Enabled || FSInfos.sFlag == (AMStreamSelectInfoFlags.Enabled | AMStreamSelectInfoFlags.Exclusive))
+ double markerTime = 0;
+ pEs.GetMarkerTime(i, out markerTime);
+ chapters[i - 1] = markerTime;
+ //fill up chapter names
+ string name = null;
+ pEs.GetMarkerName(i, out name);
+ chaptersname[i - 1] = name;
+ }
+ }
+ }
+ }
+ IAMStreamSelect pStrm = foundfilter[0] as IAMStreamSelect;
+ if (pStrm != null)
+ {
+ FilterInfo foundfilterinfos = new FilterInfo();
+ foundfilter[0].QueryFilterInfo(out foundfilterinfos);
+ filter = foundfilterinfos.achName;
+ int cStreams = 0;
+ pStrm.Count(out cStreams);
+ if (cStreams < 2 && (sourceFilters == null || cStreams != 1 || !sourceFilters.Any(f => filter.StartsWith(f))))
+ {
+ continue;
+ }
+ //GET STREAMS
+ for (int istream = 0; istream < cStreams; istream++)
+ {
+ AMMediaType sType;
+ AMStreamSelectInfoFlags sFlag;
+ int sPDWGroup, sPLCid;
+ string sName;
+ object pppunk, ppobject;
+ //STREAM INFO
+ pStrm.Info(istream, out sType, out sFlag, out sPLCid,
+ out sPDWGroup, out sName, out pppunk, out ppobject);
+ FilterStreamInfos FSInfos = new FilterStreamInfos();
+ FSInfos.Current = false;
+ FSInfos.Filter = filter;
+ FSInfos.Name = sName;
+ FSInfos.LCID = sPLCid;
+ FSInfos.Id = istream;
+ FSInfos.Type = StreamType.Unknown;
+ FSInfos.sFlag = sFlag;
+ //Avoid listing ffdshow video filter's plugins amongst subtitle and audio streams and editions.
+ if ((FSInfos.Filter == "ffdshow DXVA Video Decoder" || FSInfos.Filter == "ffdshow Video Decoder" ||
+ FSInfos.Filter == "ffdshow raw video filter") &&
+ ((sPDWGroup == 1) || (sPDWGroup == 2) || (sPDWGroup == 18) || (sPDWGroup == 4)))
+ {
+ FSInfos.Type = StreamType.Unknown;
+ }
+ //VIDEO
+ else if (sPDWGroup == 0)
+ {
+ FSInfos.Type = StreamType.Video;
+ }
+ //AUDIO
+ else if (sPDWGroup == 1)
+ {
+ FSInfos.Type = StreamType.Audio;
+ }
+ //SUBTITLE
+ else if (sPDWGroup == 2 && sName.LastIndexOf("off", StringComparison.Ordinal) == -1 && sName.LastIndexOf("Hide ", StringComparison.Ordinal) == -1 &&
+ sName.LastIndexOf("No ", StringComparison.Ordinal) == -1 && sName.LastIndexOf("Miscellaneous ", StringComparison.Ordinal) == -1)
+ {
+ FSInfos.Type = StreamType.Subtitle;
+ }
+ //NO SUBTITILE TAG
+ else if ((sPDWGroup == 2 && (sName.LastIndexOf("off", StringComparison.Ordinal) != -1 || sName.LastIndexOf("No ", StringComparison.Ordinal) != -1)) ||
+ (sPDWGroup == 6590033 && sName.LastIndexOf("Hide ", StringComparison.Ordinal) != -1))
+ {
+ FSInfos.Type = StreamType.Subtitle_hidden;
+ }
+ //DirectVobSub SHOW SUBTITLE TAG
+ else if (sPDWGroup == 6590033 && sName.LastIndexOf("Show ", StringComparison.Ordinal) != -1)
+ {
+ FSInfos.Type = StreamType.Subtitle_shown;
+ }
+ //EDITION
+ else if (sPDWGroup == 18)
+ {
+ FSInfos.Type = StreamType.Edition;
+ }
+ else if (sPDWGroup == 4) //Subtitle file
+ {
+ FSInfos.Type = StreamType.Subtitle_file;
+ }
+ else if (sPDWGroup == 10) //Postprocessing filter
+ {
+ FSInfos.Type = StreamType.PostProcessing;
+ }
+ Log.Debug("VideoPlayer: FoundStreams: Type={0}; Name={1}, Filter={2}, Id={3}, PDWGroup={4}, LCID={5}",
+ FSInfos.Type.ToString(), FSInfos.Name, FSInfos.Filter, FSInfos.Id.ToString(),
+ sPDWGroup.ToString(), sPLCid.ToString());
+
+ switch (FSInfos.Type)
+ {
+ case StreamType.Unknown:
+ case StreamType.Subtitle:
+ case StreamType.Subtitle_file:
+ case StreamType.Subtitle_hidden:
+ case StreamType.Subtitle_shown:
+ if (streamLAVSelection &&
+ (FSInfos.Filter.ToLowerInvariant().Contains("LAV Splitter".ToLowerInvariant()) ||
+ FSInfos.Filter.ToUpperInvariant().Contains(@"\BDMV\INDEX.BDMV")))
{
- FSInfos.Current = true;
- pStrm.Enable(FSInfos.Id, 0);
- pStrm.Enable(FSInfos.Id, AMStreamSelectEnableFlags.Enable);
- }
- }
- else
- {
- if (FStreams.GetStreamCount(FSInfos.Type) == 0)
- {
- FSInfos.Current = true;
- pStrm.Enable(FSInfos.Id, 0);
- pStrm.Enable(FSInfos.Id, AMStreamSelectEnableFlags.Enable);
- }
- }
- goto default;
- default:
- FStreams.AddStreamInfos(FSInfos);
- break;
- }
- }
- }
- DirectShowUtil.ReleaseComObject(foundfilter[0]);
- }
- }
- DirectShowUtil.ReleaseComObject(enumFilters);
+ if (FSInfos.sFlag == AMStreamSelectInfoFlags.Enabled ||
+ FSInfos.sFlag == (AMStreamSelectInfoFlags.Enabled | AMStreamSelectInfoFlags.Exclusive))
+ {
+ FSInfos.Current = true;
+ pStrm.Enable(FSInfos.Id, 0);
+ pStrm.Enable(FSInfos.Id, AMStreamSelectEnableFlags.Enable);
+ }
+ goto default;
+ }
+ break;
+ case StreamType.Video:
+ case StreamType.Audio:
+ case StreamType.Edition:
+ case StreamType.PostProcessing:
+ if (FSInfos.Type == StreamType.Audio && FSInfos.Filter == MEDIAPORTAL_AUDIOSWITCHER_FILTER && FSInfos.Name == "Audio " && !AutoRenderingCheck && GetInterface)
+ {
+ FStreams.AddStreamInfosEx(FSInfos);
+ break;
+ }
+ if (streamLAVSelection)
+ {
+ if (FSInfos.sFlag == AMStreamSelectInfoFlags.Enabled || FSInfos.sFlag == (AMStreamSelectInfoFlags.Enabled | AMStreamSelectInfoFlags.Exclusive))
+ {
+ FSInfos.Current = true;
+ pStrm.Enable(FSInfos.Id, 0);
+ pStrm.Enable(FSInfos.Id, AMStreamSelectEnableFlags.Enable);
+ }
+ }
+ else
+ {
+ if (FStreams.GetStreamCount(FSInfos.Type) == 0)
+ {
+ FSInfos.Current = true;
+ pStrm.Enable(FSInfos.Id, 0);
+ pStrm.Enable(FSInfos.Id, AMStreamSelectEnableFlags.Enable);
+ }
+ }
+ goto default;
+ default:
+ FStreams.AddStreamInfos(FSInfos);
+ break;
+ }
+ }
+ }
+ DirectShowUtil.ReleaseComObject(foundfilter[0]);
+ }
+ }
+
+ if (FStreams.GetStreamCount(StreamType.Video) > 0 || FStreams.GetStreamCount(StreamType.Audio) > 0 || sourceFilters != null)
+ break;
+
+ //Try another pass where the filter is source type and has only one stream (individual video/audio sources)
+ sourceFilters = (string[])FilterHelper.GetFilterSource().ToArray(typeof(string));
+ }
+ DirectShowUtil.ReleaseComObject(enumFilters);
}
if (streamLAVSelection)
{
@@ -2282,10 +2329,10 @@ public bool AnalyseStreams()
// Set LAV Splitter stream
CurrentSubtitleStream = CurrentSubtitleLAVStream;
EnableSubtitle = CurrentSubtitleLAVStream != -1;
- }
- }
- catch { }
- return true;
+ }
+ }
+ catch { }
+ return true;
}
public bool EnableStream(int Id, AMStreamSelectEnableFlags dwFlags, string Filter)
diff --git a/mediaportal/Core/packages.config b/mediaportal/Core/packages.config
index a0d45596e2d..1105543d757 100644
--- a/mediaportal/Core/packages.config
+++ b/mediaportal/Core/packages.config
@@ -15,7 +15,7 @@
-
+
diff --git a/mediaportal/MediaPortal.Application/App.config b/mediaportal/MediaPortal.Application/App.config
index 4c438c3080b..b172ece562d 100644
--- a/mediaportal/MediaPortal.Application/App.config
+++ b/mediaportal/MediaPortal.Application/App.config
@@ -35,7 +35,7 @@
-
+
diff --git a/mediaportal/MediaPortal.Application/PostBuild.bat b/mediaportal/MediaPortal.Application/PostBuild.bat
index 0731cf76c5e..49c375b8846 100644
--- a/mediaportal/MediaPortal.Application/PostBuild.bat
+++ b/mediaportal/MediaPortal.Application/PostBuild.bat
@@ -185,9 +185,9 @@ xcopy %1\MPE\MpeMaker\bin\%2\MpeMaker.* . /Y /D
REM Nuget
xcopy %1\Databases\bin\%2\HtmlAgilityPack.* . /Y /D
if /I "%3" EQU "x64" (
- xcopy %1\..\Packages\Sqlite.3.41.2.5\sqlite\x64\sqlite.dll . /Y /D
+ xcopy %1\..\Packages\Sqlite.3.47.0\sqlite\x64\sqlite.dll . /Y /D
) ELSE (
- xcopy %1\..\Packages\Sqlite.3.41.2.5\sqlite\x86\sqlite.dll . /Y /D
+ xcopy %1\..\Packages\Sqlite.3.47.0\sqlite\x86\sqlite.dll . /Y /D
)
REM MediaInfo -
diff --git a/mediaportal/MediaPortal.Base/MediaPortalDirs.xml b/mediaportal/MediaPortal.Base/MediaPortalDirs.xml
index 3930678fd06..e470f42df15 100644
--- a/mediaportal/MediaPortal.Base/MediaPortalDirs.xml
+++ b/mediaportal/MediaPortal.Base/MediaPortalDirs.xml
@@ -1,4 +1,4 @@
-
+
-
-
- 87272
- 2
- no
- #currentmodule:#Trakt.Translation.AccountSetup.Label
- #selecteditem:#highlightedbutton
- #defaultcontrol:2
- #defaultcontrol.onleft:9997
-
-
- BG
- image
- 1
- BH Trakt.jpg
- 1920
- 1080
- 90ffffff
-
- Trakt.Common.Fanart.xml
- common.window.xml
- common.time.xml
- Trakt.Common.xml
-
- group
- group element
- 525
- 241
- 559
- 568
- StackLayout(Vertical)
- !string.equals(#Trakt.Settings.Account.Dialog.Visible,true)
-
- button
- Create New Account
- 2
- 600
-
- 17
- 799
- #defaultcontrol.onleft
-
-
- Login to Existing Account
- button
- 3
- 799
-
- #defaultcontrol.onleft
-
-
- Disconnect Current Account
- button
- 4
- 799
-
- #defaultcontrol.onleft
- 2
-
-
- Trakt.AccountDialog.xml
-
-
\ No newline at end of file
+
+
+
+
+ 87279
+ 2
+ no
+ #currentmodule:#Trakt.Translation.AccountSetup.Label
+ #selecteditem:#highlightedbutton
+ #defaultcontrol:2
+ #defaultcontrol.onleft:9997
+
+
+ BG
+ image
+ 1
+ BH Trakt.jpg
+ 1920
+ 1080
+ 90ffffff
+
+ Trakt.Common.Fanart.xml
+ common.window.xml
+ common.time.xml
+ Trakt.Common.xml
+
+ group
+ group element
+ 525
+ 241
+ 559
+ 568
+ StackLayout(Vertical)
+ !string.equals(#Trakt.Settings.Account.Dialog.Visible,true)
+
+ button
+ Create New Account
+ 2
+ 600
+
+ 17
+ 799
+ #defaultcontrol.onleft
+
+
+ Login to Existing Account
+ button
+ 3
+ 799
+
+ #defaultcontrol.onleft
+
+
+ Disconnect Current Account
+ button
+ 4
+ 799
+
+ #defaultcontrol.onleft
+ 2
+
+
+ Trakt.AccountDialog.xml
+
+
diff --git a/mediaportal/MediaPortal.Base/skin/DefaultWideHD/Trakt.Settings.AccountAuth.xml b/mediaportal/MediaPortal.Base/skin/DefaultWideHD/Trakt.Settings.AccountAuth.xml
new file mode 100644
index 00000000000..3137633fd66
--- /dev/null
+++ b/mediaportal/MediaPortal.Base/skin/DefaultWideHD/Trakt.Settings.AccountAuth.xml
@@ -0,0 +1,87 @@
+
+
+ 87279
+ 2
+ no
+ #currentmodule:#Trakt.Translation.AccountSetup.Label
+ #selecteditem:#highlightedbutton
+ #defaultcontrol:2
+ #defaultcontrol.onleft:9997
+
+
+ BG
+ image
+ 1
+ BH Trakt.jpg
+ 1920
+ 1080
+ 90ffffff
+
+ Trakt.Common.Fanart.xml
+ common.window.xml
+ common.time.xml
+ Trakt.Common.xml
+
+ buttons
+ group
+ 655
+ 321
+ StackLayout(7, Vertical, true)
+
+ button
+ Create New Account
+ 2
+
+ 800
+ #defaultcontrol.onleft
+
+
+
+ textbox
+ Scan QR or enter in URL
+ 0
+ 675
+ 395
+ 975
+ 200
+
+ RSS
+ string.equals(#Trakt.Settings.Account.Authorise,true)
+
+
+ QR URL Image
+ image
+ 1
+ 675
+ 475
+ 330
+ 330
+ QRActivateUrl.png
+ string.equals(#Trakt.Settings.Account.Authorise,true)
+
+
+ label
+ User Code
+ 0
+ 675
+ 820
+ 892
+
+ font20
+ 00b7ff
+ string.equals(#Trakt.Settings.Account.Authorise,true)
+
+
+ textbox
+ Application Wait
+ 0
+ 675
+ 890
+ 975
+ 200
+
+ RSS
+ string.equals(#Trakt.Settings.Account.Authorise,true)
+
+
+
diff --git a/mediaportal/MediaPortal.Base/skin/DefaultWideHD/Trakt.Settings.xml b/mediaportal/MediaPortal.Base/skin/DefaultWideHD/Trakt.Settings.xml
index 61b115638c3..c3c6fccd049 100644
--- a/mediaportal/MediaPortal.Base/skin/DefaultWideHD/Trakt.Settings.xml
+++ b/mediaportal/MediaPortal.Base/skin/DefaultWideHD/Trakt.Settings.xml
@@ -1,76 +1,76 @@
-
-
-
-
- 87271
- 2
- no
- yes
- #currentmodule:#Trakt.Translation.Settings.Label
- #selecteditem:#highlightedbutton
- #defaultcontrol:2
- #defaultcontrol.onleft:9997
-
-
- BG
- image
- 1
- BH Trakt.jpg
- 1920
- 1080
- 90ffffff
-
- Trakt.Common.Fanart.xml
- common.window.xml
- common.time.xml
- Trakt.Common.xml
-
- group
- group element
- 525
- 241
- 559
- 568
- StackLayout(Vertical)
-
- button
- Account Setup
- 2
- 17
- 559
-
- 87272
- #defaultcontrol.onleft
-
-
- button
- Plugin Setup
- 3
- 559
-
- 87273
- #defaultcontrol.onleft
-
-
- button
- General Settings
- 4
- 559
-
- 87274
- #defaultcontrol.onleft
- 1000
-
-
- button
- MPEICONFIGURE:a9c3845a_8718_4712_85cc_26f56520bb9a
- 1000
- 559
-
- #defaultcontrol.onleft
- 2
- string.equals(#mpei.a9c3845a_8718_4712_85cc_26f56520bb9a.isinstalled, true)
-
-
-
-
\ No newline at end of file
+
+
+
+
+ 87271
+ 2
+ no
+ yes
+ #currentmodule:#Trakt.Translation.Settings.Label
+ #selecteditem:#highlightedbutton
+ #defaultcontrol:2
+ #defaultcontrol.onleft:9997
+
+
+ BG
+ image
+ 1
+ BH Trakt.jpg
+ 1920
+ 1080
+ 90ffffff
+
+ Trakt.Common.Fanart.xml
+ common.window.xml
+ common.time.xml
+ Trakt.Common.xml
+
+ group
+ group element
+ 525
+ 241
+ 559
+ 568
+ StackLayout(Vertical)
+
+ button
+ Account Setup
+ 2
+ 17
+ 559
+
+ 87279
+ #defaultcontrol.onleft
+
+
+ button
+ Plugin Setup
+ 3
+ 559
+
+ 87273
+ #defaultcontrol.onleft
+
+
+ button
+ General Settings
+ 4
+ 559
+
+ 87274
+ #defaultcontrol.onleft
+ 1000
+
+
+ button
+ MPEICONFIGURE:a9c3845a_8718_4712_85cc_26f56520bb9a
+ 1000
+ 559
+
+ #defaultcontrol.onleft
+ 2
+ string.equals(#mpei.a9c3845a_8718_4712_85cc_26f56520bb9a.isinstalled, true)
+
+
+
+
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/BasicHome.Buttons/P3.L12.Infoservice.xml b/mediaportal/MediaPortal.Base/skin/Titan/BasicHome.Buttons/P3.L12.Infoservice.xml
index dbca8e64de0..4c1de31666e 100644
--- a/mediaportal/MediaPortal.Base/skin/Titan/BasicHome.Buttons/P3.L12.Infoservice.xml
+++ b/mediaportal/MediaPortal.Base/skin/Titan/BasicHome.Buttons/P3.L12.Infoservice.xml
@@ -9,6 +9,7 @@
#L12left
#L12top
basichome_button_infoservice.png
+ conditional
control.IsVisible(10301)
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/BasicHome.Buttons/P3.L22.MyEmulator.xml b/mediaportal/MediaPortal.Base/skin/Titan/BasicHome.Buttons/P3.L22.MyEmulator.xml
index 97c2f0ff24f..49b6e11e887 100644
--- a/mediaportal/MediaPortal.Base/skin/Titan/BasicHome.Buttons/P3.L22.MyEmulator.xml
+++ b/mediaportal/MediaPortal.Base/skin/Titan/BasicHome.Buttons/P3.L22.MyEmulator.xml
@@ -1,32 +1,32 @@
-
-
-
-
-
- BasicHome MyEmulator NoFocus
- image
- 0
- #L22left
- #L22top
- basichome_button_myemulator.png
- conditional
- control.IsVisible(10301)
-
-
-
- BasicHome MyEmulator
- button
- 550
- #L22lefttext
- #L22toptext
- #textYoff
-
- 7942
- 750
- 350
- 450
- 312
- ![control.isvisible(90309)|control.hasfocus(99999)]+Control.IsVisible(10301)
-
-
+
+
+
+
+
+ BasicHome MyEmulator NoFocus
+ image
+ 0
+ #L22left
+ #L22top
+ basichome_button_myemulator.png
+ conditional
+ control.IsVisible(10301)+!Control.IsVisible(30093)
+
+
+
+ BasicHome MyEmulator
+ button
+ 550
+ #L22lefttext
+ #L22toptext
+ #textYoff
+
+ 7942
+ 750
+ 350
+ 450
+ 312
+ ![control.isvisible(90309)|control.hasfocus(99999)|Control.IsVisible(30093)]+Control.IsVisible(10301)
+
+
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/BasicHome.Buttons/P3.L23.MPSteam.xml b/mediaportal/MediaPortal.Base/skin/Titan/BasicHome.Buttons/P3.L23.MPSteam.xml
index 5bf336a707a..46a5691ebaa 100644
--- a/mediaportal/MediaPortal.Base/skin/Titan/BasicHome.Buttons/P3.L23.MPSteam.xml
+++ b/mediaportal/MediaPortal.Base/skin/Titan/BasicHome.Buttons/P3.L23.MPSteam.xml
@@ -1,32 +1,32 @@
-
-
-
-
-
- BasicHome MPSteam Focus
- image
- 0
- #L23left
- #L23top
- basichome_button_MPSteam.png
- conditional
- control.IsVisible(10301)
-
-
-
- BasicHome MPSteam
- button
- 750
- #L23lefttext
- #L23toptext
- #textYoff
- 8465
-
- #P3L23ToRight
- 550
- 650
- 312
- ![control.isvisible(90309)|control.hasfocus(99999)]+Control.IsVisible(10301)
-
-
+
+
+
+
+
+ BasicHome MPSteam Focus
+ image
+ 0
+ #L23left
+ #L23top
+ basichome_button_MPSteam.png
+ conditional
+ control.IsVisible(10301)+!Control.IsVisible(30093)
+
+
+
+ BasicHome MPSteam
+ button
+ 750
+ #L23lefttext
+ #L23toptext
+ #textYoff
+ 8465
+
+ #P3L23ToRight
+ 550
+ 650
+ 312
+ ![control.isvisible(90309)|control.hasfocus(99999)|Control.IsVisible(30093)]+Control.IsVisible(10301)
+
+
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/Media/basichome_button_focus.png b/mediaportal/MediaPortal.Base/skin/Titan/Media/basichome_button_focus.png
index 5b477e00a6e..5cf8ab046e9 100644
Binary files a/mediaportal/MediaPortal.Base/skin/Titan/Media/basichome_button_focus.png and b/mediaportal/MediaPortal.Base/skin/Titan/Media/basichome_button_focus.png differ
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/Themes/blue background/Media/basichome_button_focus.png b/mediaportal/MediaPortal.Base/skin/Titan/Themes/blue background/Media/basichome_button_focus.png
index c9e921f1706..d04249aefa0 100644
Binary files a/mediaportal/MediaPortal.Base/skin/Titan/Themes/blue background/Media/basichome_button_focus.png and b/mediaportal/MediaPortal.Base/skin/Titan/Themes/blue background/Media/basichome_button_focus.png differ
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/Themes/blue background/Media/preview.png b/mediaportal/MediaPortal.Base/skin/Titan/Themes/blue background/Media/preview.png
index d502828748d..ddcd2e83e7f 100644
Binary files a/mediaportal/MediaPortal.Base/skin/Titan/Themes/blue background/Media/preview.png and b/mediaportal/MediaPortal.Base/skin/Titan/Themes/blue background/Media/preview.png differ
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.extensions.dummy.xml b/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.extensions.dummy.xml
deleted file mode 100644
index a7385228cc2..00000000000
--- a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.extensions.dummy.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
- BasicHome DUMMY Focus
- image
- 0
- 1264
- 607
- 624
- 271
- basichome_button_dummy.png
- conditional
- visible
- visible
- conditional
- WindowOpen
- WindowClose
- control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)
-
-
- BasicHome DUMMY
- button
- 300
- 1274
- 613
- 594
- 241
- -
- -
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 600
- 700
- 200
- 12
- conditional
- visible
- visible
- focus
- unfocus
- WindowOpen
- WindowClose
- [control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.extensions.xml b/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.extensions.xml
deleted file mode 100644
index be7d501ba80..00000000000
--- a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.extensions.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
- BasicHome Extensions Focus
- image
- 0
- 1264
- 607
- 624
- 271
- basichome_button_extensions.png
- conditional
- visible
- visible
- conditional
- WindowOpen
- WindowClose
- control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)
-
-
- BasicHome Extensions
- button
- 300
- 1274
- 613
- 594
- 241
- basichome_menu_item_label_overlay.png
- basichome_menu_item_label_overlay.png
- 801
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 600
- 700
- 200
- 12
- conditional
- visible
- visible
- focus
- unfocus
- WindowOpen
- WindowClose
- [control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.infoservice.dummy.xml b/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.infoservice.dummy.xml
deleted file mode 100644
index a3f59ed4316..00000000000
--- a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.infoservice.dummy.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
- BasicHome DUMMY Focus
- image
- 0
- 653
- 347
- 624
- 271
- basichome_button_dummy.png
- conditional
- visible
- visible
- conditional
- WindowOpen
- WindowClose
- control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)
-
-
- BasicHome DUMMY
- button
- 500
- 663
- 353
- 594
- 241
- -
- -
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 200
- 400
- 500
- 700
- conditional
- visible
- visible
- focus
- unfocus
- WindowOpen
- WindowClose
- [control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.infoservice.xml b/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.infoservice.xml
deleted file mode 100644
index b229bb4c8d2..00000000000
--- a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.infoservice.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
- BasicHome Infoservice Focus
- image
- 0
- 653
- 347
- 624
- 271
- basichome_button_infoservice.png
- conditional
- visible
- visible
- conditional
- WindowOpen
- WindowClose
- control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)
-
-
- BasicHome Infoservice
- button
- 500
- 663
- 353
- 594
- 241
- basichome_menu_item_label_overlay.png
- basichome_menu_item_label_overlay.png
- 16000
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 200
- 400
- 500
- 700
- conditional
- visible
- visible
- focus
- unfocus
- WindowOpen
- WindowClose
- [control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.movingpictures.xml b/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.movingpictures.xml
deleted file mode 100644
index ccb0e6b5a01..00000000000
--- a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.movingpictures.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
- BasicHome Movingictures
- button
- 6
- 1274
- 353
- 594
- 241
- basichome_menu_item_label_overlay.png
- basichome_menu_item_label_overlay.png
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 400
- 4
- 6
- 7
- #(skin.setfocus(35,1100))
- visiblechange
- focus
- unfocus
- WindowOpen
- WindowClose
- ![control.hasfocus(12)|control.hasfocus(13)|control.hasfocus(14)|control.hasfocus(99999)|control.hasfocus(1000)|control.hasfocus(1001)|control.hasfocus(1002)|control.hasfocus(1003)|control.hasfocus(1004)|control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
- submenu indicator
- 0
- image
- 1818
- 557
- 22
- 20
- basichome_submenu_indicator.png
- ![Control.IsVisible(100)|Control.IsVisible(2000)|Control.IsVisible(3000)|control.hasfocus(1000)|control.hasfocus(1001)|control.hasfocus(1002)|control.hasfocus(1003)|control.hasfocus(1004)|control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
- conditional
- WindowOpen
- WindowClose
-
-
-
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.myfilms.xml b/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.myfilms.xml
deleted file mode 100644
index 1a2aa68ee5c..00000000000
--- a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.myfilms.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
- BasicHome Videos
- button
- 6
- 1274
- 353
- 594
- 241
- basichome_menu_item_label_overlay.png
- basichome_menu_item_label_overlay.png
- 7986
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 400
- 4
- 6
- 7
- visiblechange
- focus
- unfocus
- WindowOpen
- WindowClose
- ![control.hasfocus(12)|control.hasfocus(13)|control.hasfocus(14)|control.hasfocus(99999)|control.hasfocus(1000)|control.hasfocus(1001)|control.hasfocus(1002)|control.hasfocus(1003)|control.hasfocus(1004)|control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.myvideo.xml b/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.myvideo.xml
deleted file mode 100644
index 029c6e80261..00000000000
--- a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.myvideo.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
- BasicHome Videos
- button
- 6
- 1274
- 353
- 594
- 241
- basichome_menu_item_label_overlay.png
- basichome_menu_item_label_overlay.png
- 6
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 400
- 4
- 6
- 7
- visiblechange
- focus
- unfocus
- WindowOpen
- WindowClose
- ![control.hasfocus(12)|control.hasfocus(13)|control.hasfocus(14)|control.hasfocus(99999)|control.hasfocus(1000)|control.hasfocus(1001)|control.hasfocus(1002)|control.hasfocus(1003)|control.hasfocus(1004)|control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.onlinevideos.dummy.xml b/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.onlinevideos.dummy.xml
deleted file mode 100644
index 085e810ac46..00000000000
--- a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.onlinevideos.dummy.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
- BasicHome DUMMY Focus
- image
- 0
- 1264
- 347
- 624
- 271
- basichome_button_dummy.png
- conditional
- visible
- visible
- conditional
- WindowOpen
- WindowClose
- [control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
- BasicHome DUMMY
- button
- 200
- 1274
- 353
- 594
- 241
- -
- -
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 200
- 400
- 500
- 300
- conditional
- visible
- visible
- focus
- unfocus
- WindowOpen
- WindowClose
- [control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.onlinevideos.xml b/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.onlinevideos.xml
deleted file mode 100644
index ba2aec146d4..00000000000
--- a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.onlinevideos.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
- BasicHome Onlinevideos Focus
- image
- 0
- 1264
- 347
- 624
- 271
- basichome_button_onlinevideos.png
- conditional
- visible
- visible
- conditional
- WindowOpen
- WindowClose
- [control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
- BasicHome Onlinevideos
- button
- 200
- 1274
- 353
- 594
- 241
- basichome_menu_item_label_overlay.png
- basichome_menu_item_label_overlay.png
- 4755
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 200
- 400
- 500
- 300
- conditional
- visible
- visible
- focus
- unfocus
- WindowOpen
- WindowClose
- [control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.plugins.xml b/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.plugins.xml
deleted file mode 100644
index c90b455fb74..00000000000
--- a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.plugins.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-
-
- BasicHome Plugins Focus
- image
- 0
- 1264
- 607
- 623
- 271
- basichome_button_plugins.png
- conditional
- visiblechange
- WindowOpen
- WindowClose
- ![control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
- BasicHome Plugins
- button
- 7
- 1274
- 613
- 594
- 241
- basichome_menu_item_label_overlay.png
- basichome_menu_item_label_overlay.png
- 34
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 600
- 5
- 12
- 6
- 12
- visiblechange
- focus
- unfocus
- WindowOpen
- WindowClose
- ![control.hasfocus(12)|control.hasfocus(13)|control.hasfocus(14)|control.hasfocus(99999)|control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
-
-
- BasicHome Plugins NoFocus
- image
- 0
- 42
- 607
- 623
- 271
- basichome_button_dummy.png
- conditional
- visible
- visible
- conditional
- WindowOpen
- WindowClose
- control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)
-
-
- BasicHome Plugins
- button
- 600
- 52
- 613
- 594
- 241
- -
- -
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 700
- 7
- 12
- 400
- visible
- visible
- focus
- unfocus
- WindowOpen
- WindowClose
- [control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.trakt.dummy.xml b/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.trakt.dummy.xml
deleted file mode 100644
index 9a97abff135..00000000000
--- a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.trakt.dummy.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
- BasicHome DUMMY Focus
- image
- 0
- 653
- 607
- 624
- 271
- basichome_button_dummy.png
- conditional
- visible
- visible
- conditional
- WindowOpen
- WindowClose
- control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)
-
-
- BasicHome DUMMY
- button
- 700
- 663
- 613
- 594
- 241
- -
- -
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 300
- 600
- 500
- 12
- conditional
- visible
- visible
- focus
- unfocus
- WindowOpen
- WindowClose
- [control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.trakt.xml b/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.trakt.xml
deleted file mode 100644
index 9ea7a43ee2d..00000000000
--- a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.trakt.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
- BasicHome Trakt Focus
- image
- 0
- 653
- 607
- 624
- 271
- basichome_button_trakt.png
- conditional
- visible
- visible
- conditional
- WindowOpen
- WindowClose
- control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)
-
-
- BasicHome Trakt
- button
- 700
- 663
- 613
- 594
- 241
- basichome_menu_item_label_overlay.png
- basichome_menu_item_label_overlay.png
- 87258
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 300
- 600
- 500
- 12
- conditional
- visible
- visible
- focus
- unfocus
- WindowOpen
- WindowClose
- [control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.tvseries.xml b/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.tvseries.xml
deleted file mode 100644
index 8e061e1f680..00000000000
--- a/mediaportal/MediaPortal.Base/skin/Titan/include.BasicHomeButton.tvseries.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-
-
- BasicHome TVSeries Focus
- image
- 0
- 1264
- 607
- 623
- 271
- basichome_button_series.png
- conditional
- visiblechange
- WindowOpen
- WindowClose
- ![control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
- BasicHome TVSeries
- button
- 7
- 1274
- 613
- 593
- 241
- basichome_menu_item_label_overlay.png
- basichome_menu_item_label_overlay.png
- 9811
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 600
- 5
- 12
- 6
- visiblechange
- focus
- unfocus
- WindowOpen
- WindowClose
- ![control.hasfocus(12)|control.hasfocus(13)|control.hasfocus(14)|control.hasfocus(99999)|control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
-
-
- BasicHome Plugins NoFocus
- image
- 0
- 43
- 607
- 623
- 271
- basichome_button_plugins.png
- conditional
- visible
- visible
- conditional
- WindowOpen
- WindowClose
- control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)
-
-
- BasicHome Plugins
- button
- 600
- 53
- 613
- 593
- 241
- basichome_menu_item_label_overlay.png
- basichome_menu_item_label_overlay.png
- 34
-
- TitanLight20
- FFFFFF
- center
- FFFFFFFF
- 176
- 700
- 7
- 12
- 400
- visible
- visible
- focus
- unfocus
- WindowOpen
- WindowClose
- [control.HasFocus(200) | control.HasFocus(300) | control.HasFocus(400) | control.HasFocus(500) | control.HasFocus(600) | control.HasFocus(700)]
-
-
-
\ No newline at end of file
diff --git a/mediaportal/MediaPortal.Base/weather/Sample-Data.xml b/mediaportal/MediaPortal.Base/weather/Sample-Data.xml
index 13a1fbf704c..48ef294d9a3 100644
--- a/mediaportal/MediaPortal.Base/weather/Sample-Data.xml
+++ b/mediaportal/MediaPortal.Base/weather/Sample-Data.xml
@@ -1,4 +1,4 @@
-
+
@@ -211,4 +211,4 @@
-
\ No newline at end of file
+
diff --git a/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/DeviceManagement.cs b/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/DeviceManagement.cs
index 21efd6db41b..5732403a243 100644
--- a/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/DeviceManagement.cs
+++ b/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/DeviceManagement.cs
@@ -151,9 +151,8 @@ internal static bool FindDeviceFromGuid(Guid myGuid, ref string[] devicePathName
// no more devices are available.
// The cbSize element of the MyDeviceInterfaceData structure must be set to
- // the structure's size in bytes. The size is 28 bytes.
- MyDeviceInterfaceData.cbSize = 28;
- //Marshal.SizeOf(MyDeviceInterfaceData);
+ // the structure's size in bytes.
+ MyDeviceInterfaceData.cbSize = Marshal.SizeOf(MyDeviceInterfaceData);
// ***
// API function:
@@ -184,7 +183,11 @@ internal static bool FindDeviceFromGuid(Guid myGuid, ref string[] devicePathName
if (Result == 0)
{
- LastDevice = true;
+ int iLastError = Marshal.GetLastWin32Error();
+ if (iLastError == DeviceManagementApiDeclarations.ERROR_NO_MORE_ITEMS)
+ LastDevice = true;
+ else
+ throw new System.ComponentModel.Win32Exception(iLastError);
}
else
{
@@ -234,7 +237,7 @@ internal static bool FindDeviceFromGuid(Guid myGuid, ref string[] devicePathName
IntPtr DetailDataBuffer = Marshal.AllocHGlobal(BufferSize);
// Store cbSize in the first 4 bytes of the array
- Marshal.WriteInt32(DetailDataBuffer, 4 + Marshal.SystemDefaultCharSize);
+ Marshal.WriteInt32(DetailDataBuffer, IntPtr.Size == 4 ? 4 + Marshal.SystemDefaultCharSize : 8);
Debug.WriteLine("cbsize = " + MyDeviceInterfaceDetailData.cbSize);
// Call SetupDiGetDeviceInterfaceDetail again.
diff --git a/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/DeviceManagementDeclarations.cs b/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/DeviceManagementDeclarations.cs
index c2499d133f9..f7eaf82d998 100644
--- a/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/DeviceManagementDeclarations.cs
+++ b/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/DeviceManagementDeclarations.cs
@@ -46,6 +46,8 @@ internal sealed class DeviceManagementApiDeclarations
public const short DIGCF_PRESENT = 0x00000002;
public const short DIGCF_DEVICEINTERFACE = 0x00000010;
+ public const int ERROR_NO_MORE_ITEMS = 259;
+
// ******************************************************************************
// Structures and classes for API calls, listed alphabetically
// ******************************************************************************
@@ -59,31 +61,31 @@ internal sealed class DeviceManagementApiDeclarations
// API functions, listed alphabetically
// ******************************************************************************
- [DllImport("user32.dll", CharSet = CharSet.Auto)]
+ [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern IntPtr RegisterDeviceNotification(IntPtr hRecipient, IntPtr NotificationFilter, int Flags);
- [DllImport("setupapi.dll")]
+ [DllImport("setupapi.dll", SetLastError = true)]
public static extern int SetupDiCreateDeviceInfoList(ref Guid ClassGuid, int hwndParent);
- [DllImport("setupapi.dll")]
+ [DllImport("setupapi.dll", SetLastError = true)]
public static extern int SetupDiDestroyDeviceInfoList(IntPtr DeviceInfoSet);
- [DllImport("setupapi.dll")]
+ [DllImport("setupapi.dll", SetLastError = true)]
public static extern int SetupDiEnumDeviceInterfaces(IntPtr DeviceInfoSet, int DeviceInfoData,
ref Guid InterfaceClassGuid, int MemberIndex,
ref SP_DEVICE_INTERFACE_DATA DeviceInterfaceData);
- [DllImport("setupapi.dll", CharSet = CharSet.Auto)]
+ [DllImport("setupapi.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern IntPtr SetupDiGetClassDevs(ref Guid ClassGuid, string Enumerator, int hwndParent, int Flags);
- [DllImport("setupapi.dll", CharSet = CharSet.Auto)]
+ [DllImport("setupapi.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool SetupDiGetDeviceInterfaceDetail(IntPtr DeviceInfoSet,
ref SP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
IntPtr DeviceInterfaceDetailData,
int DeviceInterfaceDetailDataSize, ref int RequiredSize,
IntPtr DeviceInfoData);
- [DllImport("user32.dll")]
+ [DllImport("user32.dll", SetLastError = true)]
public static extern bool UnregisterDeviceNotification(IntPtr Handle);
[StructLayout(LayoutKind.Sequential)]
@@ -110,10 +112,11 @@ public class DEV_BROADCAST_DEVICEINTERFACE_1
public int dbcc_devicetype;
public int dbcc_reserved;
- [MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.U1, SizeConst = 16)] public byte[]
- dbcc_classguid;
+ [MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.U1, SizeConst = 16)]
+ public byte[] dbcc_classguid;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 255)] public char[] dbcc_name;
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 255)]
+ public char[] dbcc_name;
#endregion
}
@@ -126,9 +129,12 @@ public class DEV_BROADCAST_HANDLE
public int dbch_size;
public int dbch_devicetype;
public int dbch_reserved;
- public int dbch_handle;
- public int dbch_hdevnotify;
-
+ public IntPtr dbch_handle;
+ public IntPtr dbch_hdevnotify;
+ public Guid dbch_eventguid;
+ public int dbch_nameoffset;
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1, ArraySubType = UnmanagedType.I1)]
+ public byte[] dbch_data;
#endregion
}
@@ -152,7 +158,7 @@ public struct SP_DEVICE_INTERFACE_DATA
public int cbSize;
public Guid InterfaceClassGuid;
public int Flags;
- public int Reserved;
+ public IntPtr Reserved;
#endregion
}
@@ -176,7 +182,7 @@ public struct SP_DEVINFO_DATA
public int cbSize;
public Guid ClassGuid;
public int DevInst;
- public int Reserved;
+ public IntPtr Reserved;
#endregion
}
diff --git a/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/FileIODeclarations.cs b/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/FileIODeclarations.cs
index d162ee4c861..6a3c37cfbee 100644
--- a/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/FileIODeclarations.cs
+++ b/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/FileIODeclarations.cs
@@ -18,6 +18,7 @@
#endregion
+using System;
using System.Runtime.InteropServices;
namespace MediaPortal.ProcessPlugins.MiniDisplayPlugin.VFD_Control
@@ -35,7 +36,7 @@ internal class FileIOApiDeclarations
public const uint FILE_SHARE_READ = 0x00000001;
public const uint FILE_SHARE_WRITE = 0x00000002;
public const uint FILE_FLAG_OVERLAPPED = 0x40000000;
- public const int INVALID_HANDLE_VALUE = -1;
+ public static readonly IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1);
public const short OPEN_EXISTING = 3;
public const int WAIT_TIMEOUT = 0x102;
public const short WAIT_OBJECT_0 = 0;
@@ -48,56 +49,60 @@ internal class FileIOApiDeclarations
// API functions, listed alphabetically
// ******************************************************************************
- [DllImport("kernel32.dll")]
- public static extern int CancelIo(int hFile);
+ [DllImport("kernel32.dll", SetLastError = true)]
+ public static extern int CancelIo(IntPtr hFile);
- [DllImport("kernel32.dll")]
- public static extern int CloseHandle(int hObject);
+ [DllImport("kernel32.dll", SetLastError = true)]
+ public static extern int CloseHandle(IntPtr hObject);
- [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
- public static extern int CreateEvent(ref SECURITY_ATTRIBUTES SecurityAttributes, int bManualReset, int bInitialState,
+ [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
+ public static extern IntPtr CreateEvent(ref SECURITY_ATTRIBUTES SecurityAttributes, int bManualReset, int bInitialState,
string lpName);
- [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
- public static extern int
+ [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
+ public static extern IntPtr
CreateFile(string lpFileName, uint dwDesiredAccess, uint dwShareMode, ref SECURITY_ATTRIBUTES lpSecurityAttributes,
- int dwCreationDisposition, uint dwFlagsAndAttributes, int hTemplateFile);
+ int dwCreationDisposition, uint dwFlagsAndAttributes, IntPtr hTemplateFile);
- [DllImport("kernel32.dll")]
- public static extern int ReadFile(int hFile, ref byte lpBuffer, int nNumberOfBytesToRead,
+ [DllImport("kernel32.dll", SetLastError = true)]
+ public static extern int ReadFile(IntPtr hFile, ref byte lpBuffer, int nNumberOfBytesToRead,
ref int lpNumberOfBytesRead, ref OVERLAPPED lpOverlapped);
- [DllImport("kernel32.dll")]
- public static extern int WaitForSingleObject(int hHandle, int dwMilliseconds);
+ [DllImport("kernel32.dll", SetLastError = true)]
+ public static extern int WaitForSingleObject(IntPtr hHandle, int dwMilliseconds);
- [DllImport("kernel32.dll")]
- public static extern int WriteFile(int hFile, ref byte lpBuffer, int nNumberOfBytesToWrite,
+ [DllImport("kernel32.dll", SetLastError = true)]
+ public static extern int WriteFile(IntPtr hFile, ref byte lpBuffer, int nNumberOfBytesToWrite,
ref int lpNumberOfBytesWritten, int lpOverlapped);
- [StructLayout(LayoutKind.Sequential)]
+ [StructLayout(LayoutKind.Explicit, Size = 20)]
public struct OVERLAPPED
{
- #region Fields
+ [FieldOffset(0)]
+ public uint Internal;
+
+ [FieldOffset(4)]
+ public uint InternalHigh;
+
+ [FieldOffset(8)]
+ public uint Offset;
- public int Internal;
- public int InternalHigh;
- public int Offset;
- public int OffsetHigh;
- public int hEvent;
+ [FieldOffset(12)]
+ public uint OffsetHigh;
- #endregion
+ [FieldOffset(8)]
+ public IntPtr Pointer;
+
+ [FieldOffset(16)]
+ public IntPtr hEvent;
}
[StructLayout(LayoutKind.Sequential)]
public struct SECURITY_ATTRIBUTES
{
- #region Fields
-
public int nLength;
- public int lpSecurityDescriptor;
+ public IntPtr lpSecurityDescriptor;
public int bInheritHandle;
-
- #endregion
}
}
}
\ No newline at end of file
diff --git a/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/Hid.cs b/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/Hid.cs
index e663c7dfe83..880f8a8fd64 100644
--- a/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/Hid.cs
+++ b/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/Hid.cs
@@ -46,7 +46,7 @@ internal class Hid
///
/// a handle to a device.
/// True on success, False on failure.
- internal static bool FlushQueue(int hidHandle)
+ internal static bool FlushQueue(IntPtr hidHandle)
{
bool Result = false;
@@ -79,7 +79,7 @@ internal static bool FlushQueue(int hidHandle)
///
/// a handle to a device.
/// An HIDP_CAPS structure.
- internal HidApiDeclarations.HIDP_CAPS GetDeviceCapabilities(int hidHandle)
+ internal HidApiDeclarations.HIDP_CAPS GetDeviceCapabilities(IntPtr hidHandle)
{
byte[] PreparsedDataBytes = new byte[30];
IntPtr PreparsedDataPointer = new IntPtr();
@@ -172,7 +172,7 @@ internal HidApiDeclarations.HIDP_CAPS GetDeviceCapabilities(int hidHandle)
// Accepts: A pointer to the PreparsedData structure returned by HidD_GetPreparsedData.
// Returns: True on success, False on failure.
// ***
- HidApiDeclarations.HidD_FreePreparsedData(ref PreparsedDataPointer);
+ HidApiDeclarations.HidD_FreePreparsedData(PreparsedDataPointer);
if (Settings.Instance.ExtensiveLogging)
{
@@ -218,7 +218,7 @@ internal abstract class DeviceReport
// asynchronous reads use a callback method that can access parameters passed by ByRef
// but not Function return values.
- protected abstract void ProtectedRead(int readHandle, int hidHandle, ref bool myDeviceDetected,
+ protected abstract void ProtectedRead(IntPtr readHandle, IntPtr hidHandle, ref bool myDeviceDetected,
ref byte[] readBuffer, ref bool success);
///
@@ -234,7 +234,7 @@ protected abstract void ProtectedRead(int readHandle, int hidHandle, ref bool my
/// tells whether the device is currently attached and communicating.
/// a byte array to hold the report ID and report data.
/// read success
- internal void Read(int readHandle, int hidHandle, ref bool myDeviceDetected, ref byte[] readBuffer,
+ internal void Read(IntPtr readHandle, IntPtr hidHandle, ref bool myDeviceDetected, ref byte[] readBuffer,
ref bool success)
{
try
@@ -263,7 +263,7 @@ internal class InFeatureReport : DeviceReport
/// tells whether the device is currently attached.
/// contains the requested report.
/// read success
- protected override void ProtectedRead(int readHandle, int hidHandle, ref bool myDeviceDetected,
+ protected override void ProtectedRead(IntPtr readHandle, IntPtr hidHandle, ref bool myDeviceDetected,
ref byte[] inFeatureReportBuffer, ref bool success)
{
try
@@ -308,7 +308,7 @@ internal class InputReport : DeviceReport
///
/// the handle for reading from the device.
/// the handle for other device communications.
- internal void CancelTransfer(int readHandle, int hidHandle)
+ internal void CancelTransfer(IntPtr readHandle, IntPtr hidHandle)
{
try
{
@@ -329,7 +329,7 @@ internal void CancelTransfer(int readHandle, int hidHandle)
// so close any open handles and
// set myDeviceDetected=False to cause the application to
// look for the device on the next attempt.
- if (hidHandle != 0)
+ if (hidHandle != IntPtr.Zero)
{
FileIOApiDeclarations.CloseHandle(hidHandle);
if (Settings.Instance.ExtensiveLogging)
@@ -339,7 +339,7 @@ internal void CancelTransfer(int readHandle, int hidHandle)
}
}
- if (hidHandle != 0)
+ if (hidHandle != IntPtr.Zero)
{
FileIOApiDeclarations.CloseHandle(readHandle);
if (Settings.Instance.ExtensiveLogging)
@@ -361,14 +361,14 @@ internal void CancelTransfer(int readHandle, int hidHandle)
///
///
///
- internal void PrepareForOverlappedTransfer(ref FileIOApiDeclarations.OVERLAPPED hidOverlapped, ref int eventObject)
+ internal void PrepareForOverlappedTransfer(ref FileIOApiDeclarations.OVERLAPPED hidOverlapped, ref IntPtr eventObject)
{
FileIOApiDeclarations.SECURITY_ATTRIBUTES Security = new FileIOApiDeclarations.SECURITY_ATTRIBUTES();
try
{
// Values for the SECURITY_ATTRIBUTES structure:
- Security.lpSecurityDescriptor = 0;
+ Security.lpSecurityDescriptor = IntPtr.Zero;
Security.bInheritHandle = Convert.ToInt32(true);
Security.nLength = Marshal.SizeOf(Security);
@@ -411,10 +411,10 @@ internal void PrepareForOverlappedTransfer(ref FileIOApiDeclarations.OVERLAPPED
/// tells whether the device is currently attached.
/// contains the requested report.
/// read success
- protected override void ProtectedRead(int readHandle, int hidHandle, ref bool myDeviceDetected,
+ protected override void ProtectedRead(IntPtr readHandle, IntPtr hidHandle, ref bool myDeviceDetected,
ref byte[] inputReportBuffer, ref bool success)
{
- int EventObject = 0;
+ IntPtr EventObject = IntPtr.Zero;
FileIOApiDeclarations.OVERLAPPED HIDOverlapped = new FileIOApiDeclarations.OVERLAPPED();
int NumberOfBytesRead = 0;
@@ -525,7 +525,7 @@ internal class InputReportViaControlTransfer : DeviceReport
/// tells whether the device is currently attached.
/// contains the requested report.
/// read success
- protected override void ProtectedRead(int readHandle, int hidHandle, ref bool myDeviceDetected,
+ protected override void ProtectedRead(IntPtr readHandle, IntPtr hidHandle, ref bool myDeviceDetected,
ref byte[] inputReportBuffer, ref bool success)
{
try
@@ -562,7 +562,7 @@ protected override void ProtectedRead(int readHandle, int hidHandle, ref bool my
///
internal abstract class HostReport
{
- protected abstract bool ProtectedWrite(int deviceHandle, byte[] reportBuffer);
+ protected abstract bool ProtectedWrite(IntPtr deviceHandle, byte[] reportBuffer);
///
/// Calls the overridden ProtectedWrite routine.
@@ -575,7 +575,7 @@ internal abstract class HostReport
/// contains the report ID and report data.
/// handle to the device.
/// True on success. False on failure.
- internal bool Write(byte[] reportBuffer, int deviceHandle)
+ internal bool Write(byte[] reportBuffer, IntPtr deviceHandle)
{
bool Success = false;
@@ -603,7 +603,7 @@ internal class OutFeatureReport : HostReport
/// a handle to the device.
/// contains the report ID and report to send.
/// True on success. False on failure.
- protected override bool ProtectedWrite(int hidHandle, byte[] outFeatureReportBuffer)
+ protected override bool ProtectedWrite(IntPtr hidHandle, byte[] outFeatureReportBuffer)
{
bool Success = false;
@@ -653,7 +653,7 @@ internal class OutputReport : HostReport
/// a handle to the device.
/// contains the report ID and report to send.
/// True on success. False on failure.
- protected override bool ProtectedWrite(int hidHandle, byte[] outputReportBuffer)
+ protected override bool ProtectedWrite(IntPtr hidHandle, byte[] outputReportBuffer)
{
int NumberOfBytesWritten = 0;
bool Success = false;
@@ -711,7 +711,7 @@ internal class OutputReportViaControlTransfer : HostReport
/// a handle to the device.
/// contains the report ID and report to send.
/// True on success. False on failure.
- protected override bool ProtectedWrite(int hidHandle, byte[] outputReportBuffer)
+ protected override bool ProtectedWrite(IntPtr hidHandle, byte[] outputReportBuffer)
{
bool Success = false;
diff --git a/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/HidDeclarations.cs b/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/HidDeclarations.cs
index f6b9e46c9f6..ca4afafa009 100644
--- a/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/HidDeclarations.cs
+++ b/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/HidDeclarations.cs
@@ -46,37 +46,37 @@ internal sealed class HidApiDeclarations
// ******************************************************************************
[DllImport("hid.dll", SetLastError = true)]
- public static extern bool HidD_FlushQueue(int HidDeviceObject);
+ public static extern bool HidD_FlushQueue(IntPtr HidDeviceObject);
[DllImport("hid.dll", SetLastError = true)]
- public static extern bool HidD_FreePreparsedData(ref IntPtr PreparsedData);
+ public static extern bool HidD_FreePreparsedData(IntPtr PreparsedData);
[DllImport("hid.dll", SetLastError = true)]
- public static extern int HidD_GetAttributes(int HidDeviceObject, ref HIDD_ATTRIBUTES Attributes);
+ public static extern int HidD_GetAttributes(IntPtr HidDeviceObject, ref HIDD_ATTRIBUTES Attributes);
[DllImport("hid.dll", SetLastError = true)]
- public static extern bool HidD_GetFeature(int HidDeviceObject, ref byte lpReportBuffer, int ReportBufferLength);
+ public static extern bool HidD_GetFeature(IntPtr HidDeviceObject, ref byte lpReportBuffer, int ReportBufferLength);
[DllImport("hid.dll", SetLastError = true)]
- public static extern bool HidD_GetInputReport(int HidDeviceObject, ref byte lpReportBuffer, int ReportBufferLength);
+ public static extern bool HidD_GetInputReport(IntPtr HidDeviceObject, ref byte lpReportBuffer, int ReportBufferLength);
[DllImport("hid.dll", SetLastError = true)]
public static extern void HidD_GetHidGuid(out Guid HidGuid);
[DllImport("hid.dll", SetLastError = true)]
- public static extern bool HidD_GetNumInputBuffers(int HidDeviceObject, ref int NumberBuffers);
+ public static extern bool HidD_GetNumInputBuffers(IntPtr HidDeviceObject, ref int NumberBuffers);
[DllImport("hid.dll", SetLastError = true)]
- public static extern bool HidD_GetPreparsedData(int HidDeviceObject, ref IntPtr PreparsedData);
+ public static extern bool HidD_GetPreparsedData(IntPtr HidDeviceObject, ref IntPtr PreparsedData);
[DllImport("hid.dll", SetLastError = true)]
- public static extern bool HidD_SetFeature(int HidDeviceObject, ref byte lpReportBuffer, int ReportBufferLength);
+ public static extern bool HidD_SetFeature(IntPtr HidDeviceObject, ref byte lpReportBuffer, int ReportBufferLength);
[DllImport("hid.dll", SetLastError = true)]
- public static extern bool HidD_SetNumInputBuffers(int HidDeviceObject, int NumberBuffers);
+ public static extern bool HidD_SetNumInputBuffers(IntPtr HidDeviceObject, int NumberBuffers);
[DllImport("hid.dll", SetLastError = true)]
- public static extern bool HidD_SetOutputReport(int HidDeviceObject, ref byte lpReportBuffer, int ReportBufferLength);
+ public static extern bool HidD_SetOutputReport(IntPtr HidDeviceObject, ref byte lpReportBuffer, int ReportBufferLength);
[DllImport("hid.dll", SetLastError = true)]
public static extern int HidP_GetCaps(IntPtr PreparsedData, ref HIDP_CAPS Capabilities);
@@ -125,47 +125,92 @@ public struct HIDP_CAPS
[StructLayout(LayoutKind.Sequential)]
- public struct HidP_Value_Caps
+ public struct HidP_Range
{
- #region Fields
+ public short UsageMin;
+ public short UsageMax;
+ public short StringMin;
+ public short StringMax;
+ public short DesignatorMin;
+ public short DesignatorMax;
+ public short DataIndexMin;
+ public short DataIndexMax;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct HidP_NotRange
+ {
+ public short Usage;
+ public short Reserved1;
+ public short StringIndex;
+ public short Reserved2;
+ public short DesignatorIndex;
+ public short Reserved3;
+ public short DataIndex;
+ public short Reserved4;
+ }
+ [StructLayout(LayoutKind.Explicit)]
+ public struct HidP_Value_Caps
+ {
+ [FieldOffset(0)]
public ushort UsagePage;
+ [FieldOffset(2)]
public byte ReportID;
- public int IsAlias;
+ [FieldOffset(3), MarshalAs(UnmanagedType.U1)]
+ public bool IsAlias;
+ [FieldOffset(4)]
public ushort BitField;
+ [FieldOffset(6)]
public ushort LinkCollection;
+ [FieldOffset(8)]
public ushort LinkUsage;
+ [FieldOffset(10)]
public ushort LinkUsagePage;
- public int IsRange; // If IsRange is false, UsageMin is the Usage and UsageMax is unused.
- public int IsStringRange; // If IsStringRange is false, StringMin is the string index and StringMax is unused.
-
- public int IsDesignatorRange;
- // If IsDesignatorRange is false, DesignatorMin is the designator index and DesignatorMax is unused.
-
- public int IsAbsolute;
- public int HasNull;
+ [FieldOffset(12), MarshalAs(UnmanagedType.U1)]
+ public bool IsRange; // If IsRange is false, UsageMin is the Usage and UsageMax is unused.
+ [FieldOffset(13), MarshalAs(UnmanagedType.U1)]
+ public bool IsStringRange; // If IsStringRange is false, StringMin is the string index and StringMax is unused.
+ [FieldOffset(14), MarshalAs(UnmanagedType.U1)]
+ public bool IsDesignatorRange; // If IsDesignatorRange is false, DesignatorMin is the designator index and DesignatorMax is unused.
+ [FieldOffset(15), MarshalAs(UnmanagedType.U1)]
+ public bool IsAbsolute;
+ [FieldOffset(16), MarshalAs(UnmanagedType.U1)]
+ public bool HasNull;
+ [FieldOffset(17)]
public byte Reserved;
- public ushort BitSize;
- public ushort ReportCount;
- public ushort Reserved2;
- public ushort Reserved3;
- public ushort Reserved4;
- public ushort Reserved5;
- public ushort Reserved6;
+ [FieldOffset(18)]
+ public short BitSize;
+ [FieldOffset(20)]
+ public short ReportCount;
+ [FieldOffset(22)]
+ public ushort Reserved2a;
+ [FieldOffset(24)]
+ public ushort Reserved2b;
+ [FieldOffset(26)]
+ public ushort Reserved2c;
+ [FieldOffset(28)]
+ public ushort Reserved2d;
+ [FieldOffset(30)]
+ public ushort Reserved2e;
+ [FieldOffset(32)]
+ public int UnitsExp;
+ [FieldOffset(36)]
+ public int Units;
+ [FieldOffset(40)]
public int LogicalMin;
+ [FieldOffset(44)]
public int LogicalMax;
+ [FieldOffset(48)]
public int PhysicalMin;
+ [FieldOffset(52)]
public int PhysicalMax;
- public ushort UsageMin;
- public ushort UsageMax;
- public ushort StringMin;
- public ushort StringMax;
- public ushort DesignatorMin;
- public ushort DesignatorMax;
- public ushort DataIndexMin;
- public ushort DataIndexMax;
- #endregion
+ [FieldOffset(56)]
+ public HidP_Range Range;
+ [FieldOffset(56)]
+ public HidP_NotRange NotRange;
+
}
}
}
\ No newline at end of file
diff --git a/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/VFD_Control.cs b/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/VFD_Control.cs
index bc63110ca76..23bfbdf8cdb 100644
--- a/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/VFD_Control.cs
+++ b/mediaportal/MiniDisplayLibrary/MiniDisplayPlugin/VFD_Control/VFD_Control.cs
@@ -51,7 +51,7 @@ public class control
#region Fields
- private int _HIDHandle;
+ private IntPtr _HIDHandle;
private bool _MyDeviceDetected;
private int _Volume = -1;
private readonly bool[] FICIconStatus = new bool[50];
@@ -87,7 +87,7 @@ private bool FindTheHid()
_MyDeviceDetected = false;
// Values for the SECURITY_ATTRIBUTES structure:
- Security.lpSecurityDescriptor = 0;
+ Security.lpSecurityDescriptor = IntPtr.Zero;
Security.bInheritHandle = Convert.ToInt32(true);
Security.nLength = Marshal.SizeOf(Security);
@@ -144,7 +144,7 @@ private bool FindTheHid()
FileIOApiDeclarations.GENERIC_READ | FileIOApiDeclarations.GENERIC_WRITE,
FileIOApiDeclarations.FILE_SHARE_READ | FileIOApiDeclarations.FILE_SHARE_WRITE,
ref Security,
- FileIOApiDeclarations.OPEN_EXISTING, 0, 0);
+ FileIOApiDeclarations.OPEN_EXISTING, 0, IntPtr.Zero);
if (Settings.Instance.ExtensiveLogging)
{
@@ -616,7 +616,7 @@ public void Shutdown()
try
{
// Close open handles to the device.
- if (_HIDHandle != 0)
+ if (_HIDHandle != IntPtr.Zero)
{
FileIOApiDeclarations.CloseHandle(_HIDHandle);
if (Settings.Instance.ExtensiveLogging)
diff --git a/mediaportal/Setup/setup.nsi b/mediaportal/Setup/setup.nsi
index 63c013ad905..16ffebfea3a 100644
--- a/mediaportal/Setup/setup.nsi
+++ b/mediaportal/Setup/setup.nsi
@@ -673,9 +673,9 @@ Section "MediaPortal core files (required)" SecCore
; NuGet binaries Sqlite
SetOutPath "$MPdir.Base\"
!if "${Architecture}" == "x64"
- File "${git_ROOT}\Packages\Sqlite.3.41.2.5\sqlite\x64\sqlite.dll"
+ File "${git_ROOT}\Packages\Sqlite.3.47.0\sqlite\x64\sqlite.dll"
!else
- File "${git_ROOT}\Packages\Sqlite.3.41.2.5\sqlite\x86\sqlite.dll"
+ File "${git_ROOT}\Packages\Sqlite.3.47.0\sqlite\x86\sqlite.dll"
!endif
; NuGet binaries EXIF
SetOutPath "$MPdir.Base\"