Permalink
Browse files

Merge remote-tracking branch 'remotes/origin/master' into EXP-Consist…

…ent_File_Delete_in_MP
  • Loading branch information...
2 parents 946d984 + bf8ced0 commit f645d36bae54efe18e4e8c377cb89ed7f31d99dd @Sebastiii Sebastiii committed Dec 27, 2012
Showing with 13,558 additions and 7,442 deletions.
  1. +1 −1 Common-MP-TVE3/Common.Utils/Compatibility/CompatibilityManager.cs
  2. +1 −1 Common-MP-TVE3/Gentle.config
  3. +222 −65 Common-MP-TVE3/OsInfo/OSInfo.cs
  4. +1 −1 Common-MP-TVE3/OsInfo/OSPrerequisites.cs
  5. +2 −2 Common-MP-TVE3/SolutionInfo.cs
  6. +1 −1 Tools/InstallationScripts/include/MediaPortalCurrentVersion.nsh
  7. +8 −0 Tools/InstallationScripts/include/MediaPortalMacros.nsh
  8. +13 −0 Tools/InstallationScripts/include/WinVerEx.nsh
  9. +8 −0 Tools/MediaPortal.DeployTool/DialogFlowHandler.cs
  10. +22 −1 Tools/MediaPortal.DeployTool/Images.Designer.cs
  11. +11 −1 Tools/MediaPortal.DeployTool/Images.resx
  12. +23 −187 Tools/MediaPortal.DeployTool/InstallationChecks/LAVFilterMPEInstall.cs
  13. +225 −0 Tools/MediaPortal.DeployTool/InstallationChecks/MPEInstall.cs
  14. +31 −3 Tools/MediaPortal.DeployTool/InstallationChecks/MediaPortalChecker.cs
  15. +82 −0 Tools/MediaPortal.DeployTool/InstallationChecks/TitanExtensionInstall.cs
  16. +3 −3 Tools/MediaPortal.DeployTool/InstallationChecks/TvPluginChecker.cs
  17. +12 −5 Tools/MediaPortal.DeployTool/InstallationChecks/TvServerChecker.cs
  18. +69 −3 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.csproj
  19. +6 −0 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.de-AT.resx
  20. +7 −1 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.de-DE.resx
  21. +3 −0 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.fr-FR.resx
  22. +6 −0 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.it-IT.resx
  23. +9 −0 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.nb-NO.resx
  24. +6 −0 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.nl-NL.resx
  25. +19 −1 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.resx
  26. +6 −0 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.sv-SE.resx
  27. +1 −1 Tools/MediaPortal.DeployTool/Properties/Settings.Designer.cs
  28. BIN Tools/MediaPortal.DeployTool/Resources/preview_default.png
  29. BIN Tools/MediaPortal.DeployTool/Resources/preview_default_wide.png
  30. BIN Tools/MediaPortal.DeployTool/Resources/preview_titan.png
  31. +1 −1 Tools/MediaPortal.DeployTool/Sections/BaseInstallationTypeDlg.cs
  32. +1 −1 Tools/MediaPortal.DeployTool/Sections/BaseInstallationTypeWithoutTvEngineDlg.cs
  33. +97 −0 Tools/MediaPortal.DeployTool/Sections/ExtensionChoice.cs
  34. +196 −0 Tools/MediaPortal.DeployTool/Sections/ExtensionChoice.designer.cs
  35. +120 −0 Tools/MediaPortal.DeployTool/Sections/ExtensionChoice.resx
  36. +4 −0 Tools/MediaPortal.DeployTool/Sections/InstallDlg.cs
  37. +84 −102 Tools/MediaPortal.DeployTool/Sections/MPSettingsDlg.Designer.cs
  38. +2 −6 Tools/MediaPortal.DeployTool/Sections/MPSettingsDlg.cs
  39. +211 −0 Tools/MediaPortal.DeployTool/Sections/SkinChoice.Designer.cs
  40. +124 −0 Tools/MediaPortal.DeployTool/Sections/SkinChoice.cs
  41. +120 −0 Tools/MediaPortal.DeployTool/Sections/SkinChoice.resx
  42. +4 −0 Tools/MediaPortal.DeployTool/Sections/TvServerSettingsDlg.cs
  43. +6 −0 Tools/MediaPortal.DeployTool/Sections/UpgradeDlg.cs
  44. +49 −2 Tools/MediaPortal.DeployTool/Utils.cs
  45. +4 −3 TvEngine3/TVLibrary/Plugins/ComSkipLauncher/ComSkipLauncher.csproj
  46. +3 −3 TvEngine3/TVLibrary/Plugins/ConflictsManager/ConflictsManager.cs
  47. +4 −3 TvEngine3/TVLibrary/Plugins/PowerScheduler/PowerScheduler.csproj
  48. +4 −3 TvEngine3/TVLibrary/Plugins/ServerBlaster/ServerBlaster/ServerBlaster.csproj
  49. +4 −3 TvEngine3/TVLibrary/Plugins/TvMovie/TvMovie.csproj
  50. +3 −3 TvEngine3/TVLibrary/Setup/setup.nsi
  51. +164 −161 TvEngine3/TVLibrary/SetupTv/Sections/{TvEpgGrabber.Designer.cs → EpgGrabber.Designer.cs}
  52. +433 −0 TvEngine3/TVLibrary/SetupTv/Sections/EpgGrabber.cs
  53. +259 −0 TvEngine3/TVLibrary/SetupTv/Sections/EpgGrabber.resx
  54. +0 −307 TvEngine3/TVLibrary/SetupTv/Sections/RadioEpgGrabber.Designer.cs
  55. +2 −386 TvEngine3/TVLibrary/SetupTv/Sections/RadioEpgGrabber.cs
  56. +0 −218 TvEngine3/TVLibrary/SetupTv/Sections/RadioEpgGrabber.resx
  57. +2 −386 TvEngine3/TVLibrary/SetupTv/Sections/TvEpgGrabber.cs
  58. +0 −259 TvEngine3/TVLibrary/SetupTv/Sections/TvEpgGrabber.resx
  59. +13 −17 TvEngine3/TVLibrary/SetupTv/SetupTv.csproj
  60. +13 −1 TvEngine3/TVLibrary/SetupTv/Startup.cs
  61. +41 −2 TvEngine3/TVLibrary/TVDatabase/Card.cs
  62. +41 −17 TvEngine3/TVLibrary/TVDatabase/TvBusinessLayer/BusinessLayer.cs
  63. +9 −0 TvEngine3/TVLibrary/TVLibrary/Implementations/Hybrid/HybridCard.cs
  64. +10 −0 TvEngine3/TVLibrary/TVLibrary/Implementations/Hybrid/HybridCardGroup.cs
  65. +9 −0 TvEngine3/TVLibrary/TVLibrary/Implementations/RadioWebStream/RadioWebStreamCard.cs
  66. +15 −0 TvEngine3/TVLibrary/TVLibrary/Implementations/TvCardBase.cs
  67. +29 −19 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Finland.Sonera.xml
  68. +6 −6 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Germany.Unitymedia NRW.xml
  69. +4 −4 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 5555.xml
  70. +99 −69 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbip/Germany.T-Home.m3u
  71. +1 −1 TvEngine3/TVLibrary/TvLibrary.Interfaces/Interfaces/ITVCard.cs
  72. +28 −28 TvEngine3/TVLibrary/TvPlugin/TvPlugin.sln
  73. +16 −0 TvEngine3/TVLibrary/TvPlugin/TvPlugin/TVConflictDialog.cs
  74. +1 −14 TvEngine3/TVLibrary/TvPlugin/TvPlugin/TVHome.cs
  75. +84 −3 TvEngine3/TVLibrary/TvPlugin/TvPlugin/TVProgramInfo.cs
  76. +6 −0 TvEngine3/TVLibrary/TvPlugin/TvPlugin/TvGuideBase.cs
  77. +8 −5 TvEngine3/TVLibrary/TvService/CardManagement/CardAllocation/AdvancedCardAllocation.cs
  78. +218 −199 TvEngine3/TVLibrary/TvService/CardManagement/CardAllocation/AdvancedCardAllocationTicket.cs
  79. +2 −2 TvEngine3/TVLibrary/TvService/CardManagement/CardAllocation/CardAllocationBase.cs
  80. +2 −36 TvEngine3/TVLibrary/TvService/CardManagement/CardAllocation/CardAllocationCache.cs
  81. +2 −1 TvEngine3/TVLibrary/TvService/CardManagement/CardAllocation/ChannelStates.cs
  82. +2 −1 TvEngine3/TVLibrary/TvService/CardManagement/CardHandler/TvCardHandler.cs
  83. +562 −534 TvEngine3/TVLibrary/TvService/CardManagement/CardReservation/CardReservationHelper.cs
  84. +464 −462 TvEngine3/TVLibrary/TvService/CardManagement/CardReservation/Implementations/CardReservationBase.cs
  85. +223 −223 TvEngine3/TVLibrary/TvService/CardManagement/CardReservation/Ticket/CardTuneReservationTicket.cs
  86. +29 −29 TvEngine3/TVLibrary/TvService/Epg/EpgCard.cs
  87. +1 −1 TvEngine3/TVLibrary/TvService/Interfaces/ICardReservation.cs
  88. +58 −58 TvEngine3/TVLibrary/TvService/Interfaces/ICardTuneReservationTicket.cs
  89. +44 −3 TvEngine3/TVLibrary/TvService/Scheduler/CardDetail.cs
  90. +65 −42 TvEngine3/TVLibrary/TvService/Scheduler/Scheduler.cs
  91. +98 −74 TvEngine3/TVLibrary/TvService/TVController.cs
  92. +4 −3 TvEngine3/TVLibrary/TvService/TvService.csproj
  93. +1 −1 mediaportal/Configuration/App.config
  94. +1 −0 mediaportal/Configuration/MediaPortal.Configuration.csproj
  95. +1 −1 mediaportal/Configuration/Sections/Gui.cs
  96. +35 −1 mediaportal/Configuration/Sections/GuiThumbs.cs
  97. +8 −0 mediaportal/Configuration/Sections/MovieCodec.cs
  98. +28 −16 mediaportal/Configuration/Sections/MovieDatabase.cs
  99. +1 −9 mediaportal/Configuration/SettingsForm.cs
  100. +83 −4 mediaportal/Configuration/SettingsUpgradeManager.cs
  101. +11 −1 mediaportal/Configuration/Startup.cs
  102. +38 −27 mediaportal/Configuration/Subdialogs/DlgSkinSettings.cs
  103. BIN mediaportal/Core.cpp/fontEngine/bin/Debug/fontEngine.dll
  104. BIN mediaportal/Core.cpp/fontEngine/bin/Debug/fontEngine.pdb
  105. BIN mediaportal/Core.cpp/fontEngine/bin/Debug/vc100.pdb
  106. BIN mediaportal/Core.cpp/fontEngine/bin/Release/fontEngine.dll
  107. +1 −1 mediaportal/Core.cpp/fontEngine/source/fontEngine.cpp
  108. +3 −3 mediaportal/Core/Util/VideoDatabaseParserStrings.cs
  109. +88 −172 mediaportal/Core/guilib/GUIImage.cs
  110. +2 −3 mediaportal/Core/guilib/GUIToggleButtonControl.cs
  111. +1 −1 mediaportal/Core/guilib/GUIWindowManager.cs
  112. +0 −61 mediaportal/Databases/Video/IMDB.cs
  113. +23 −8 mediaportal/Databases/Video/SqlLite/VideoDatabaseSqlLite.cs
  114. +17 −4 mediaportal/MPE/MpeCore/Classes/Util.cs
  115. +2 −0 mediaportal/MPE/MpeInstaller/MainForm.cs
  116. +1 −1 mediaportal/MediaPortal.Application/App.config
  117. +2 −2 mediaportal/MediaPortal.Application/MediaPortal.cs
  118. +1 −0 mediaportal/MediaPortal.Application/PostBuild.bat
  119. +7 −7 mediaportal/MediaPortal.Base/VDBParserStrings.xml
  120. +40 −21 mediaportal/MediaPortal.Base/language/strings_de.xml
  121. +26 −15 mediaportal/MediaPortal.Base/language/strings_en.xml
  122. +275 −1 mediaportal/MediaPortal.Base/language/strings_fr.xml
  123. +2,331 −1,991 mediaportal/MediaPortal.Base/language/strings_it.xml
  124. +287 −9 mediaportal/MediaPortal.Base/language/strings_nl.xml
  125. +278 −0 mediaportal/MediaPortal.Base/language/strings_no.xml
  126. +393 −46 mediaportal/MediaPortal.Base/language/strings_sv.xml
  127. +97 −202 mediaportal/MediaPortal.Base/scripts/MovieInfo/IMDB.csscript
  128. +97 −202 mediaportal/MediaPortal.Base/scripts/MovieInfo/IMDB_MP13x.csscript
  129. +7 −7 mediaportal/MediaPortal.Base/scripts/VDBParserStrings.xml
  130. +16 −24 mediaportal/MediaPortal.Base/skin/Default/DialogSelect2.xml
  131. 0 ...rtal.base/skin/DefaultWide → MediaPortal.Base/skin/Default}/MPDefaultFonts/MediaPortalDefault.ttf
  132. +0 −286 mediaportal/MediaPortal.Base/skin/Default/MyRadioLastFM.xml
  133. +1 −1 mediaportal/MediaPortal.Base/skin/Default/references.xml
  134. +15 −2 mediaportal/MediaPortal.Base/skin/Default/settings_GUI_Thumbnails.xml
  135. +11 −11 mediaportal/MediaPortal.Base/skin/Default/settings_General_Volume.xml
  136. +14 −22 mediaportal/MediaPortal.Base/skin/DefaultWide/DialogSelect2.xml
  137. 0 ...rtal.base/skin/Default → MediaPortal.Base/skin/DefaultWide}/MPDefaultFonts/MediaPortalDefault.ttf
  138. +0 −282 mediaportal/MediaPortal.Base/skin/DefaultWide/MyRadioLastFM.xml
  139. +1 −1 mediaportal/MediaPortal.Base/skin/DefaultWide/Themes/TVGuide 11 lines/theme.xml
  140. +1 −1 mediaportal/MediaPortal.Base/skin/DefaultWide/references.xml
  141. +15 −2 mediaportal/MediaPortal.Base/skin/DefaultWide/settings_GUI_Thumbnails.xml
  142. +13 −13 mediaportal/MediaPortal.Base/skin/DefaultWide/settings_General_Volume.xml
  143. +2 −2 mediaportal/MediaPortal.Base/skin/DefaultWide/stdKeyboard.xml
  144. +119 −0 mediaportal/MediaPortal.Base/skin/Titan/BasicHome.BackgroundSelected.xml
  145. +107 −0 mediaportal/MediaPortal.Base/skin/Titan/BasicHome.FanartSelected.xml
  146. +203 −0 mediaportal/MediaPortal.Base/skin/Titan/BasicHome.LatestMovingPictures.xml
  147. +203 −0 mediaportal/MediaPortal.Base/skin/Titan/BasicHome.LatestTVSeries.xml
  148. +203 −0 mediaportal/MediaPortal.Base/skin/Titan/BasicHome.LatestVideo.xml
  149. +146 −0 mediaportal/MediaPortal.Base/skin/Titan/BasicHome.exitmenu.xml
  150. +31 −0 mediaportal/MediaPortal.Base/skin/Titan/BasicHome.scraper.xml
  151. +298 −0 mediaportal/MediaPortal.Base/skin/Titan/BasicHome.submenus.xml
  152. +492 −0 mediaportal/MediaPortal.Base/skin/Titan/BasicHome.xml
  153. +200 −0 mediaportal/MediaPortal.Base/skin/Titan/BasicHomeGroup2.xml
  154. +329 −0 mediaportal/MediaPortal.Base/skin/Titan/DialogAlbumInfo.xml
  155. +363 −0 mediaportal/MediaPortal.Base/skin/Titan/DialogArtistInfo.xml
  156. +85 −0 mediaportal/MediaPortal.Base/skin/Titan/DialogCIMenu.xml
  157. +397 −0 mediaportal/MediaPortal.Base/skin/Titan/DialogDateTime.xml
  158. +123 −0 mediaportal/MediaPortal.Base/skin/Titan/DialogFile.xml
  159. +80 −0 mediaportal/MediaPortal.Base/skin/Titan/DialogMenu.xml
  160. +104 −0 mediaportal/MediaPortal.Base/skin/Titan/DialogMenuBottomRight.xml
  161. +141 −0 mediaportal/MediaPortal.Base/skin/Titan/DialogMultiSelect.xml
  162. +109 −0 mediaportal/MediaPortal.Base/skin/Titan/DialogNotify.xml
  163. +392 −0 mediaportal/MediaPortal.Base/skin/Titan/DialogPictureInfo.xml
  164. +145 −0 mediaportal/MediaPortal.Base/skin/Titan/DialogPinCode.xml
  165. +107 −0 mediaportal/MediaPortal.Base/skin/Titan/DialogSelect.xml
Sorry, we could not display the entire diff because too many files (1,250) changed.
View
2 Common-MP-TVE3/Common.Utils/Compatibility/CompatibilityManager.cs
@@ -44,7 +44,7 @@ public int GetHashCode(UsesSubsystemAttribute obj)
private static readonly HashSet<Assembly> AppAssemblies = new HashSet<Assembly>();
private static readonly Dictionary<string, Version> SubSystemVersions = new Dictionary<string, Version>();
private static readonly Version AppVersion;
- public static readonly Version SkinVersion = new Version(1, 3, 0, 0);
+ public static readonly Version SkinVersion = new Version(1, 3, 0, 1);
private static readonly string MinRequiredVersionDefault = "1.1.8.0"; // 1.2.0 RC1
static CompatibilityManager()
View
2 Common-MP-TVE3/Gentle.config
@@ -58,7 +58,7 @@
<Namespace namespace="Gentle.Second" provider="SQLServer" connectionString="..." />
</NamespaceProviders>
-->
- <DefaultProvider name="MySQL" connectionString="Server=localhost;Database=MpTvDb;User ID=root;Password=MediaPortal;charset=utf8;Connection Timeout=300;" />
+ <DefaultProvider name="MySQL" connectionString="Server=-;Database=MpTvDb;User ID=root;Password=MediaPortal;charset=utf8;Connection Timeout=300;" />
<!--
<DefaultProvider name="Firebird" connectionString="User=SYSDBA;Password=masterkey;Data Source=TvLibrary.fdb;ServerType=1;Charset=UNICODE_FSS;" />
<DefaultProvider name="Jet" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Code\Gentle.NET\Source\Gentle.Framework.Tests\Database Files\Gentle_MSAccess.mdb;OLE DB Services=-1;" />
View
287 Common-MP-TVE3/OsInfo/OSInfo.cs
@@ -28,6 +28,8 @@ namespace OSInfo
/// </summary>
public class OSInfo
{
+ #region win32 API definitions
+
[StructLayout(LayoutKind.Sequential)]
private struct OSVERSIONINFOEX
{
@@ -58,6 +60,15 @@ private struct OSVERSIONINFOEX
[DllImport("user32.dll")]
private static extern bool GetSystemMetrics([In] int nIndex);
+ [DllImport("kernel32.dll")]
+ private static extern bool VerifyVersionInfo(ref OSVERSIONINFOEX osVersionInfo, [In] uint dwTypeMask, [In] UInt64 dwlConditionMask);
+
+ [DllImport("kernel32.dll")]
+ private static extern ulong VerSetConditionMask([In] ulong dwlConditionMask, [In] uint dwTypeBitMask,
+ [In] byte dwConditionMask);
+
+ #endregion
+
#region Private Constants
//wProductType ( http://msdn.microsoft.com/en-us/library/ms724833(VS.85).aspx )
@@ -131,6 +142,25 @@ private struct OSVERSIONINFOEX
private const int PRODUCT_WEB_SERVER = 0x00000011;
private const int PRODUCT_WEB_SERVER_CORE = 0x0000001D;
+ //Type bitmask ( http://msdn.microsoft.com/en-gb/library/ms725494(vs.85).aspx )
+ private const int VER_MINORVERSION = 0x0000001;
+ private const int VER_MAJORVERSION = 0x0000002;
+ private const int VER_BUILDVERSION = 0x0000004;
+ private const int VER_PLATFORMID = 0x0000008;
+ private const int VER_SERVICEPACKMINOR = 0x0000010;
+ private const int VER_SERVICEPACKMAJOR = 0x0000020;
+ private const int VER_SUITENAME = 0x0000040;
+ private const int VER_PRODUCT_TYPE = 0x0000080;
+
+ //Condition bitmask ( http://msdn.microsoft.com/en-gb/library/ms725494(vs.85).aspx )
+ private const int VER_EQUAL = 1;
+ private const int VER_GREATER = 2;
+ private const int VER_GREATER_EQUAL = 3;
+ private const int VER_LESS = 4;
+ private const int VER_LESS_EQUAL = 5;
+ private const int VER_AND = 6; // only for wSuiteMask
+ private const int VER_OR = 7; // only for wSuiteMask
+
//sysMetrics ( http://msdn.microsoft.com/en-us/library/ms724385(VS.85).aspx )
private const int SM_TABLETPC = 86;
private const int SM_MEDIACENTER = 87;
@@ -139,7 +169,7 @@ private struct OSVERSIONINFOEX
#endregion
- #region Operating System enum
+ #region enums
/// <summary>
/// List of all operating systems
@@ -167,6 +197,10 @@ public enum OSList
///</summary>
Windows7,
///<summary>
+ /// Windows 8
+ ///</summary>
+ Windows8,
+ ///<summary>
/// Windows 2003 Server
///</summary>
Windows2003,
@@ -181,7 +215,30 @@ public enum OSList
///<summary>
/// Windows 2008 R2 Server
///</summary>
- Windows2008R2
+ Windows2008R2,
+ ///<summary>
+ /// Windows 2012 Server
+ ///</summary>
+ Windows2012
+ }
+
+ /// <summary>
+ /// List of available status of current OS
+ /// </summary>
+ public enum OsSupport
+ {
+ /// <summary>
+ /// Blocked: will cause an immediate exit of the program
+ /// </summary>
+ Blocked = 0,
+ /// <summary>
+ /// FullySupported: self explanatory
+ /// </summary>
+ FullySupported = 1,
+ /// <summary>
+ /// NotSupported: officially not supported, will log/display a warning
+ /// </summary>
+ NotSupported = 2
}
#endregion
@@ -453,6 +510,9 @@ public static string GetOSNameString()
case 1:
osName = OSProductType == NT_WORKSTATION ? "Windows 7" : "Windows 2008 R2";
break;
+ case 2:
+ osName = OSProductType == NT_WORKSTATION ? "Windows 8" : "Windows 2012";
+ break;
}
break;
}
@@ -461,6 +521,11 @@ public static string GetOSNameString()
}
}
+ if (!IsOSAsReported(OSMajorVersion, OSMinorVersion, OSBuildVersion, OSProductType, (short)OSServicePackMajor))
+ {
+ osName = "Compatibilty Mode: " + osName;
+ }
+
return osName;
}
@@ -484,6 +549,8 @@ public static OSList GetOSName()
return OSProductType == NT_WORKSTATION ? OSList.WindowsVista : OSList.Windows2008;
case 61:
return OSProductType == NT_WORKSTATION ? OSList.Windows7 : OSList.Windows2008R2;
+ case 62:
+ return OSProductType == NT_WORKSTATION ? OSList.Windows8 : OSList.Windows2012;
}
return OSList.Windows2000andPrevious;
}
@@ -507,81 +574,49 @@ public static string GetOSDisplayVersion()
/// </summary>
public static OsSupport GetOSSupported()
{
- int minSp;
- int minBuild;
- switch (GetOSName())
- {
- case OSList.WindowsXp:
- minSp = 3;
- minBuild = 2600;
- break;
- case OSList.WindowsVista:
- minSp = 2;
- minBuild = 6000;
- break;
- case OSList.Windows7:
- minSp = 0;
- minBuild = 7600;
- break;
- case OSList.Windows2003:
- case OSList.Windows2003R2:
- case OSList.Windows2008:
- case OSList.Windows2008R2:
- return OsSupport.NotSupported;
- default:
- // Windows2000andPrevious and WindowsXp64
- return OsSupport.Blocked;
+ if (VerifyDesktopOSMinRequirement(5, 1, 2600, NT_WORKSTATION, 3))
+ { // XP SP3
+ return OsSupport.FullySupported;
}
- if (OSServicePackMajor < minSp || OSBuildVersion < minBuild)
- {
- return OsSupport.Blocked;
+ if (VerifyDesktopOSMinRequirement(6, 0, 6000, NT_WORKSTATION, 2))
+ { // Vista SP2
+ return OsSupport.FullySupported;
+ }
+ if (VerifyDesktopOSMinRequirement(6, 1, 7600, NT_WORKSTATION, 0))
+ { // Win7 RTM
+ return OsSupport.FullySupported;
+ }
+ if (VerifyDesktopOSMinRequirement(6, 2, 9200, NT_WORKSTATION, 0))
+ { // Windows 8 RTM
+ return OsSupport.NotSupported;
+ }
+ if (IsServer())
+ { // any server OS
+ return OsSupport.NotSupported;
}
- //
- // Final service packs have OSServicePackMinor == 0
- // Unfortunately Windows7 SP1 RC report 0 even if it's not final: added check on the string description
- //
- return (OSServicePackMinor != 0 || OSServicePackDesc.Contains(", v."))
- ? OsSupport.NotSupported
- : OsSupport.FullySupported;
- }
- /// <summary>
- /// List of available status of current OS
- /// </summary>
- public enum OsSupport
- {
- /// <summary>
- /// Blocked: will cause an immediate exit of the program
- /// </summary>
- Blocked = 0,
- /// <summary>
- /// FullySupported: self explanatory
- /// </summary>
- FullySupported = 1,
- /// <summary>
- /// NotSupported: officially not supported, will log/display a warning
- /// </summary>
- NotSupported = 2
+ return OsSupport.Blocked;
}
/// <summary>
- /// Return a numeric value rappresenting OS version
+ /// Return if running on XP or later
/// </summary>
- /// <returns>(OSMajorVersion * 10 + OSMinorVersion)</returns>
- public static int OsVersionInt()
+ /// <returns>true means XP or later</returns>
+ /// <returns>false means 2000 or previous</returns>
+ public static bool XpOrLater()
{
- return (OSMajorVersion * 10 + OSMinorVersion);
+ return VerifyVersionGreaterEqual(5, 1);
}
/// <summary>
- /// Return if running on XP or later
+ /// Return if running on XP 64 or later
/// </summary>
- /// <returns>true means XP or later</returns>
- /// <returns>false means 2000 or previous</returns>
- public static bool XpOrLater()
+ /// <returns>true means XP 64 or later</returns>
+ /// <returns>false means XP or previous</returns>
+ public static bool Xp64OrLater()
{
- return OsVersionInt() >= 51;
+ return VerifyVersionGreaterEqual(5, 2);
}
/// <summary>
@@ -591,7 +626,7 @@ public static bool XpOrLater()
/// <returns>false means Xp or previous</returns>
public static bool VistaOrLater()
{
- return OsVersionInt() >= 60;
+ return VerifyVersionGreaterEqual(6, 0);
}
/// <summary>
@@ -601,7 +636,26 @@ public static bool VistaOrLater()
/// <returns>false means Vista or previous</returns>
public static bool Win7OrLater()
{
- return OsVersionInt() >= 61;
+ return VerifyVersionGreaterEqual(6, 1);
+ }
+
+ /// <summary>
+ /// Return if running on Windows8 or later
+ /// </summary>
+ /// <returns>true means Windows8 or later</returns>
+ /// <returns>false means Win7 or previous</returns>
+ public static bool Win8OrLater()
+ {
+ return VerifyVersionGreaterEqual(6, 2);
+ }
+
+ /// <summary>
+ /// Return a numeric value rappresenting OS version
+ /// </summary>
+ /// <returns>(OSMajorVersion * 10 + OSMinorVersion)</returns>
+ public static int OsVersionInt()
+ {
+ return (OSMajorVersion * 10 + OSMinorVersion);
}
#endregion
@@ -701,7 +755,110 @@ public static byte OSProductType
return osVersionInfo.wProductType;
}
}
+
+ #endregion
+
+ #region private methods
+
+ /// <summary>
+ /// Checks if OS is later then major / minor version
+ /// </summary>
+ /// <param name="majorVersion">Major OS version</param>
+ /// <param name="minorVersion">Minor OS version</param>
+ /// <returns>True if OS is later than version supplied as parameters</returns>
+ private static bool VerifyVersionGreaterEqual(int majorVersion, int minorVersion)
+ {
+ ulong condition = 0;
+ var osVersionInfo = new OSVERSIONINFOEX
+ {
+ dwOSVersionInfoSize = Marshal.SizeOf(typeof(OSVERSIONINFOEX)),
+ dwMajorVersion = majorVersion,
+ dwMinorVersion = minorVersion
+ };
+ condition = VerSetConditionMask(condition, VER_MAJORVERSION, VER_GREATER_EQUAL);
+ condition = VerSetConditionMask(condition, VER_MINORVERSION, VER_GREATER_EQUAL);
+ return VerifyVersionInfo(ref osVersionInfo, VER_MAJORVERSION | VER_MINORVERSION, condition);
+ }
+
+ /// <summary>
+ /// Checks OS for required service pack and build version
+ /// </summary>
+ /// <param name="majorVersion">Major OS version</param>
+ /// <param name="minorVersion">Minor OS version</param>
+ /// <param name="buildVersion">OS Build Version</param>
+ /// <param name="productType">OS Product Type</param>
+ /// <param name="servicePack">Minimum Major Service PackVersion</param>
+ /// <returns>True if Major / Minor OS versions match and service pack / build version are >= parameters</returns>
+ private static bool VerifyDesktopOSMinRequirement(int majorVersion, int minorVersion, int buildVersion, byte productType, short servicePack)
+ {
+ ulong condition = 0;
+ var osVersionInfo = new OSVERSIONINFOEX
+ {
+ dwOSVersionInfoSize = Marshal.SizeOf(typeof(OSVERSIONINFOEX)),
+ dwMajorVersion = majorVersion,
+ dwMinorVersion = minorVersion,
+ dwBuildNumber = buildVersion,
+ wProductType = productType,
+ wServicePackMajor = servicePack
+ };
+ condition = VerSetConditionMask(condition, VER_MAJORVERSION, VER_EQUAL);
+ condition = VerSetConditionMask(condition, VER_MINORVERSION, VER_EQUAL);
+ condition = VerSetConditionMask(condition, VER_PRODUCT_TYPE, VER_EQUAL);
+ condition = VerSetConditionMask(condition, VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL);
+ condition = VerSetConditionMask(condition, VER_BUILDVERSION, VER_GREATER_EQUAL);
+ return VerifyVersionInfo(ref osVersionInfo, VER_MAJORVERSION | VER_MINORVERSION | VER_PRODUCT_TYPE |
+ VER_SERVICEPACKMAJOR | VER_BUILDVERSION, condition);
+ }
+
+ /// <summary>
+ /// Checks whether the OS version reported via GetVersionEx matches that of VerifyVersionInfo
+ /// When running in compatibility mode GetVersionEx can return the value of the
+ /// compatibility setting rather than the actual OS
+ /// </summary>
+ /// <param name="majorVersion">Reported OS Major Version</param>
+ /// <param name="minorVersion">Reported OS Minor Version</param>
+ /// <param name="buildVersion">Reported OS Build Version</param>
+ /// <param name="productType">Reported OS Product Type</param>
+ /// <param name="servicePack">Reported OS Major Service Pack Version</param>
+ /// <returns>True if actual OS matches reported one</returns>
+ private static bool IsOSAsReported(int majorVersion, int minorVersion, int buildVersion, byte productType, short servicePack)
+ {
+ ulong condition = 0;
+ var osVersionInfo = new OSVERSIONINFOEX
+ {
+ dwOSVersionInfoSize = Marshal.SizeOf(typeof(OSVERSIONINFOEX)),
+ dwMajorVersion = majorVersion,
+ dwMinorVersion = minorVersion,
+ dwBuildNumber = buildVersion,
+ wProductType = productType,
+ wServicePackMajor = servicePack
+ };
+ condition = VerSetConditionMask(condition, VER_MAJORVERSION, VER_EQUAL);
+ condition = VerSetConditionMask(condition, VER_MINORVERSION, VER_EQUAL);
+ condition = VerSetConditionMask(condition, VER_PRODUCT_TYPE, VER_EQUAL);
+ condition = VerSetConditionMask(condition, VER_SERVICEPACKMAJOR, VER_EQUAL);
+ condition = VerSetConditionMask(condition, VER_BUILDVERSION, VER_EQUAL);
+ return VerifyVersionInfo(ref osVersionInfo, VER_MAJORVERSION | VER_MINORVERSION | VER_PRODUCT_TYPE |
+ VER_SERVICEPACKMAJOR | VER_BUILDVERSION, condition);
+ }
+
+ /// <summary>
+ /// Identifies if OS is a Windows Server OS
+ /// </summary>
+ /// <returns>True if OS is a Windows Server OS</returns>
+ private static bool IsServer()
+ {
+ ulong condition = 0;
+ var osVersionInfo = new OSVERSIONINFOEX
+ {
+ dwOSVersionInfoSize = Marshal.SizeOf(typeof(OSVERSIONINFOEX)),
+ wProductType = NT_WORKSTATION // note the check is that this is not equal as per MS documenation
+ };
+ condition = VerSetConditionMask(condition, VER_PRODUCT_TYPE, VER_EQUAL);
+ return !VerifyVersionInfo(ref osVersionInfo, VER_PRODUCT_TYPE, condition);
+ }
#endregion
+
}
}
View
2 Common-MP-TVE3/OsInfo/OSPrerequisites.cs
@@ -36,7 +36,7 @@ namespace OSPrerequisites
public class OSPrerequisites
{
private const string MSG_NOT_SUPPORTED =
- "Your platform is not supported by MediaPortal Team because it lacks critical hotfixes! \nPlease check our Wiki's requirements page.";
+ "Your platform is not supported by MediaPortal\nPlease check our Wiki's requirements page.";
private const string MSG_NOT_INSTALLABLE =
"Your platform is not supported and cannot be used for MediaPortal/TV-Server! \nPlease check our Wiki's requirements page.";
View
4 Common-MP-TVE3/SolutionInfo.cs
@@ -51,8 +51,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.2.100.0")]
-[assembly: AssemblyFileVersion("1.2.100.0")]
+[assembly: AssemblyVersion("1.2.200.0")]
+[assembly: AssemblyFileVersion("1.2.200.0")]
//[assembly: AssemblyInformationalVersion("")]
//[assembly: CompatibleVersion("1.1.8.*", "1.1.8.*")]
View
2 Tools/InstallationScripts/include/MediaPortalCurrentVersion.nsh
@@ -32,7 +32,7 @@
!define VER_MAJOR 1
!define VER_MINOR 2
-!define VER_REVISION 100
+!define VER_REVISION 200
#**********************************************************************************************************#
View
8 Tools/InstallationScripts/include/MediaPortalMacros.nsh
@@ -709,10 +709,18 @@ DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\MediaPort
${LOG_TEXT} "INFO" "OSTest::IsWin7"
StrCpy $0 "OSok"
+ ${ElseIf} ${IsWin8}
+ ${LOG_TEXT} "INFO" "OSTest::IsWin8"
+ StrCpy $0 "OSwarn"
+
${ElseIf} ${IsWin2008R2}
${LOG_TEXT} "INFO" "OSTest::IsWin2008R2"
StrCpy $0 "OSwarn"
+ ${ElseIf} ${IsWin2012}
+ ${LOG_TEXT} "INFO" "OSTest::IsWin2012"
+ StrCpy $0 "OSwarn"
+
${Else}
${LOG_TEXT} "INFO" "OSTest::unknown OS"
StrCpy $0 "OSabort"
View
13 Tools/InstallationScripts/include/WinVerEx.nsh
@@ -33,6 +33,19 @@
!include WinVer.nsh
+!define WINVER_8_NT 0x86020000 ;6.02.9200
+!define WINVER_8 0x06020000 ;6.02.9200
+!define WINVER_2012_NT 0x86020001 ;6.02.9200
+!define WINVER_2012 0x06020001 ;6.02.9200
+
+!macro __WinVer_DefineOSTestsEx Test Suffix
+!insertmacro __WinVer_DefineOSTest ${Test} 8 '${Suffix}'
+!insertmacro __WinVer_DefineOSTest ${Test} 2012 '${Suffix}'
+!macroend
+
+!insertmacro __WinVer_DefineOSTestsEx AtLeast ""
+!insertmacro __WinVer_DefineOSTestsEx Is _NT
+!insertmacro __WinVer_DefineOSTestsEx AtMost ""
!macro GetServicePack _major _minor
View
8 Tools/MediaPortal.DeployTool/DialogFlowHandler.cs
@@ -29,6 +29,8 @@ public enum DialogType
DownloadOnly,
DownloadSettings,
Upgrade,
+ SkinChoice,
+ ExtensionChoice,
WatchTV,
BASE_INSTALLATION_TYPE,
BASE_INSTALLATION_TYPE_WITHOUT_TVENGINE,
@@ -143,6 +145,12 @@ public DeployDialog GetDialogInstance(DialogType dlgType)
case DialogType.Finished:
dlg = new FinishedDlg();
break;
+ case DialogType.SkinChoice:
+ dlg = new SkinChoice();
+ break;
+ case DialogType.ExtensionChoice:
+ dlg = new ExtensionChoice();
+ break;
}
if (dlg != null)
{
View
23 Tools/MediaPortal.DeployTool/Images.Designer.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
-// Runtime Version:4.0.30319.1
+// Runtime Version:4.0.30319.269
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -157,5 +157,26 @@ internal class Images {
return ((System.Drawing.Bitmap)(obj));
}
}
+
+ internal static System.Drawing.Bitmap preview_default {
+ get {
+ object obj = ResourceManager.GetObject("preview_default", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ internal static System.Drawing.Bitmap preview_default_wide {
+ get {
+ object obj = ResourceManager.GetObject("preview_default_wide", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ internal static System.Drawing.Bitmap preview_titan {
+ get {
+ object obj = ResourceManager.GetObject("preview_titan", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
}
}
View
12 Tools/MediaPortal.DeployTool/Images.resx
@@ -117,7 +117,7 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
- <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Background_middle_with_MP_Box" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\Background middle with MP Box.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -160,4 +160,14 @@
<data name="exitIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>resources\exiticon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
+ <data name="preview_titan" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>Resources\preview_titan.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+ <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="preview_default" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>Resources\preview_default.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+ <data name="preview_default_wide" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>Resources\preview_default_wide.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
</root>
View
210 Tools/MediaPortal.DeployTool/InstallationChecks/LAVFilterMPEInstall.cs
@@ -23,76 +23,27 @@
using System.IO;
using System.Windows.Forms;
using Microsoft.Win32;
-using System.Xml;
-using System.Collections.Generic;
-using System.Net;
-using System.Text;
namespace MediaPortal.DeployTool.InstallationChecks
{
- internal class LAVFilterMPEInstall : IInstallationPackage
+ internal class LAVFilterMPEInstall : MPEInstall
{
- const string lavId = "b7738156-b6ec-4f0f-b1a8-b5010349d8b1";
- const string mpeUrl = "http://www.team-mediaportal.com/index.php?option=com_mtree&task=att_download&link_id=162&cf_id=24";
- const string mpeUpdateUrl = "http://www.team-mediaportal.com/index.php?option=com_mtree&task=att_download&link_id=162&cf_id=52";
- readonly string mpeUpdateFile = Application.StartupPath + "\\deploy\\" + "LAVFilters.xml";
- readonly string fileName = Application.StartupPath + "\\deploy\\" + "LAVFilters.mpe1";
- readonly string installedMpesPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + @"\Team MediaPortal\MediaPortal\Installer\V2\InstalledExtensions.xml";
-
- static Version onlineVersion = null;
-
- public string GetDisplayName()
+ public LAVFilterMPEInstall()
{
- return "LAV Filters" + (onlineVersion != null ? " " + onlineVersion.ToString() : "");
+ MpeId = "b7738156-b6ec-4f0f-b1a8-b5010349d8b1";
+ MpeURL ="http://www.team-mediaportal.com/index.php?option=com_mtree&task=att_download&link_id=162&cf_id=24";
+ MpeUpdateURL= "http://www.team-mediaportal.com/index.php?option=com_mtree&task=att_download&link_id=162&cf_id=52";
+ MpeUpdateFile = Application.StartupPath + "\\deploy\\" + "LAVFilters.xml";
+ FileName = Application.StartupPath + "\\deploy\\" + "LAVFilters.mpe1";
}
- public bool Download()
+ public override string GetDisplayName()
{
- HTTPDownload dlg = new HTTPDownload();
- return dlg.ShowDialog(mpeUrl, fileName, Utils.GetUserAgentOsString()) == DialogResult.OK;
- }
-
- public bool Install()
- {
- if (File.Exists(fileName))
- {
- string mpeExePath = Path.Combine(InstallationProperties.Instance["MPDir"], "MpeInstaller.exe");
- if (File.Exists(mpeExePath))
- {
- Process setup = Process.Start(mpeExePath, String.Format(@"/S ""{0}""", fileName));
- if (setup != null)
- {
- setup.WaitForExit();
- if (setup.ExitCode == 0)
- {
- return true;
- }
- }
- }
- }
- return false;
+ return "LAV Filters" + (OnlineVersion != null ? " " + OnlineVersion.ToString() : "");
}
- public bool UnInstall()
- {
- string mpeExePath = Path.Combine(InstallationProperties.Instance["MPDir"], "MpeInstaller.exe");
- if (File.Exists(mpeExePath))
- {
- Process setup = Process.Start(mpeExePath, String.Format(@"/Uninstall={0}", lavId));
- if (setup != null)
- {
- setup.WaitForExit();
- if (setup.ExitCode == 0)
- {
- return true;
- }
- }
- }
- return false;
- }
-
- public CheckResult CheckStatus()
+ public override CheckResult CheckStatus()
{
CheckResult result = default(CheckResult);
@@ -104,15 +55,15 @@ public CheckResult CheckStatus()
}
// check if mpe package is installed and also check if LAV is actually installed
- Version vMpeInstalled = GetInstalledLAVMpeVersion();
+ Version vMpeInstalled = GetInstalledMpeVersion();
Version vLavInstalled = GetInstalledLAVVersion();
if (vLavInstalled != null && vMpeInstalled != null)
{
- onlineVersion = GetLatestAvailableMPEVersion();
- if (onlineVersion != null)
+ OnlineVersion = GetLatestAvailableMpeVersion();
+ if (OnlineVersion != null)
{
- if (vMpeInstalled >= onlineVersion) result.state = CheckState.INSTALLED;
- else result.needsDownload = !File.Exists(fileName);
+ if (vMpeInstalled >= OnlineVersion) result.state = CheckState.INSTALLED;
+ else result.needsDownload = !File.Exists(FileName);
}
else
{
@@ -121,12 +72,18 @@ public CheckResult CheckStatus()
}
else
{
- result.needsDownload = !File.Exists(fileName);
+ result.needsDownload = !File.Exists(FileName);
}
+
+ if (InstallationProperties.Instance["InstallType"] == "download_only")
+ {
+ result.state = result.needsDownload == false ? CheckState.DOWNLOADED : CheckState.NOT_DOWNLOADED;
+ }
+
return result;
}
- Version GetInstalledLAVVersion()
+ static Version GetInstalledLAVVersion()
{
RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"CLSID\{B98D13E7-55DB-4385-A33D-09FD1BA26338}\InprocServer32");
if (key != null)
@@ -141,126 +98,5 @@ Version GetInstalledLAVVersion()
return null;
}
- Version GetInstalledLAVMpeVersion()
- {
- try
- {
- if (File.Exists(installedMpesPath))
- {
- XmlDocument xDoc = new XmlDocument();
- xDoc.Load(installedMpesPath);
- var versionNode = xDoc.SelectNodes("//PackageClass/GeneralInfo[Id/text()='" + lavId + "']/Version");
- List<Version> versions = new List<Version>();
- foreach (XmlElement versionNodee in versionNode)
- {
- versions.Add(new Version(
- int.Parse(versionNodee.SelectSingleNode("Major").InnerText),
- int.Parse(versionNodee.SelectSingleNode("Minor").InnerText),
- int.Parse(versionNodee.SelectSingleNode("Build").InnerText),
- int.Parse(versionNodee.SelectSingleNode("Revision").InnerText)));
- }
- if (versions.Count > 0)
- {
- versions.Sort();
- return versions[versions.Count - 1];
- }
- }
- }
- catch (Exception ex)
- {
- // error checking for latest installed MPE version
- }
- return null;
- }
-
- Version GetLatestAvailableMPEVersion()
- {
- if (!File.Exists(mpeUpdateFile) || (DateTime.Now - new FileInfo(mpeUpdateFile).LastWriteTime).TotalMinutes > 60)
- {
- bool downloadSuccess = DownloadMpeUpdateXml();
- if (!downloadSuccess && !File.Exists(mpeUpdateFile)) return null;
- }
- try
- {
- XmlDocument xDoc = new XmlDocument();
- xDoc.Load(mpeUpdateFile);
- var versionNode = xDoc.SelectNodes("//PackageClass/GeneralInfo/Version");
- List<Version> versions = new List<Version>();
- foreach (XmlElement versionNodee in versionNode)
- {
- versions.Add(new Version(
- int.Parse(versionNodee.SelectSingleNode("Major").InnerText),
- int.Parse(versionNodee.SelectSingleNode("Minor").InnerText),
- int.Parse(versionNodee.SelectSingleNode("Build").InnerText),
- int.Parse(versionNodee.SelectSingleNode("Revision").InnerText)));
- }
- if (versions.Count > 0)
- {
- versions.Sort();
- return versions[versions.Count - 1];
- }
- }
- catch (Exception ex)
- {
- // error checking for latest online version
- }
- return null;
- }
-
- /// <summary>
- /// Download the LAV Filter MPE update.xml that contains the information what is the latest version from the MediaPortal homepage and store it locally.
- /// </summary>
- /// <returns>true when the file was successfully downloaded and saved, otherwise false.</returns>
- bool DownloadMpeUpdateXml()
- {
- HttpWebResponse response = null;
- try
- {
- HttpWebRequest request = HttpWebRequest.Create(mpeUpdateUrl) as HttpWebRequest;
- if (request != null)
- {
- request.Proxy.Credentials = CredentialCache.DefaultCredentials;
- request.UserAgent = @"Mozilla/4.0 (compatible; MSIE 7.0;" + Utils.GetUserAgentOsString();
- request.UseDefaultCredentials = true;
- request.Timeout = 10000; // don't wait longer than 10 seconds for data to start receiving
- request.Accept = "*/*"; // we accept any content type
- request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate"); // we accept compressed content
- response = request.GetResponse() as HttpWebResponse;
- if (response == null) return false;
- Stream responseStream;
- if (response.ContentEncoding.ToLower().Contains("gzip"))
- {
- responseStream = new System.IO.Compression.GZipStream(response.GetResponseStream(), System.IO.Compression.CompressionMode.Decompress);
- }
- else if (response.ContentEncoding.ToLower().Contains("deflate"))
- {
- responseStream = new System.IO.Compression.DeflateStream(response.GetResponseStream(), System.IO.Compression.CompressionMode.Decompress);
- }
- else
- {
- responseStream = response.GetResponseStream();
- }
- // UTF8 is the default encoding as fallback
- Encoding responseEncoding = Encoding.UTF8;
- // try to get the response encoding if one was specified
- if (response.CharacterSet != null && !String.IsNullOrEmpty(response.CharacterSet.Trim())) responseEncoding = Encoding.GetEncoding(response.CharacterSet.Trim(new char[] { ' ', '"' }));
- using (StreamReader reader = new StreamReader(responseStream, responseEncoding, true))
- {
- string str = reader.ReadToEnd().Trim();
- File.WriteAllText(mpeUpdateFile, str);
- return true;
- }
- }
- }
- catch (Exception ex)
- {
- // error downloading update.xml for LAV Filter MPE
- }
- finally
- {
- if (response != null) ((IDisposable)response).Dispose();
- }
- return false;
- }
}
}
View
225 Tools/MediaPortal.DeployTool/InstallationChecks/MPEInstall.cs
@@ -0,0 +1,225 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Net;
+using System.Text;
+using System.Windows.Forms;
+using System.Xml;
+
+namespace MediaPortal.DeployTool.InstallationChecks
+{
+ /// <summary>
+ /// Template to easily add MPEI installs to deploy tool.
+ /// </summary>
+ internal abstract class MPEInstall : IInstallationPackage
+ {
+
+ #region variables and properties
+
+ protected static readonly string InstalledMpesPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + @"\Team MediaPortal\MediaPortal\Installer\V2\InstalledExtensions.xml";
+
+ protected Version OnlineVersion = null;
+
+ protected string MpeId { get; set; }
+ protected string MpeURL { get; set; }
+ protected string MpeUpdateURL { get; set; }
+ protected string MpeUpdateFile { get; set; }
+ protected string FileName { get; set; }
+
+ #endregion
+
+ #region IInstallationPackage implementations
+
+ public abstract string GetDisplayName();
+
+ public bool Install()
+ {
+ if (File.Exists(FileName))
+ {
+ string mpeExePath = Path.Combine(InstallationProperties.Instance["MPDir"], "MpeInstaller.exe");
+ if (File.Exists(mpeExePath))
+ {
+ Process setup = Process.Start(mpeExePath, String.Format(@"/S ""{0}""", FileName));
+ if (setup != null)
+ {
+ setup.WaitForExit();
+ if (setup.ExitCode == 0)
+ {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ public bool UnInstall()
+ {
+ string mpeExePath = Path.Combine(InstallationProperties.Instance["MPDir"], "MpeInstaller.exe");
+ if (File.Exists(mpeExePath))
+ {
+ Process setup = Process.Start(mpeExePath, String.Format(@"/Uninstall={0}", MpeId));
+ if (setup != null)
+ {
+ setup.WaitForExit();
+ if (setup.ExitCode == 0)
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public abstract CheckResult CheckStatus();
+
+ #endregion
+
+ #region MPE methods
+
+ public bool Download()
+ {
+ var dlg = new HTTPDownload();
+ return dlg.ShowDialog(MpeURL, FileName, Utils.GetUserAgentOsString()) == DialogResult.OK;
+ }
+
+ /// <summary>
+ /// Gets the MPE version number from an xml MPE file
+ /// </summary>
+ /// <param name="xmlLocation">Location of MPE xml file</param>
+ /// <param name="xPathExpression">xPath expression to get version number from</param>
+ /// <returns>Version in xml file</returns>
+ protected Version GetMpeVersionFromXml(string xmlLocation,string xPathExpression)
+ {
+ try
+ {
+ var xDoc = new XmlDocument();
+ xDoc.Load(xmlLocation);
+ var versionNode = xDoc.SelectNodes(xPathExpression);
+ var versions = new List<Version>();
+ if (versionNode == null)
+ {
+ return null;
+ }
+ foreach (XmlElement versionNodee in versionNode)
+ {
+ int iMajor = 0;
+ int iMinor = 0;
+ int iBuild = 0;
+ int iRevision = 0;
+ XmlNode xMajor = versionNodee.SelectSingleNode("Major");
+ XmlNode xMinor = versionNodee.SelectSingleNode("Minor");
+ XmlNode xBuild = versionNodee.SelectSingleNode("Build");
+ XmlNode xRevision = versionNodee.SelectSingleNode("Revision");
+ var bMajor = xMajor != null && int.TryParse(xMajor.InnerText, out iMajor);
+ var bMinor = xMinor != null && int.TryParse(xMinor.InnerText, out iMinor);
+ var bBuild = xBuild != null && int.TryParse(xBuild.InnerText, out iBuild);
+ var bRevision = xRevision != null && int.TryParse(xRevision.InnerText, out iRevision);
+
+ if (bMajor && bMinor && bBuild && bRevision)
+ {
+ versions.Add(new Version(iMajor, iMinor, iBuild, iRevision));
+ }
+ }
+ if (versions.Count > 0)
+ {
+ versions.Sort();
+ return versions[versions.Count - 1];
+ }
+
+ }
+ catch (Exception)
+ {
+ //problem reading xml file
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// Gets the current MPE version installed
+ /// </summary>
+ /// <returns>Version of installed MPE</returns>
+ protected Version GetInstalledMpeVersion()
+ {
+ if (File.Exists(InstalledMpesPath))
+ {
+ return null;
+ }
+ return GetMpeVersionFromXml(InstalledMpesPath, "//PackageClass/GeneralInfo[Id/text()='" + MpeId + "']/Version");
+ }
+
+ /// <summary>
+ /// Checks remote MPE file to check the latest version available
+ /// </summary>
+ /// <returns>Version of latest MPE available</returns>
+ protected Version GetLatestAvailableMpeVersion()
+ {
+ if (!File.Exists(MpeUpdateFile) || (DateTime.Now - new FileInfo(MpeUpdateFile).LastWriteTime).TotalMinutes > 60)
+ {
+ bool downloadSuccess = DownloadMpeUpdateXml();
+ if (!downloadSuccess && !File.Exists(MpeUpdateFile)) return null;
+ }
+ return GetMpeVersionFromXml(MpeUpdateFile, "//PackageClass/GeneralInfo/Version");
+ }
+
+ /// <summary>
+ /// Download the MPE update.xml that contains the information what is the latest version from the MediaPortal homepage and store it locally.
+ /// </summary>
+ /// <returns>true when the file was successfully downloaded and saved, otherwise false.</returns>
+ protected bool DownloadMpeUpdateXml()
+ {
+ HttpWebResponse response = null;
+ try
+ {
+ var request = HttpWebRequest.Create(MpeUpdateURL) as HttpWebRequest;
+ if (request != null)
+ {
+ request.Proxy.Credentials = CredentialCache.DefaultCredentials;
+ request.UserAgent = @"Mozilla/4.0 (compatible; MSIE 7.0;" + Utils.GetUserAgentOsString();
+ request.UseDefaultCredentials = true;
+ request.Timeout = 10000; // don't wait longer than 10 seconds for data to start receiving
+ request.Accept = "*/*"; // we accept any content type
+ request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate"); // we accept compressed content
+ response = request.GetResponse() as HttpWebResponse;
+ if (response == null) return false;
+ Stream responseStream;
+ if (response.ContentEncoding.ToLower().Contains("gzip"))
+ {
+ responseStream = new System.IO.Compression.GZipStream(response.GetResponseStream(), System.IO.Compression.CompressionMode.Decompress);
+ }
+ else if (response.ContentEncoding.ToLower().Contains("deflate"))
+ {
+ responseStream = new System.IO.Compression.DeflateStream(response.GetResponseStream(), System.IO.Compression.CompressionMode.Decompress);
+ }
+ else
+ {
+ responseStream = response.GetResponseStream();
+ }
+ // UTF8 is the default encoding as fallback
+ var responseEncoding = Encoding.UTF8;
+ // try to get the response encoding if one was specified
+ if (response.CharacterSet != null && !String.IsNullOrEmpty(response.CharacterSet.Trim())) responseEncoding = Encoding.GetEncoding(response.CharacterSet.Trim(new char[] { ' ', '"' }));
+ using (var reader = new StreamReader(responseStream, responseEncoding, true))
+ {
+ string str = reader.ReadToEnd().Trim();
+ File.WriteAllText(MpeUpdateFile, str);
+ return true;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ // error downloading update.xml for MPE
+ }
+ finally
+ {
+ if (response != null) ((IDisposable)response).Dispose();
+ }
+ return false;
+ }
+
+ #endregion
+
+ }
+}
View
34 Tools/MediaPortal.DeployTool/InstallationChecks/MediaPortalChecker.cs
@@ -49,14 +49,31 @@ public bool Install()
{
return false;
}
+
+ //if user has chosen a skin then update deploy.xml so this is picked up by MP
+ //if no skin has been chosed (user has selected one click install) then set one
+ var chosenSkin = InstallationProperties.Instance.Get("ChosenSkin");
+ if (string.IsNullOrEmpty(chosenSkin))
+ {
+ chosenSkin = "Titan";
+ }
+
+ if (InstallationProperties.Instance["UpdateMode"] == "yes")
+ {
+ if (chosenSkin != "[Existing]")
+ {
+ Utils.SetDeployXml("skin", "name", chosenSkin);
+ }
+ }
+
string targetDir = InstallationProperties.Instance["MPDir"];
- //NSIS installer need to to if it's a fresh install or an update (chefkoch)
+ //NSIS installer need to know if it's a fresh install or an update (chefkoch)
string UpdateMode = InstallationProperties.Instance["UpdateMode"] == "yes" ? "/UpdateMode" : string.Empty;
//NSIS installer doesn't want " in parameters (chefkoch)
- //Rember that /D must be the last one (chefkoch)
- Process setup = Process.Start(_fileName, String.Format("/S /DeployMode {0} /D={1}", UpdateMode, targetDir));
+ //Remember that /D must be the last one (chefkoch)
+ Process setup = Process.Start(_fileName, String.Format("/S /DeployMode --DeployMode {0} /D={1}", UpdateMode, targetDir));
if (setup != null)
{
setup.WaitForExit();
@@ -66,6 +83,17 @@ public bool Install()
{
Utils.NotifyReboot(GetDisplayName());
}
+
+ // installer backups existing folder so need to write deploy.xml after installation
+ // else it will get backed up
+ if (InstallationProperties.Instance["UpdateMode"] != "yes")
+ {
+ if (chosenSkin != "[Existing]")
+ {
+ Utils.SetDeployXml("skin", "name", chosenSkin);
+ }
+ }
+
return true;
}
}
View
82 Tools/MediaPortal.DeployTool/InstallationChecks/TitanExtensionInstall.cs
@@ -0,0 +1,82 @@
+#region Copyright (C) 2005-2011 Team MediaPortal
+
+// Copyright (C) 2005-2011 Team MediaPortal
+// http://www.team-mediaportal.com
+//
+// MediaPortal is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// MediaPortal is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with MediaPortal. If not, see <http://www.gnu.org/licenses/>.
+
+#endregion
+
+using System;
+using System.IO;
+using System.Windows.Forms;
+
+namespace MediaPortal.DeployTool.InstallationChecks
+{
+ internal class TitanExtensionInstall : MPEInstall
+ {
+
+ public TitanExtensionInstall()
+ {
+ MpeId = "d2c4076c-f3d0-4d84-9a74-83fbbd15c940";
+ MpeURL = "http://install.team-mediaportal.com/MP1/skinUpdates/titan/TitanExtended.mpe1";
+ MpeUpdateURL = "http://install.team-mediaportal.com/MP1/skinUpdates/titan/TitanExtendedUpdate.xml";
+ MpeUpdateFile = Application.StartupPath + "\\deploy\\" + "TitanExtendedUpdate.xml";
+ FileName = Application.StartupPath + "\\deploy\\" + "TitanExtended.mpe1";
+ }
+
+ public override string GetDisplayName()
+ {
+ return "Titan Extension Plugin";
+ }
+
+ public override CheckResult CheckStatus()
+ {
+ CheckResult result = default(CheckResult);
+
+ if (InstallationProperties.Instance["ConfigureMediaPortalTitanExt"] == "No")
+ {
+ result.state = CheckState.SKIPPED;
+ return result;
+ }
+
+ Version vMpeInstalled = GetInstalledMpeVersion();
+ if (vMpeInstalled != null)
+ {
+ OnlineVersion = GetLatestAvailableMpeVersion();
+ if (OnlineVersion != null)
+ {
+ if (vMpeInstalled >= OnlineVersion) result.state = CheckState.INSTALLED;
+ else result.needsDownload = !File.Exists(FileName);
+ }
+ else
+ {
+ result.state = CheckState.VERSION_LOOKUP_FAILED;
+ }
+ }
+ else
+ {
+ result.needsDownload = !File.Exists(FileName);
+ }
+
+ if (InstallationProperties.Instance["InstallType"] == "download_only")
+ {
+ result.state = result.needsDownload == false ? CheckState.DOWNLOADED : CheckState.NOT_DOWNLOADED;
+ }
+
+ return result;
+ }
+
+ }
+}
View
6 Tools/MediaPortal.DeployTool/InstallationChecks/TvPluginChecker.cs
@@ -49,12 +49,12 @@ public bool Install()
return false;
}
- //NSIS installer need to to if it's a fresh install or an update (chefkoch)
+ //NSIS installer need to know if it's a fresh install or an update (chefkoch)
string UpdateMode = InstallationProperties.Instance["UpdateMode"] == "yes" ? "/UpdateMode" : string.Empty;
//NSIS installer doesn't want " in parameters (chefkoch)
- //Rember that /D must be the last one (chefkoch)
- Process setup = Process.Start(_fileName, String.Format("/S /noServer /DeployMode {0}", UpdateMode));
+ //Remember that /D must be the last one (chefkoch)
+ Process setup = Process.Start(_fileName, String.Format("/S /noServer /DeployMode --DeployMode {0}", UpdateMode));
if (setup != null)
{
View
17 Tools/MediaPortal.DeployTool/InstallationChecks/TvServerChecker.cs
@@ -56,15 +56,22 @@ public bool Install()
string pwdparam = string.Empty;
if (!String.IsNullOrEmpty(dbtype))
{
- sqlparam = dbtype == "msSQL2005" ? "/DeploySql:sqlserver" : "/DeploySql:mysql";
- pwdparam = "/DeployPwd:" + InstallationProperties.Instance["DBMSPassword"];
+ if (dbtype == "DBAlreadyInstalled")
+ {
+ sqlparam = "--DeploySql:DBAlreadyInstalled";
+ }
+ else
+ {
+ sqlparam = dbtype == "msSQL2005" ? "--DeploySql:sqlserver" : "--DeploySql:mysql";
+ }
+ pwdparam = "--DeployPwd:" + InstallationProperties.Instance["DBMSPassword"];
}
//NSIS installer doesn't want " in parameters (chefkoch)
- //Rember that /D must be the last one (chefkoch)
+ //Remember that /D must be the last one (chefkoch)
Process setup = Process.Start(_fileName,
- String.Format("/S /noClient /DeployMode {0} {1} {2} /D={3}", UpdateMode, sqlparam,
- pwdparam, targetDir));
+ String.Format("/S /noClient /DeployMode --DeployMode {0} {1} {2} /D={3}", sqlparam, pwdparam,
+ UpdateMode, targetDir));
if (setup != null)
{
View
72 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.csproj
@@ -17,7 +17,23 @@
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<ApplicationManifest>MediaPortal.DeployTool.exe.manifest</ApplicationManifest>
- <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -45,7 +61,7 @@
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
+ <WarningLevel>1</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
@@ -57,20 +73,32 @@
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
+ <PropertyGroup>
+ <StartupObject>
+ </StartupObject>
+ </PropertyGroup>
<ItemGroup>
- <Reference Include="System" />
+ <Reference Include="System">
+ <Name>System</Name>
+ </Reference>
+ <Reference Include="System.Core">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
+ <Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\Common-MP-TVE3\OsInfo\OSInfo.cs">
<Link>OSInfo.cs</Link>
</Compile>
<Compile Include="InstallationChecks\LAVFilterMPEInstall.cs" />
+ <Compile Include="InstallationChecks\MPEInstall.cs" />
<Compile Include="InstallationChecks\OldVCRedistChecker.cs" />
+ <Compile Include="InstallationChecks\TitanExtensionInstall.cs" />
<Compile Include="InstallationChecks\VCRedistChecker.cs" />
<Compile Include="InstallationChecks\DiskSpaceChecker.cs" />
<Compile Include="InstallationChecks\InternetChecker.cs" />
@@ -232,6 +260,12 @@
<DependentUpon>BaseInstallationTypeWithoutTvEngineDlg.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
+ <EmbeddedResource Include="Sections\ExtensionChoice.resx">
+ <DependentUpon>ExtensionChoice.cs</DependentUpon>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Sections\SkinChoice.resx">
+ <DependentUpon>SkinChoice.cs</DependentUpon>
+ </EmbeddedResource>
<EmbeddedResource Include="Sections\UpgradeDlg.resx">
<DependentUpon>UpgradeDlg.cs</DependentUpon>
<SubType>Designer</SubType>
@@ -301,6 +335,18 @@
<Compile Include="Sections\BaseInstallationTypeWithoutTvEngineDlg.Designer.cs">
<DependentUpon>BaseInstallationTypeWithoutTvEngineDlg.cs</DependentUpon>
</Compile>
+ <Compile Include="Sections\ExtensionChoice.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="Sections\ExtensionChoice.designer.cs">
+ <DependentUpon>ExtensionChoice.cs</DependentUpon>
+ </Compile>
+ <Compile Include="Sections\SkinChoice.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="Sections\SkinChoice.designer.cs">
+ <DependentUpon>SkinChoice.cs</DependentUpon>
+ </Compile>
<Compile Include="Sections\UpgradeDlg.cs">
<SubType>UserControl</SubType>
</Compile>
@@ -436,6 +482,9 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Install.ico" />
+ <None Include="Resources\preview_default_wide.png" />
+ <None Include="Resources\preview_titan.png" />
+ <None Include="Resources\preview_default.png" />
<None Include="MediaPortal.DeployTool.exe.manifest" />
<None Include="Resources\MePo_average.png" />
<None Include="Resources\MePo_smart.png" />
@@ -465,6 +514,23 @@
<Isolated>False</Isolated>
</COMReference>
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
View
6 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.de-AT.resx
@@ -506,4 +506,10 @@ und Stuttering empfehlen wir Windows AERO zu aktivieren. </value>
<value>Eine Microsoft Komponente benötigt einen Neustart.
Bitte fahren Sie nach dem Neustart mit der Installation fort.</value>
</data>
+ <data name="SkinChoice_labelExistingSkin" xml:space="preserve">
+ <value>Existierenden Skin verwenden (Wird auf Kompatibilität geprüft)</value>
+ </data>
+ <data name="SkinChoice_labelSectionHeader" xml:space="preserve">
+ <value>Skin auswählen</value>
+ </data>
</root>
View
8 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.de-DE.resx
@@ -506,7 +506,13 @@ und Stuttering empfehlen wir Windows AERO zu aktivieren. </value>
<value>Eine Microsoft Komponente benötigt einen Neustart.
Bitte fahren Sie nach dem Neustart mit der Installation fort.</value>
</data>
- <data name="MPSettings_checkBoxLAV" xml:space="preserve">
+ <data name="ExtensionChoice_LAV" xml:space="preserve">
<value>LAV Filter installieren um gängige Mediendateien abspielen zu können</value>
</data>
+ <data name="SkinChoice_labelExistingSkin" xml:space="preserve">
+ <value>Existierenden Skin verwenden (Wird auf Kompatibilität geprüft)</value>
+ </data>
+ <data name="SkinChoice_labelSectionHeader" xml:space="preserve">
+ <value>Skin auswählen</value>
+ </data>
</root>
View
3 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.fr-FR.resx
@@ -510,4 +510,7 @@ L'activation d'AERO peut réduire également l'utilisation du processeur, ce qui
<value>Un redémarrage est nécessaire par un composant Microsoft.
Merci de procéder au redémarrage avant de poursuivre l'installation de MediaPortal.</value>
</data>
+ <data name="ExtensionChoice_LAV" xml:space="preserve">
+ <value>Installez LAV Filtres pour permettre la lecture de nombreux formats audio vidéo</value>
+ </data>
</root>
View
6 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.it-IT.resx
@@ -510,4 +510,10 @@ Abilitando AERO si ridurrà anche l'uso della CPU, e il vostro HTPC sarà silenz
<value>E' richiesto un riavvio da un componente Microsoft.
Procedere con tale operazione prima di continuare l'installazione di MediaPortal.</value>
</data>
+ <data name="SkinChoice_labelExistingSkin" xml:space="preserve">
+ <value>Usa Skin esistente (ne sarà verificata la compatibilità)</value>
+ </data>
+ <data name="SkinChoice_labelSectionHeader" xml:space="preserve">
+ <value>Scegli una Skin</value>
+ </data>
</root>
View
9 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.nb-NO.resx
@@ -504,4 +504,13 @@ Overfør denne folderen til din HTPC. Start installasjonen ved å kjøre "MediaP
Vær oppmerksom på at AERO trengs for å ungå hakking ved avspilling.
Ved å aktivere AERO vil også CPU bruken gå ned, som igjen gjør at din HTPC er kaldere og mer stille.</value>
</data>
+ <data name="SkinChoice_labelExistingSkin" xml:space="preserve">
+ <value>Bruk eksisterende skinn (Vil bli sjekket om det er kompatibelt)</value>
+ </data>
+ <data name="SkinChoice_labelSectionHeader" xml:space="preserve">
+ <value>Velg et skinn</value>
+ </data>
+ <data name="String1" xml:space="preserve">
+ <value>SkinChoice_labelSectionHeader</value>
+ </data>
</root>
View
6 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.nl-NL.resx
@@ -512,4 +512,10 @@ Inschakelen van AERO zal ook het processor gebruik verminderen, dus het maakt u
<value>Een onderdeel van Microsoft vereist een herstart.
Ga a.u.b. pas verder met de met de installatie van MediaPortal na de herstart.</value>
</data>
+ <data name="SkinChoice_labelExistingSkin" xml:space="preserve">
+ <value>Gebruik huidige Skin (Compatibiliteit word gecontroleerd)</value>
+ </data>
+ <data name="SkinChoice_labelSectionHeader" xml:space="preserve">
+ <value>Kies Skin</value>
+ </data>
</root>
View
20 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.resx
@@ -513,7 +513,25 @@ Enabling AERO will also reduce CPU usage, thus making your HTPC run cooler and q
<value>A reboot is needed by a Microsoft component.
Please proceed with it before continuing with MediaPortal installation.</value>
</data>
- <data name="MPSettings_checkBoxLAV" xml:space="preserve">
+ <data name="ExtensionChoice_LAV" xml:space="preserve">
<value>Install LAV Filters to enable playback of many common audio and video formats</value>
</data>
+ <data name="SkinChoice_labelSectionHeader" xml:space="preserve">
+ <value>Choose a Skin</value>
+ </data>
+ <data name="SkinChoice_labelExistingSkin" xml:space="preserve">
+ <value>Use Existing Skin (This will be checked for compatibility)</value>
+ </data>
+ <data name="ExtensionChoice_MoreInfo" xml:space="preserve">
+ <value>More Info</value>
+ </data>
+ <data name="ExtensionChoice_OtherExtensions" xml:space="preserve">
+ <value>Browse other extensions</value>
+ </data>
+ <data name="ExtensionChoice_Titan" xml:space="preserve">
+ <value>Install extension that adds support for popular third party plugins</value>
+ </data>
+ <data name="ExtensionChoice_Title" xml:space="preserve">
+ <value>Recommended Extensions</value>
+ </data>
</root>
View
6 Tools/MediaPortal.DeployTool/MediaPortal.DeployTool.sv-SE.resx
@@ -507,4 +507,10 @@ Genom att använda AERO minskas även CPU belastningen vilket kan leda till att
<value>En omstart av datorn krävs av en Microsoft-komponent.
Innan du fortsätter med installationen av MediaPortal måste du starta om datorn.</value>
</data>
+ <data name="SkinChoice_labelExistingSkin" xml:space="preserve">
+ <value>Använd ditt aktuella Skin (detta kommer att kompatibilitetstestas)</value>
+ </data>
+ <data name="SkinChoice_labelSectionHeader" xml:space="preserve">
+ <value>Välj Skin</value>
+ </data>
</root>
View
2 Tools/MediaPortal.DeployTool/Properties/Settings.Designer.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
-// Runtime Version:4.0.30319.1
+// Runtime Version:4.0.30319.269
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
View
BIN Tools/MediaPortal.DeployTool/Resources/preview_default.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN Tools/MediaPortal.DeployTool/Resources/preview_default_wide.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN Tools/MediaPortal.DeployTool/Resources/preview_titan.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
2 Tools/MediaPortal.DeployTool/Sections/BaseInstallationTypeDlg.cs
@@ -52,7 +52,7 @@ public override DeployDialog GetNextDialog()
{
if (rbOneClickChecked)
{
- return DialogFlowHandler.Instance.GetDialogInstance(DialogType.Installation);
+ return DialogFlowHandler.Instance.GetDialogInstance(DialogType.ExtensionChoice);
}
return DialogFlowHandler.Instance.GetDialogInstance(DialogType.CUSTOM_INSTALLATION_TYPE);
}
View
2 Tools/MediaPortal.DeployTool/Sections/BaseInstallationTypeWithoutTvEngineDlg.cs
@@ -53,7 +53,7 @@ public override DeployDialog GetNextDialog()
InstallationProperties.Instance.Set("InstallType", "mp_only");
if (rbOneClickChecked)
{
- return DialogFlowHandler.Instance.GetDialogInstance(DialogType.Installation);
+ return DialogFlowHandler.Instance.GetDialogInstance(DialogType.ExtensionChoice);
}
return DialogFlowHandler.Instance.GetDialogInstance(DialogType.MPSettings);
}
View
97 Tools/MediaPortal.DeployTool/Sections/ExtensionChoice.cs
@@ -0,0 +1,97 @@
+#region Copyright (C) 2005-2011 Team MediaPortal
+
+// Copyright (C) 2005-2011 Team MediaPortal
+// http://www.team-mediaportal.com
+//
+// MediaPortal is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// MediaPortal is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with MediaPortal. If not, see <http://www.gnu.org/licenses/>.
+
+#endregion
+
+using System;
+using System.Windows.Forms;
+
+namespace MediaPortal.DeployTool.Sections
+{
+ public partial class ExtensionChoice : DeployDialog
+ {
+
+ public ExtensionChoice()
+ {
+ InitializeComponent();
+ type = DialogType.ExtensionChoice;
+ labelSectionHeader.Text = "";
+
+ UpdateUI();
+ }
+
+ #region IDeployDialog interface
+
+ public override void UpdateUI()
+ {
+ lblLAV.Text = Localizer.GetBestTranslation("ExtensionChoice_LAV");
+ lblTitan.Text = Localizer.GetBestTranslation("ExtensionChoice_Titan");
+ linkExtensions.Text = Localizer.GetBestTranslation("ExtensionChoice_OtherExtensions");
+ linkLAV.Text = Localizer.GetBestTranslation("ExtensionChoice_MoreInfo");
+ linkTitan.Text = Localizer.GetBestTranslation("ExtensionChoice_MoreInfo");
+ lblRecommended.Text = Localizer.GetBestTranslation("ExtensionChoice_Title");
+ }
+
+ public override DeployDialog GetNextDialog()
+ {
+ return DialogFlowHandler.Instance.GetDialogInstance(DialogType.Installation);
+ }
+
+ public override bool SettingsValid()
+ {
+ return true;
+ }
+
+ public override void SetProperties()
+ {
+ InstallationProperties.Instance.Set("ConfigureMediaPortalTitanExt", chkTitan.Checked ? "Yes" : "No");
+ InstallationProperties.Instance.Set("ConfigureMediaPortalLAV", chkLAV.Checked ? "1" : "0");
+ }
+
+ #endregion
+
+ #region Hyperlink handler
+
+ private static void OpenURL(string url)
+ {
+ try
+ {
+ System.Diagnostics.Process.Start(url);
+ }
+ catch (System.Exception) { }
+ }
+
+ private void linkExtensions_LinkClicked_1(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ OpenURL("http://www.team-mediaportal.com/extensions");
+ }
+
+ private void linkLAV_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ OpenURL("http://wiki.team-mediaportal.com/1_MEDIAPORTAL_1/17_Extensions/3_Plugins/LAV_Filters");
+ }
+
+ private void linkTitan_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ OpenURL("http://wiki.team-mediaportal.com/1_MEDIAPORTAL_1/17_Extensions/4_Skins/Titan_Extended");
+ }
+
+ #endregion
+
+ }
+}
View
196 Tools/MediaPortal.DeployTool/Sections/ExtensionChoice.designer.cs
@@ -0,0 +1,196 @@
+namespace MediaPortal.DeployTool.Sections
+{
+ partial class ExtensionChoice
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.chkTitan = new System.Windows.Forms.CheckBox();
+ this.gtpTitan = new System.Windows.Forms.GroupBox();
+ this.linkTitan = new System.Windows.Forms.LinkLabel();
+ this.lblTitan = new System.Windows.Forms.Label();
+ this.grpLAV = new System.Windows.Forms.GroupBox();
+ this.linkLAV = new System.Windows.Forms.LinkLabel();
+ this.lblLAV = new System.Windows.Forms.Label();
+ this.chkLAV = new System.Windows.Forms.CheckBox();
+ this.linkExtensions = new System.Windows.Forms.LinkLabel();
+ this.lblRecommended = new System.Windows.Forms.Label();
+ this.gtpTitan.SuspendLayout();
+ this.grpLAV.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // chkTitan
+ //
+ this.chkTitan.AutoSize = true;
+ this.chkTitan.Checked = true;
+ this.chkTitan.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.chkTitan.ForeColor = System.Drawing.Color.White;
+ this.chkTitan.Location = new System.Drawing.Point(15, 19);
+ this.chkTitan.Name = "chkTitan";
+ this.chkTitan.Size = new System.Drawing.Size(98, 17);
+ this.chkTitan.TabIndex = 9;
+ this.chkTitan.Text = "Titan Extended";
+ this.chkTitan.UseVisualStyleBackColor = true;
+ //
+ // gtpTitan
+ //
+ this.gtpTitan.Controls.Add(this.linkTitan);
+ this.gtpTitan.Controls.Add(this.lblTitan);
+ this.gtpTitan.Controls.Add(this.chkTitan);
+ this.gtpTitan.Location = new System.Drawing.Point(53, 59);
+ this.gtpTitan.Name = "gtpTitan";
+ this.gtpTitan.Size = new System.Drawing.Size(513, 70);
+ this.gtpTitan.TabIndex = 11;
+ this.gtpTitan.TabStop = false;
+ //
+ // linkTitan
+ //
+ this.linkTitan.AutoSize = true;
+ this.linkTitan.LinkColor = System.Drawing.Color.White;
+ this.linkTitan.Location = new System.Drawing.Point(437, 50);
+ this.linkTitan.Name = "linkTitan";
+ this.linkTitan.Size = new System.Drawing.Size(52, 13);
+ this.linkTitan.TabIndex = 11;
+ this.linkTitan.TabStop = true;
+ this.linkTitan.Text = "More Info";
+ this.linkTitan.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkTitan_LinkClicked);
+ //
+ // lblTitan
+ //
+ this.lblTitan.AutoSize = true;
+ this.lblTitan.ForeColor = System.Drawing.Color.White;
+ this.lblTitan.Location = new System.Drawing.Point(36, 39);
+ this.lblTitan.Name = "lblTitan";
+ this.lblTitan.Size = new System.Drawing.Size(300, 13);
+ this.lblTitan.TabIndex = 10;
+ this.lblTitan.Text = "Install extension that adds support for popular third party plugins";
+ //
+ // grpLAV
+ //
+ this.grpLAV.Controls.Add(this.linkLAV);
+ this.grpLAV.Controls.Add(this.lblLAV);
+ this.grpLAV.Controls.Add(this.chkLAV);
+ this.grpLAV.Location = new System.Drawing.Point(53, 135);
+ this.grpLAV.Name = "grpLAV";
+ this.grpLAV.Size = new System.Drawing.Size(513, 70);
+ this.grpLAV.TabIndex = 12;
+ this.grpLAV.TabStop = false;
+ //
+ // linkLAV
+ //
+ this.linkLAV.AutoSize = true;
+ this.linkLAV.LinkColor = System.Drawing.Color.White;
+ this.linkLAV.Location = new System.Drawing.Point(437, 50);
+ this.linkLAV.Name = "linkLAV";
+ this.linkLAV.Size = new System.Drawing.Size(52, 13);
+ this.linkLAV.TabIndex = 11;
+ this.linkLAV.TabStop = true;
+ this.linkLAV.Text = "More Info";
+ this.linkLAV.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLAV_LinkClicked);
+ //
+ // lblLAV
+ //
+ this.lblLAV.AutoSize = true;
+ this.lblLAV.ForeColor = System.Drawing.Color.White;
+ this.lblLAV.Location = new System.Drawing.Point(36, 39);
+ this.lblLAV.Name = "lblLAV";
+ this.lblLAV.Size = new System.Drawing.Size(379, 13);
+ this.lblLAV.TabIndex = 10;
+ this.lblLAV.Text = "Install LAV Filters to enable playback of many common audio and video formats";
+ //
+ // chkLAV
+ //
+ this.chkLAV.AutoSize = true;
+ this.chkLAV.Checked = true;
+ this.chkLAV.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.chkLAV.ForeColor = System.Drawing.Color.White;
+ this.chkLAV.Location = new System.Drawing.Point(15, 19);
+ this.chkLAV.Name = "chkLAV";
+ this.chkLAV.Size = new System.Drawing.Size(76, 17);