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;