diff --git a/DeveloperToolsForUPnPTechnologies/UPNPAVCDSML/MediaObject.cs b/DeveloperToolsForUPnPTechnologies/UPNPAVCDSML/MediaObject.cs index 45d942b..2f3cde3 100644 --- a/DeveloperToolsForUPnPTechnologies/UPNPAVCDSML/MediaObject.cs +++ b/DeveloperToolsForUPnPTechnologies/UPNPAVCDSML/MediaObject.cs @@ -1757,6 +1757,8 @@ out ArrayList proposedChildren instantiateTheseForChildItems, instantiateTheseForChildContainers ); + if (String.IsNullOrEmpty(this.Title)) { + this.Title = "(no title found)"; this.ThrowExceptionIfBadTitle(this.Title); this.ThrowExceptionIfBadClass(this.Class); diff --git a/SWYH Installer.iss b/SWYH Installer.iss index 17f4d45..371998d 100644 --- a/SWYH Installer.iss +++ b/SWYH Installer.iss @@ -1,17 +1,22 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + #define MyAppName "Stream What You Hear (SWYH)" +#define MyAppVersion "1.5" #define MyAppPublisher "Sebastien.warin.fr" #define MyAppURL "http://www.streamwhatyouhear.com" #define MyAppExeName "SWYH.exe" -; Updated by the build server -#define ShortVersion "1.0" -#define FullVersion "1.0-dev" +#define FullVersion "1.5.217.1" [Setup] +; NOTE: The value of AppId uniquely identifies this application. +; Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) AppId={{5FBEA9D3-668E-4B88-BF6C-E1BCF441ECFD} AppName={#MyAppName} -AppVersion={#ShortVersion} -AppVerName={#MyAppName} {#FullVersion} +AppVersion={#MyAppVersion} +;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} @@ -24,6 +29,7 @@ OutputBaseFilename=SWYH_{#FullVersion} SetupIconFile=SWYH\Resources\Icons\swyh128.ico Compression=lzma SolidCompression=yes +ArchitecturesInstallIn64BitMode=x64 [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" diff --git a/SWYH.sln b/SWYH.sln index 69863d4..fa1ad0e 100644 --- a/SWYH.sln +++ b/SWYH.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.28307.645 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29403.142 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SWYH", "SWYH\SWYH.csproj", "{9F7F5728-3DC1-4FA2-8D4B-F91AA3ABA754}" EndProject @@ -63,8 +63,8 @@ Global {584ED187-8F2A-4B58-A266-85F3F212B092}.Release|Any CPU.Build.0 = Release|Any CPU {584ED187-8F2A-4B58-A266-85F3F212B092}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {584ED187-8F2A-4B58-A266-85F3F212B092}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {584ED187-8F2A-4B58-A266-85F3F212B092}.Release|x64.ActiveCfg = Release|x64 - {584ED187-8F2A-4B58-A266-85F3F212B092}.Release|x64.Build.0 = Release|x64 + {584ED187-8F2A-4B58-A266-85F3F212B092}.Release|x64.ActiveCfg = Release|Any CPU + {584ED187-8F2A-4B58-A266-85F3F212B092}.Release|x64.Build.0 = Release|Any CPU {584ED187-8F2A-4B58-A266-85F3F212B092}.Release|x86.ActiveCfg = Release|Any CPU {B2439738-5F46-4E59-95A1-92C3DF38696F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B2439738-5F46-4E59-95A1-92C3DF38696F}.Debug|Any CPU.Build.0 = Debug|Any CPU @@ -77,6 +77,7 @@ Global {B2439738-5F46-4E59-95A1-92C3DF38696F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {B2439738-5F46-4E59-95A1-92C3DF38696F}.Release|Mixed Platforms.Build.0 = Release|Any CPU {B2439738-5F46-4E59-95A1-92C3DF38696F}.Release|x64.ActiveCfg = Release|Any CPU + {B2439738-5F46-4E59-95A1-92C3DF38696F}.Release|x64.Build.0 = Release|Any CPU {B2439738-5F46-4E59-95A1-92C3DF38696F}.Release|x86.ActiveCfg = Release|Any CPU {E01B6019-ACC6-40A6-A511-48D285D51C40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E01B6019-ACC6-40A6-A511-48D285D51C40}.Debug|Any CPU.Build.0 = Debug|Any CPU @@ -89,6 +90,7 @@ Global {E01B6019-ACC6-40A6-A511-48D285D51C40}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {E01B6019-ACC6-40A6-A511-48D285D51C40}.Release|Mixed Platforms.Build.0 = Release|Any CPU {E01B6019-ACC6-40A6-A511-48D285D51C40}.Release|x64.ActiveCfg = Release|Any CPU + {E01B6019-ACC6-40A6-A511-48D285D51C40}.Release|x64.Build.0 = Release|Any CPU {E01B6019-ACC6-40A6-A511-48D285D51C40}.Release|x86.ActiveCfg = Release|Any CPU {8EA0E595-45EC-40C1-82CE-269F4FA9EBB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8EA0E595-45EC-40C1-82CE-269F4FA9EBB3}.Debug|Any CPU.Build.0 = Debug|Any CPU @@ -101,6 +103,7 @@ Global {8EA0E595-45EC-40C1-82CE-269F4FA9EBB3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {8EA0E595-45EC-40C1-82CE-269F4FA9EBB3}.Release|Mixed Platforms.Build.0 = Release|Any CPU {8EA0E595-45EC-40C1-82CE-269F4FA9EBB3}.Release|x64.ActiveCfg = Release|Any CPU + {8EA0E595-45EC-40C1-82CE-269F4FA9EBB3}.Release|x64.Build.0 = Release|Any CPU {8EA0E595-45EC-40C1-82CE-269F4FA9EBB3}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution @@ -113,6 +116,6 @@ Global {8EA0E595-45EC-40C1-82CE-269F4FA9EBB3} = {D1A9AE0B-AAC3-402B-A9BE-42F881FCC9B8} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2367C55F-27F9-4D0D-97E6-D66076184A94} + SolutionGuid = {FB58350D-0EA3-4C2B-9033-86B52E8BE09A} EndGlobalSection EndGlobal diff --git a/SWYH/App.xaml.cs b/SWYH/App.xaml.cs index 80ce879..b652ff6 100644 --- a/SWYH/App.xaml.cs +++ b/SWYH/App.xaml.cs @@ -33,6 +33,7 @@ namespace SWYH using System.Linq; using System.Net; using System.Reflection; + using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -61,6 +62,18 @@ public partial class App : Application private System.Windows.Forms.ToolStripMenuItem searchingItem = null; private bool directClose = false; //Skip the statements in Application_Exit function. + private uint m_previousExecutionState; // cf. SetThreadExecutionState + + private static class NativeMethods + { + // Import SetThreadExecutionState Win32 API and necessary flags + [DllImport("kernel32.dll")] + public static extern uint SetThreadExecutionState(uint esFlags); + public const uint ES_CONTINUOUS = 0x80000000; + public const uint ES_SYSTEM_REQUIRED = 0x00000001; + } + + private void Application_Startup(object sender, StartupEventArgs e) { var startTest = 0; @@ -112,6 +125,19 @@ private void Application_Startup(object sender, StartupEventArgs e) notifyIcon.ShowBalloonTip(2000, "Stream What You Hear is running", "Right-click on this icon to show the menu !", System.Windows.Forms.ToolTipIcon.Info); } } + // raise priority a bit above normal user tasks + using (Process p = Process.GetCurrentProcess()) + { + p.PriorityClass = ProcessPriorityClass.AboveNormal; + } + // Set new state to prevent system sleep (note: still allows screen saver) + m_previousExecutionState = NativeMethods.SetThreadExecutionState(NativeMethods.ES_CONTINUOUS | NativeMethods.ES_SYSTEM_REQUIRED); + if (0 == m_previousExecutionState) { + System.Windows.Forms.MessageBox.Show("Call to SetThreadExecutionState failed unexpectedly.", "Stream What You hear"); + // No way to recover; fail gracefully + this.Shutdown(); + } + } private void InitializeUI() @@ -310,6 +336,11 @@ private void Application_Exit(object sender, ExitEventArgs e) this.notifyIcon.Dispose(); } } + // Restore previous state + if (0 == NativeMethods.SetThreadExecutionState(m_previousExecutionState)) { + // No way to recover; already exiting + } + } } } diff --git a/SWYH/Properties/AssemblyInfo.cs b/SWYH/Properties/AssemblyInfo.cs index 7dd5a28..f4c46f8 100644 --- a/SWYH/Properties/AssemblyInfo.cs +++ b/SWYH/Properties/AssemblyInfo.cs @@ -22,10 +22,14 @@ */ using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Windows; -[assembly: Guid("2ecd245f-4268-48ee-b0f1-0706ead1ba42")] +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. [assembly: AssemblyTitle("Stream What You Hear")] [assembly: AssemblyDescription("Stream What You Hear (SWYH) is a Windows application to stream the sound from your PC to an UPnP / DLNA device")] [assembly: AssemblyConfiguration("")] @@ -34,8 +38,22 @@ [assembly: AssemblyCopyright("Copyright © 2012-2019 Sebastien.warin.fr ans others")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + [assembly: ThemeInfo( ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located //(used if a resource is not found in the page, @@ -45,7 +63,17 @@ // app, or any theme specific resource dictionaries) )] -// Version 10.0 for local development -// Automatically update by the build pipeline with GitVersion -[assembly: AssemblyVersion("10.0.0.0")] -[assembly: AssemblyFileVersion("10.0.0.0")] \ No newline at end of file + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.5.1.1")] +[assembly: AssemblyFileVersion("1.5.217.1")] // MAJOR.minor.BuildDate.Release (Si Release impaire = BETA) || http://www.epochconverter.com/epoch/daynumbers.php +[assembly: GuidAttribute("2ecd245f-4268-48ee-b0f1-0706ead1ba42")] diff --git a/SWYH/Properties/Resources.Designer.cs b/SWYH/Properties/Resources.Designer.cs index 4161254..d2738ac 100644 --- a/SWYH/Properties/Resources.Designer.cs +++ b/SWYH/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.269 +// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -19,7 +19,7 @@ namespace SWYH.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -64,12 +64,24 @@ internal Resources() { /// Looks up a localized string similar to <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> ///<html> /// <head> - /// <title></title> - /// </head> - /// <body> - /// <b>Yoo</b> - /// </body> - ///</html>. + /// <title>About - Stream What You Hear</title> + /// <style type="text/css"> + /// /* CSS (c) thenoodleincident.com */ + /// A:link + /// { + /// color: #EAEAEA; + /// text-decoration: none; + /// } + /// A:visited + /// { + /// color: #EAEAEA; + /// text-decoration: none; + /// } + /// A:active + /// { + /// color: #ccc; + /// text-decoration: none; + /// } [rest of string was truncated]";. /// internal static string About { get { @@ -81,12 +93,25 @@ internal static string About { /// Looks up a localized string similar to <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> ///<html> /// <head> - /// <title></title> - /// </head> - /// <body> - /// <b>404</b> - /// </body> - ///</html>. + /// <title>404 - Resource not found</title> + /// <style type="text/css"> + /// /* CSS (c) thenoodleincident.com */ + /// A:link + /// { + /// color: #EAEAEA; + /// text-decoration: none; + /// } + /// A:visited + /// { + /// color: #EAEAEA; + /// text-decoration: none; + /// } + /// A:active + /// { + /// color: #ccc; + /// text-decoration: none; + /// } + /// [rest of string was truncated]";. /// internal static string Error404 { get { @@ -94,6 +119,9 @@ internal static string Error404 { } } + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// internal static System.Drawing.Icon swyh128 { get { object obj = ResourceManager.GetObject("swyh128", resourceCulture); @@ -101,6 +129,9 @@ internal static System.Drawing.Icon swyh128 { } } + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// internal static System.Drawing.Icon swyh16 { get { object obj = ResourceManager.GetObject("swyh16", resourceCulture); @@ -108,6 +139,9 @@ internal static System.Drawing.Icon swyh16 { } } + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// internal static System.Drawing.Icon swyh32 { get { object obj = ResourceManager.GetObject("swyh32", resourceCulture); @@ -115,6 +149,9 @@ internal static System.Drawing.Icon swyh32 { } } + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// internal static System.Drawing.Icon swyh48 { get { object obj = ResourceManager.GetObject("swyh48", resourceCulture); diff --git a/SWYH/Properties/Settings.Designer.cs b/SWYH/Properties/Settings.Designer.cs index 476d1f2..8af4277 100644 --- a/SWYH/Properties/Settings.Designer.cs +++ b/SWYH/Properties/Settings.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.34209 +// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -12,7 +12,7 @@ namespace SWYH.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.4.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/SWYH/SWYH.csproj b/SWYH/SWYH.csproj index 1ff9fc7..bf45b05 100644 --- a/SWYH/SWYH.csproj +++ b/SWYH/SWYH.csproj @@ -1,6 +1,6 @@  - - + + Debug AnyCPU @@ -11,7 +11,7 @@ Properties SWYH SWYH - v4.0 + v4.8 512 @@ -54,6 +54,7 @@ 4 false 512 + false AnyCPU @@ -64,6 +65,7 @@ prompt 4 true + false Resources\Icons\swyh128.ico @@ -79,11 +81,12 @@ - - ..\packages\NAudio.1.9.0\lib\net35\NAudio.dll + + ..\packages\NAudio.1.10.0\lib\net35\NAudio.dll - - ..\packages\NAudio.Lame.1.0.9\lib\net40\NAudio.Lame.dll + + ..\packages\NAudio.Lame.1.1.2\lib\netstandard2.0\NAudio.Lame.dll + True @@ -242,14 +245,14 @@ - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + +