From d96587cb7bd5f5ba2d6da2946ba08c9c95d895e7 Mon Sep 17 00:00:00 2001 From: Frank Skare Date: Thu, 25 Jul 2019 01:34:36 +0200 Subject: [PATCH] Addon renamed to Extension everywhere --- Changelog.md | 2 +- README.md | 10 +- addons/TestAddon/Properties/AssemblyInfo.cs | 36 ------- addons/TestAddon/TestAddon.cs | 27 ----- addons/TestAddon/TestAddon.csproj | 92 ------------------ .../CSScriptExtension/CSScriptExtension.vb | 8 +- .../CSScriptExtension.vbproj | 14 +-- .../CSScriptExtension}/CSScriptLibrary.dll | Bin .../My Project/Application.Designer.vb | 0 .../My Project/Application.myapp | 0 .../My Project/AssemblyInfo.vb | 6 +- .../My Project/Resources.Designer.vb | 4 +- .../My Project/Resources.resx | 0 .../My Project/Settings.Designer.vb | 6 +- .../My Project/Settings.settings | 0 .../Properties/AssemblyInfo.cs | 6 +- .../RatingExtension/RatingExtension.cs | 23 ++--- .../RatingExtension/RatingExtension.csproj | 14 +-- mpv.net.sln | 18 +--- mpv.net/Misc/Addon.cs | 16 +-- mpv.net/Misc/Misc.cs | 1 + mpv.net/WinForms/MainForm.cs | 8 +- mpv.net/mpv/mp.cs | 8 +- 23 files changed, 62 insertions(+), 237 deletions(-) delete mode 100644 addons/TestAddon/Properties/AssemblyInfo.cs delete mode 100644 addons/TestAddon/TestAddon.cs delete mode 100644 addons/TestAddon/TestAddon.csproj rename addons/CSScriptAddon/CSScriptAddon.vb => extensions/CSScriptExtension/CSScriptExtension.vb (86%) rename addons/CSScriptAddon/CSScriptAddon.vbproj => extensions/CSScriptExtension/CSScriptExtension.vbproj (93%) rename {addons/CSScriptAddon => extensions/CSScriptExtension}/CSScriptLibrary.dll (100%) rename {addons/CSScriptAddon => extensions/CSScriptExtension}/My Project/Application.Designer.vb (100%) rename {addons/CSScriptAddon => extensions/CSScriptExtension}/My Project/Application.myapp (100%) rename {addons/CSScriptAddon => extensions/CSScriptExtension}/My Project/AssemblyInfo.vb (85%) rename {addons/CSScriptAddon => extensions/CSScriptExtension}/My Project/Resources.Designer.vb (93%) rename {addons/CSScriptAddon => extensions/CSScriptExtension}/My Project/Resources.resx (100%) rename {addons/CSScriptAddon => extensions/CSScriptExtension}/My Project/Settings.Designer.vb (93%) rename {addons/CSScriptAddon => extensions/CSScriptExtension}/My Project/Settings.settings (100%) rename {addons/RatingAddon => extensions/RatingExtension}/Properties/AssemblyInfo.cs (88%) rename addons/RatingAddon/RatingAddon.cs => extensions/RatingExtension/RatingExtension.cs (72%) rename addons/RatingAddon/RatingAddon.csproj => extensions/RatingExtension/RatingExtension.csproj (89%) diff --git a/Changelog.md b/Changelog.md index 5166e80..c175e13 100644 --- a/Changelog.md +++ b/Changelog.md @@ -83,7 +83,7 @@ mpv.net not appearing in the 'Open with' menu of the Windows File Explorer, thanks to 44vince44 for pointing this out!!! - new Python and C# script examples were added to the wiki and the scripting and - add-on documentation was improved + extension documentation was improved - invalid command line arguments were ignored, now an error message is shown - a description on how to start mpv.net from Google Chrome was added to the manual, it's useful to play videos from sites like YouTube, find the diff --git a/README.md b/README.md index b190fcd..8fae51d 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Table of contents - [Context Menu](#context-menu) - [Settings](#settings) - [Scripting](#scripting) -- [Add-ons](#add-ons) +- [Extensions](#extensions) - [Architecture](#architecture) - [Support](#support) - [Links](#links) @@ -55,7 +55,7 @@ Table of contents - Configuration files that are easy to read and edit - Searchable command palette to quickly launch commands and look for keys ([Screenshot](#command-palette-screenshot)) - Modern WPF based graphical user interface with dark mode ([Screenshot](#config-editor-screenshot)) -- Addon/extension API for .NET languages +- Extension API for .NET languages - Scripting API for Python, C#, Lua, JavaScript and PowerShell ([Wiki](https://github.com/stax76/mpv.net/wiki/Scripting)) - Language agnostic JSON IPC to control the player with a external programs - On Screen Controler (OSC, play control buttons) @@ -167,9 +167,9 @@ mpv.net supports almost all mpv settings and features, [Scripting wiki page](https://github.com/stax76/mpv.net/wiki/Scripting) -### Add-ons +### Extensions -[Add-on wiki page](https://github.com/stax76/mpv.net/wiki/Addons) +[Extensions wiki page](https://github.com/stax76/mpv.net/wiki/Extensions) ### Architecture @@ -183,7 +183,7 @@ was difficult to build, the hard parts are totally covered by libmpv. mpv.net is written in C# 7 and runs on .NET 4.7, I've not yet decided if I will port it to C# 8 and .NET 5 once available. -The Add-on implementation is based on the [Managed Extensibility Framework](https://docs.microsoft.com/en-us/dotnet/framework/mef/). +The Extension implementation is based on the [Managed Extensibility Framework](https://docs.microsoft.com/en-us/dotnet/framework/mef/). There are no specific extension or scripting interfaces but instead everyting is accessible for .NET compatible languages (C#, VB.NET, F#, Python, PowerShell), diff --git a/addons/TestAddon/Properties/AssemblyInfo.cs b/addons/TestAddon/Properties/AssemblyInfo.cs deleted file mode 100644 index edeaa25..0000000 --- a/addons/TestAddon/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TestAddon")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TestAddon")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[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)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("06f854b0-00f9-4b53-94d9-0be65a7c55d8")] - -// 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.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/addons/TestAddon/TestAddon.cs b/addons/TestAddon/TestAddon.cs deleted file mode 100644 index c4f2163..0000000 --- a/addons/TestAddon/TestAddon.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.ComponentModel.Composition; - -using mpvnet; - -namespace TestAddon -{ - [Export(typeof(IAddon))] - public class TestAddon : IAddon - { - // do some init work in constructor - public TestAddon() - { - // Observe changes of the fullscreen property. - // You can find a list of available mpv properties - // in mpv.net's wiki on github or use mpv --list-properties. - // You can test properties in mpv.net in the menu at: - // Tools > Execute mpv command - // where you can enter: show-text ${fullscreen} - mp.observe_property_bool("fullscreen", OnFullscreenChange); - } - - void OnFullscreenChange(bool val) - { - mp.commandv("show-text", "fullscreen: " + val.ToString()); - } - } -} \ No newline at end of file diff --git a/addons/TestAddon/TestAddon.csproj b/addons/TestAddon/TestAddon.csproj deleted file mode 100644 index 405cee8..0000000 --- a/addons/TestAddon/TestAddon.csproj +++ /dev/null @@ -1,92 +0,0 @@ - - - - - Debug - AnyCPU - {06F854B0-00F9-4B53-94D9-0BE65A7C55D8} - Library - Properties - TestAddon - TestAddon - v4.7.2 - 512 - true - - - true - full - false - bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\ - TRACE - prompt - 4 - - - true - bin\x64\Debug\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - - - bin\x64\Release\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - {1751f378-8edf-4b62-be6d-304c7c287089} - mpv.net - False - - - - \ No newline at end of file diff --git a/addons/CSScriptAddon/CSScriptAddon.vb b/extensions/CSScriptExtension/CSScriptExtension.vb similarity index 86% rename from addons/CSScriptAddon/CSScriptAddon.vb rename to extensions/CSScriptExtension/CSScriptExtension.vb index b2eb93c..32fa252 100644 --- a/addons/CSScriptAddon/CSScriptAddon.vb +++ b/extensions/CSScriptExtension/CSScriptExtension.vb @@ -1,4 +1,4 @@ -'this addon implements the C# scripting feature of mpv.net, +'this extension implements the C# scripting feature of mpv.net, 'it is based on CS-Script: https://www.cs-script.net/ Imports System.ComponentModel.Composition @@ -9,9 +9,9 @@ Imports mpvnet Imports CSScriptLibrary - -Public Class CSScriptAddon - Implements IAddon + +Public Class CSScriptExtension + Implements IExtension Sub New() Dim scriptFiles As New List(Of String) diff --git a/addons/CSScriptAddon/CSScriptAddon.vbproj b/extensions/CSScriptExtension/CSScriptExtension.vbproj similarity index 93% rename from addons/CSScriptAddon/CSScriptAddon.vbproj rename to extensions/CSScriptExtension/CSScriptExtension.vbproj index 0d52d2a..ec0d67c 100644 --- a/addons/CSScriptAddon/CSScriptAddon.vbproj +++ b/extensions/CSScriptExtension/CSScriptExtension.vbproj @@ -6,8 +6,8 @@ AnyCPU {71808A87-8B1C-4DF8-957C-D79C3B164CCA} Library - CSScriptAddon - CSScriptAddon + CSScriptExtension + CSScriptExtension 512 Windows v4.7.2 @@ -51,7 +51,7 @@ true true true - ..\..\mpv.net\bin\x86\Addons\CSScriptAddon\ + ..\..\mpv.net\bin\x86\Extensions\CSScriptExtension\ 42105,42106,42107,42353,42354,42355 full x86 @@ -60,7 +60,7 @@ true - ..\mpv.net\bin\x86\Addons\CSScriptAddon\ + ..\..\mpv.net\bin\x86\Extensions\CSScriptExtension\ true 42105,42106,42107,42353,42354,42355 pdbonly @@ -72,7 +72,7 @@ true true true - ..\..\mpv.net\bin\x64\Addons\CSScriptAddon\ + ..\..\mpv.net\bin\x64\Extensions\CSScriptExtension\ 42105,42106,42107,42353,42354,42355 full x64 @@ -81,7 +81,7 @@ true - ..\mpv.net\bin\x64\Addons\CSScriptAddon\ + ..\..\mpv.net\bin\x64\Extensions\CSScriptExtension\ true 42105,42106,42107,42353,42354,42355 pdbonly @@ -116,7 +116,7 @@ - + True diff --git a/addons/CSScriptAddon/CSScriptLibrary.dll b/extensions/CSScriptExtension/CSScriptLibrary.dll similarity index 100% rename from addons/CSScriptAddon/CSScriptLibrary.dll rename to extensions/CSScriptExtension/CSScriptLibrary.dll diff --git a/addons/CSScriptAddon/My Project/Application.Designer.vb b/extensions/CSScriptExtension/My Project/Application.Designer.vb similarity index 100% rename from addons/CSScriptAddon/My Project/Application.Designer.vb rename to extensions/CSScriptExtension/My Project/Application.Designer.vb diff --git a/addons/CSScriptAddon/My Project/Application.myapp b/extensions/CSScriptExtension/My Project/Application.myapp similarity index 100% rename from addons/CSScriptAddon/My Project/Application.myapp rename to extensions/CSScriptExtension/My Project/Application.myapp diff --git a/addons/CSScriptAddon/My Project/AssemblyInfo.vb b/extensions/CSScriptExtension/My Project/AssemblyInfo.vb similarity index 85% rename from addons/CSScriptAddon/My Project/AssemblyInfo.vb rename to extensions/CSScriptExtension/My Project/AssemblyInfo.vb index df02c45..36c2ec7 100644 --- a/addons/CSScriptAddon/My Project/AssemblyInfo.vb +++ b/extensions/CSScriptExtension/My Project/AssemblyInfo.vb @@ -8,11 +8,11 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - + - - + + diff --git a/addons/CSScriptAddon/My Project/Resources.Designer.vb b/extensions/CSScriptExtension/My Project/Resources.Designer.vb similarity index 93% rename from addons/CSScriptAddon/My Project/Resources.Designer.vb rename to extensions/CSScriptExtension/My Project/Resources.Designer.vb index 2ac29fc..48b0033 100644 --- a/addons/CSScriptAddon/My Project/Resources.Designer.vb +++ b/extensions/CSScriptExtension/My Project/Resources.Designer.vb @@ -22,7 +22,7 @@ Namespace My.Resources ''' ''' A strongly-typed resource class, for looking up localized strings, etc. ''' - _ @@ -39,7 +39,7 @@ Namespace My.Resources Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager Get If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("CSScriptAddon.Resources", GetType(Resources).Assembly) + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("CSScriptExtension.Resources", GetType(Resources).Assembly) resourceMan = temp End If Return resourceMan diff --git a/addons/CSScriptAddon/My Project/Resources.resx b/extensions/CSScriptExtension/My Project/Resources.resx similarity index 100% rename from addons/CSScriptAddon/My Project/Resources.resx rename to extensions/CSScriptExtension/My Project/Resources.resx diff --git a/addons/CSScriptAddon/My Project/Settings.Designer.vb b/extensions/CSScriptExtension/My Project/Settings.Designer.vb similarity index 93% rename from addons/CSScriptAddon/My Project/Settings.Designer.vb rename to extensions/CSScriptExtension/My Project/Settings.Designer.vb index 73cf5cd..202298f 100644 --- a/addons/CSScriptAddon/My Project/Settings.Designer.vb +++ b/extensions/CSScriptExtension/My Project/Settings.Designer.vb @@ -15,7 +15,7 @@ Option Explicit On Namespace My _ Partial Friend NotInheritable Class MySettings Inherits Global.System.Configuration.ApplicationSettingsBase @@ -64,9 +64,9 @@ Namespace My Friend Module MySettingsProperty _ - Friend ReadOnly Property Settings() As Global.CSScriptAddon.My.MySettings + Friend ReadOnly Property Settings() As Global.CSScriptExtension.My.MySettings Get - Return Global.CSScriptAddon.My.MySettings.Default + Return Global.CSScriptExtension.My.MySettings.Default End Get End Property End Module diff --git a/addons/CSScriptAddon/My Project/Settings.settings b/extensions/CSScriptExtension/My Project/Settings.settings similarity index 100% rename from addons/CSScriptAddon/My Project/Settings.settings rename to extensions/CSScriptExtension/My Project/Settings.settings diff --git a/addons/RatingAddon/Properties/AssemblyInfo.cs b/extensions/RatingExtension/Properties/AssemblyInfo.cs similarity index 88% rename from addons/RatingAddon/Properties/AssemblyInfo.cs rename to extensions/RatingExtension/Properties/AssemblyInfo.cs index 6fa70e4..b338c1e 100644 --- a/addons/RatingAddon/Properties/AssemblyInfo.cs +++ b/extensions/RatingExtension/Properties/AssemblyInfo.cs @@ -5,12 +5,12 @@ using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("RatingAddon")] +[assembly: AssemblyTitle("RatingExtension")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("RatingAddon")] -[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyProduct("RatingExtension")] +[assembly: AssemblyCopyright("Copyright © 2017-2019 Frank Skare (stax76)")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/addons/RatingAddon/RatingAddon.cs b/extensions/RatingExtension/RatingExtension.cs similarity index 72% rename from addons/RatingAddon/RatingAddon.cs rename to extensions/RatingExtension/RatingExtension.cs index 36e2311..572e3b9 100644 --- a/addons/RatingAddon/RatingAddon.cs +++ b/extensions/RatingExtension/RatingExtension.cs @@ -1,23 +1,19 @@ -// sometimes the add-on don't work, it's containing a lot of trace code at the moment - -using System; +using System; using System.ComponentModel.Composition; using System.Collections.Generic; using System.IO; using mpvnet; -using System.Diagnostics; -// the assembly name must end with 'Addon' -namespace RatingAddon +namespace RatingExtension // the assembly name must end with 'Extension' { - [Export(typeof(IAddon))] - public class RatingAddon : IAddon + [Export(typeof(IExtension))] + public class RatingExtension : IExtension { // dictionory to store the filename and the rating Dictionary Dic = new Dictionary(); - public RatingAddon() // plugin initialization + public RatingExtension() // plugin initialization { mp.ClientMessage += ClientMessage; //handles keys defined in input.conf mp.Shutdown += Shutdown; // handles MPV_EVENT_SHUTDOWN @@ -26,16 +22,12 @@ namespace RatingAddon // handles MPV_EVENT_SHUTDOWN void Shutdown() { - if (App.DebugMode) Trace.WriteLine("aaa"); - foreach (var i in Dic) { string filepath = i.Key; int rating = i.Value; - if (App.DebugMode) Trace.WriteLine("bbb"); if (String.IsNullOrEmpty(filepath) || ! File.Exists(filepath)) return; - if (App.DebugMode) Trace.WriteLine("ccc"); string basename = Path.GetFileNameWithoutExtension(filepath); for (int x = 0; x < 6; x++) @@ -44,12 +36,9 @@ namespace RatingAddon basename += $" ({rating}stars)"; string newPath = Path.Combine(Path.GetDirectoryName(filepath), basename + Path.GetExtension(filepath)); - if (App.DebugMode) Trace.WriteLine("ddd"); if (filepath.ToLower() != newPath.ToLower()) File.Move(filepath, newPath); - if (App.DebugMode) Trace.WriteLine("eee"); File.SetLastWriteTime(newPath, DateTime.Now); - if (App.DebugMode) Trace.WriteLine("fff"); } } @@ -66,7 +55,7 @@ namespace RatingAddon mp.commandv("show-text", $"Rating: {rating}"); } else if (args[1] == "about") - Msg.Show("Rating Extension", "This extension writes a rating to the filename of rated videos when mpv.net shuts down.\n\nThe input.conf defaults contain key bindings for this addon to set ratings."); + Msg.Show("Rating Extension", "This extension writes a rating to the filename of rated videos when mpv.net shuts down.\n\nThe input.conf defaults contain key bindings for this extension to set ratings."); } } } \ No newline at end of file diff --git a/addons/RatingAddon/RatingAddon.csproj b/extensions/RatingExtension/RatingExtension.csproj similarity index 89% rename from addons/RatingAddon/RatingAddon.csproj rename to extensions/RatingExtension/RatingExtension.csproj index 1757496..180580f 100644 --- a/addons/RatingAddon/RatingAddon.csproj +++ b/extensions/RatingExtension/RatingExtension.csproj @@ -7,8 +7,8 @@ {55C88710-539D-4402-84C8-31694841C731} Library Properties - RatingAddon - RatingAddon + RatingExtension + RatingExtension v4.7.2 512 @@ -32,7 +32,7 @@ true - ..\..\mpv.net\bin\x86\Addons\RatingAddon\ + ..\..\mpv.net\bin\x86\Extensions\RatingExtension\ DEBUG;TRACE full x86 @@ -40,7 +40,7 @@ MinimumRecommendedRules.ruleset - ..\mpv.net\bin\x86\Addons\RatingAddon\ + ..\..\mpv.net\bin\x86\Extensions\RatingExtension\ TRACE true pdbonly @@ -50,7 +50,7 @@ true - ..\..\mpv.net\bin\x64\Addons\RatingAddon\ + ..\..\mpv.net\bin\x64\Extensions\RatingExtension\ DEBUG;TRACE full x64 @@ -58,7 +58,7 @@ MinimumRecommendedRules.ruleset - ..\mpv.net\bin\x64\Addons\RatingAddon\ + ..\..\mpv.net\bin\x64\Extensions\RatingExtension\ TRACE true pdbonly @@ -78,7 +78,7 @@ - + diff --git a/mpv.net.sln b/mpv.net.sln index 5631732..78c9bb6 100644 --- a/mpv.net.sln +++ b/mpv.net.sln @@ -5,11 +5,9 @@ VisualStudioVersion = 16.0.28729.10 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mpv.net", "mpv.net\mpv.net.csproj", "{1751F378-8EDF-4B62-BE6D-304C7C287089}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "CSScriptAddon", "addons\CSScriptAddon\CSScriptAddon.vbproj", "{71808A87-8B1C-4DF8-957C-D79C3B164CCA}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "CSScriptExtension", "extensions\CSScriptExtension\CSScriptExtension.vbproj", "{71808A87-8B1C-4DF8-957C-D79C3B164CCA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RatingAddon", "addons\RatingAddon\RatingAddon.csproj", "{55C88710-539D-4402-84C8-31694841C731}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestAddon", "addons\TestAddon\TestAddon.csproj", "{06F854B0-00F9-4B53-94D9-0BE65A7C55D8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RatingExtension", "extensions\RatingExtension\RatingExtension.csproj", "{55C88710-539D-4402-84C8-31694841C731}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -57,18 +55,6 @@ Global {55C88710-539D-4402-84C8-31694841C731}.Release|x64.Build.0 = Release|x64 {55C88710-539D-4402-84C8-31694841C731}.Release|x86.ActiveCfg = Release|x86 {55C88710-539D-4402-84C8-31694841C731}.Release|x86.Build.0 = Release|x86 - {06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Debug|x64.ActiveCfg = Debug|x64 - {06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Debug|x64.Build.0 = Debug|x64 - {06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Debug|x86.ActiveCfg = Debug|x86 - {06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Debug|x86.Build.0 = Debug|x86 - {06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Release|Any CPU.Build.0 = Release|Any CPU - {06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Release|x64.ActiveCfg = Release|Any CPU - {06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Release|x64.Build.0 = Release|Any CPU - {06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Release|x86.ActiveCfg = Release|Any CPU - {06F854B0-00F9-4B53-94D9-0BE65A7C55D8}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/mpv.net/Misc/Addon.cs b/mpv.net/Misc/Addon.cs index 38ef321..56a07fb 100644 --- a/mpv.net/Misc/Addon.cs +++ b/mpv.net/Misc/Addon.cs @@ -7,30 +7,30 @@ using System.Windows.Forms; namespace mpvnet { - public class Addon + public class Extension { [ImportMany] - public IEnumerable Addons = null; + public IEnumerable Extensions = null; readonly CompositionContainer CompositionContainer; - public Addon() + public Extension() { try { AggregateCatalog catalog = new AggregateCatalog(); - string dir = Application.StartupPath + "\\Addons"; + string dir = Application.StartupPath + "\\Extensions"; if (Directory.Exists(dir)) foreach (string i in Directory.GetDirectories(dir)) - catalog.Catalogs.Add(new DirectoryCatalog(i, "*Addon.dll")); + catalog.Catalogs.Add(new DirectoryCatalog(i, "*Extensions.dll")); - dir = mp.ConfigFolder + "\\Addons"; + dir = mp.ConfigFolder + "\\Extensions"; if (Directory.Exists(dir)) foreach (string i in Directory.GetDirectories(dir)) - catalog.Catalogs.Add(new DirectoryCatalog(i, "*Addon.dll")); + catalog.Catalogs.Add(new DirectoryCatalog(i, "*Extension.dll")); if (catalog.Catalogs.Count > 0) { @@ -45,7 +45,7 @@ namespace mpvnet } } - public interface IAddon + public interface IExtension { } } \ No newline at end of file diff --git a/mpv.net/Misc/Misc.cs b/mpv.net/Misc/Misc.cs index adba568..9c77c82 100644 --- a/mpv.net/Misc/Misc.cs +++ b/mpv.net/Misc/Misc.cs @@ -57,6 +57,7 @@ namespace mpvnet if (File.Exists(filePath)) File.Delete(filePath); Trace.Listeners.Add(new TextWriterTraceListener(filePath)); Trace.AutoFlush = true; + //if (App.DebugMode) Trace.WriteLine(""); } catch (Exception e) { diff --git a/mpv.net/WinForms/MainForm.cs b/mpv.net/WinForms/MainForm.cs index c74d029..01b487f 100644 --- a/mpv.net/WinForms/MainForm.cs +++ b/mpv.net/WinForms/MainForm.cs @@ -560,8 +560,12 @@ namespace mpvnet } RegHelp.SetObject(App.RegPath, "Recent", RecentFiles.ToArray()); - mp.commandv("quit"); - mp.ShutdownAutoResetEvent.WaitOne(3000); + + if (mp.IsQuitNeeded) + mp.commandv("quit"); + + if (!mp.ShutdownAutoResetEvent.WaitOne(10000)) + Msg.ShowError("Shutdown thread failed to complete within 10 seconds."); } protected override void OnMouseDown(MouseEventArgs e) diff --git a/mpv.net/mpv/mp.cs b/mpv.net/mpv/mp.cs index d41c211..f6c5cf1 100644 --- a/mpv.net/mpv/mp.cs +++ b/mpv.net/mpv/mp.cs @@ -56,8 +56,9 @@ namespace mpvnet public static IntPtr Handle { get; set; } public static IntPtr WindowHandle { get; set; } - public static Addon Addon { get; set; } + public static Extension Extension { get; set; } public static bool IsLogoVisible { set; get; } + public static bool IsQuitNeeded { set; get; } = true; public static List>> BoolPropChangeActions { get; set; } = new List>>(); public static List>> IntPropChangeActions { get; set; } = new List>>(); public static List>> StringPropChangeActions { get; set; } = new List>>(); @@ -98,7 +99,7 @@ namespace mpvnet ShowLogo(); ProcessCommandLine(); Task.Run(() => { LoadScripts(); }); - Task.Run(() => { Addon = new Addon(); }); + Task.Run(() => { Extension = new Extension(); }); Task.Run(() => { EventLoop(); }); } @@ -249,9 +250,8 @@ namespace mpvnet switch (evt.event_id) { case mpv_event_id.MPV_EVENT_SHUTDOWN: - if (App.DebugMode) Trace.WriteLine("before Shutdown.Invoke"); + IsQuitNeeded = false; Shutdown?.Invoke(); - if (App.DebugMode) Trace.WriteLine("after Shutdown.Invoke"); WriteHistory(null); ShutdownAutoResetEvent.Set(); return;