diff --git a/README.md b/README.md index 11ca719..f181668 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,12 @@ class Script ### Changes +### 0.2.5 + +- mpv lib updated to 2019-02-24 +- UI glitch fixed the appeared when started in fullscreen mode +- fixed default video output mode which caused video playback to fail + ### 0.2.4 - changed minimum runtime to .NET 4.7.2 diff --git a/mpvnet/MainForm.Designer.cs b/mpvnet/MainForm.Designer.cs index 069483d..84f8a35 100644 --- a/mpvnet/MainForm.Designer.cs +++ b/mpvnet/MainForm.Designer.cs @@ -42,7 +42,7 @@ // MainForm // this.AllowDrop = true; - this.AutoScaleDimensions = new System.Drawing.SizeF(20F, 48F); + this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.Black; this.ClientSize = new System.Drawing.Size(1553, 1000); @@ -52,6 +52,8 @@ this.Name = "MainForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "mpv.net"; + this.Activated += new System.EventHandler(this.MainForm_Activated); + this.Load += new System.EventHandler(this.MainForm_Load); this.ResumeLayout(false); } diff --git a/mpvnet/MainForm.cs b/mpvnet/MainForm.cs index d427432..b93ac7a 100644 --- a/mpvnet/MainForm.cs +++ b/mpvnet/MainForm.cs @@ -24,28 +24,24 @@ namespace mpvnet public MainForm() { + InitializeComponent(); + try { Application.ThreadException += Application_ThreadException; - InitializeComponent(); SetFormPosSize(); Instance = this; Hwnd = Handle; - mpv.Init(); - mpv.ObserveBoolProp("fullscreen", MpvChangeFullscreen); - mpv.AfterShutdown += Mpv_AfterShutdown; - mpv.VideoSizeChanged += Mpv_VideoSizeChanged; - mpv.PlaybackRestart += mpv_PlaybackRestart; - + ChangeFullscreen((mpv.mpvConv.ContainsKey("fullscreen") && mpv.mpvConv["fullscreen"] == "yes") || (mpv.mpvConv.ContainsKey("fs") && mpv.mpvConv["fs"] == "yes")); ToolStripManager.Renderer = new ToolStripRendererEx(ToolStripRenderModeEx.SystemDefault); CMS = new ContextMenuStripEx(components); CMS.Opened += CMS_Opened; ContextMenuStrip = CMS; BuildMenu(); } - catch (Exception e) + catch (Exception ex) { - HandleException(e); + HandleException(ex); } } @@ -298,5 +294,19 @@ namespace mpvnet CursorHelp.Hide(); } } + + private void MainForm_Load(object sender, EventArgs ea) + { + mpv.Init(); + mpv.ObserveBoolProp("fullscreen", MpvChangeFullscreen); + mpv.AfterShutdown += Mpv_AfterShutdown; + mpv.VideoSizeChanged += Mpv_VideoSizeChanged; + mpv.PlaybackRestart += mpv_PlaybackRestart; + } + + private void MainForm_Activated(object sender, EventArgs ea) + { + + } } } \ No newline at end of file diff --git a/mpvnet/Properties/AssemblyInfo.cs b/mpvnet/Properties/AssemblyInfo.cs index 9224fcd..1a00c0e 100644 --- a/mpvnet/Properties/AssemblyInfo.cs +++ b/mpvnet/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("mpv.net")] -[assembly: AssemblyCopyright("Copyright © 2017 stax76")] +[assembly: AssemblyCopyright("Copyright © 2019 stax76")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // 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("0.2.4.0")] -[assembly: AssemblyFileVersion("0.2.4.0")] +[assembly: AssemblyVersion("0.2.5.0")] +[assembly: AssemblyFileVersion("0.2.5.0")] diff --git a/mpvnet/Resources/input_conf.txt b/mpvnet/Resources/input_conf.txt index 0e1daf1..6a9a860 100644 --- a/mpvnet/Resources/input_conf.txt +++ b/mpvnet/Resources/input_conf.txt @@ -1,58 +1,59 @@ +#this file defines the shortcut keys and the context menu -#key command key caption menu path/caption +#key command key caption menu path/caption o script-message mpv.net open-files #menu: O; Open Files -Space cycle pause #menu: Space ; Play/Pause -s stop #menu: S ; Stop +Space cycle pause #menu: Space ; Play/Pause +s stop #menu: S ; Stop -F11 playlist-prev #menu: F11 ; Navigate | Previous -F12 playlist-next #menu: F12 ; Navigate | Next +F11 playlist-prev #menu: F11 ; Navigate | Previous +F12 playlist-next #menu: F12 ; Navigate | Next -Ctrl++ add video-zoom 0.1 #menu: Ctrl++ ; Pan && Scan | Increase Size -Ctrl+- add video-zoom -0.1 #menu: Ctrl+- ; Pan && Scan | Decrease Size +Ctrl++ add video-zoom 0.1 #menu: Ctrl++ ; Pan && Scan | Increase Size +Ctrl+- add video-zoom -0.1 #menu: Ctrl+- ; Pan && Scan | Decrease Size -Enter cycle fullscreen #menu: Enter ; Cycle Fullscreen -KP7 cycle audio #menu: Numpad 7 ; Cycle Audio -KP8 cycle sub #menu: Numpad 8 ; Cycle Subtitle +Enter cycle pause #menu: Enter ; Cycle Fullscreen +KP7 cycle audio #menu: Numpad 7 ; Cycle Audio +KP8 cycle sub #menu: Numpad 8 ; Cycle Subtitle -+ add volume 5 #menu: + ; Volume | Up -- add volume -5 #menu: - ; Volume | Down -Axis_Up add volume 5 # wheel up -Axis_Down add volume -5 # wheel down -_ ignore #menu: _ ; Volume | - -m cycle mute #menu: M ; Volume | Mute ++ add volume 10 #menu: + ; Volume | Up +- add volume -10 #menu: - ; Volume | Down +Axis_Up add volume 10 #wheel up +Axis_Down add volume -10 #wheel down +_ ignore #menu: _ ; Volume | - +m cycle mute #menu: M ; Volume | Mute -KP6 add audio-delay 0.100 #menu: Numpad 6 ; Audio | Delay +0.1 -KP9 add audio-delay -0.100 #menu: Numpad 9 ; Audio | Delay -0.1 +KP6 add audio-delay 0.100 #menu: Numpad 6 ; Audio | Delay +0.1 +KP9 add audio-delay -0.100 #menu: Numpad 9 ; Audio | Delay -0.1 -Right no-osd seek 10 #menu: Right ; Seek | 10 sec forward -Left no-osd seek -10 #menu: Left ; Seek | 10 sec backward -_ ignore #menu: _ ; Seek | - -Up no-osd seek 40 #menu: Up ; Seek | 1 min forward -Down no-osd seek -40 #menu: Down ; Seek | 1 min backward -_ ignore #menu: _ ; Seek | - -Ctrl+Right no-osd seek 300 #menu: Ctrl+Right ; Seek | 5 min forward -Ctrl+Left no-osd seek -300 #menu: Ctrl+Left ; Seek | 5 min backward +Right no-osd seek 10 #menu: Right ; Seek | 7 sec forward +Left no-osd seek -10 #menu: Left ; Seek | 7 sec backward +_ ignore #menu: _ ; Seek | - +Up no-osd seek 40 #menu: Up ; Seek | 1 min forward +Down no-osd seek -40 #menu: Down ; Seek | 1 min backward +_ ignore #menu: _ ; Seek | - +Ctrl+Right no-osd seek 300 #menu: Ctrl+Right ; Seek | 5 min forward +Ctrl+Left no-osd seek -300 #menu: Ctrl+Left ; Seek | 5 min backward -KP0 script-message rate-file 0 #menu: Numpad 0 ; Addons | Rating | 0stars -KP1 script-message rate-file 1 #menu: Numpad 1 ; Addons | Rating | 1stars -KP2 script-message rate-file 2 #menu: Numpad 2 ; Addons | Rating | 2stars -KP3 script-message rate-file 3 #menu: Numpad 3 ; Addons | Rating | 3stars -KP4 script-message rate-file 4 #menu: Numpad 4 ; Addons | Rating | 4stars -KP5 script-message rate-file 5 #menu: Numpad 5 ; Addons | Rating | 5stars +KP0 script-message rate-file 0 #menu: Numpad 0 ; Addons | Rating | 0stars +KP1 script-message rate-file 1 #menu: Numpad 1 ; Addons | Rating | 1stars +KP2 script-message rate-file 2 #menu: Numpad 2 ; Addons | Rating | 2stars +KP3 script-message rate-file 3 #menu: Numpad 3 ; Addons | Rating | 3stars +KP4 script-message rate-file 4 #menu: Numpad 4 ; Addons | Rating | 4stars +KP5 script-message rate-file 5 #menu: Numpad 5 ; Addons | Rating | 5stars -_ script-message mpv.net set-setting hwdec yes #menu: _ ; Settings | Hardware Decoding | Enable Hardware Decoding -_ script-message mpv.net set-setting hwdec no #menu: _ ; Settings | Hardware Decoding | Disable Hardware Decoding +_ script-message mpv.net set-setting hwdec yes #menu: _ ; Settings | Hardware Decoding | Enable Hardware Decoding +_ script-message mpv.net set-setting hwdec no #menu: _ ; Settings | Hardware Decoding | Disable Hardware Decoding -p script-message mpv.net show-prefs #menu: P ; Settings | Show Preferences -k script-message mpv.net show-keys #menu: K ; Settings | Show Keys +p script-message mpv.net show-prefs #menu: P ; Settings | Show Preferences +k script-message mpv.net show-keys #menu: K ; Settings | Show Keys -i script-message mpv.net show-info #menu: I ; Tools | Info -c script-message mpv.net open-config-folder #menu: _ ; Tools | Config Folder -h script-message mpv.net history #menu: H ; Tools | History -l ab-loop #menu: L ; Tools | AB Loop +i script-message mpv.net show-info #menu: I ; Tools | Info +c script-message mpv.net open-config-folder #menu: _ ; Tools | Config Folder +h script-message mpv.net history #menu: H ; Tools | History +l ab-loop #menu: L ; Tools | AB Loop _ script-message mpv.net shell-execute https://mpv.io/manual/stable/ #menu: _ ; Tools | mpv Manual _ script-message mpv.net shell-execute https://github.com/mpv-player/mpv/blob/master/etc/input.conf #menu: _ ; Tools | mpv Default Keys -Esc quit #menu: Escape ; Exit -Q quit-watch-later #menu: Shift+Q; Exit Watch Later \ No newline at end of file +Esc quit #menu: Escape ; Exit +Q quit-watch-later #menu: Shift+Q; Exit Watch Later \ No newline at end of file diff --git a/mpvnet/mpv.cs b/mpvnet/mpv.cs index a854f2b..d7304c5 100644 --- a/mpvnet/mpv.cs +++ b/mpvnet/mpv.cs @@ -35,6 +35,29 @@ namespace mpvnet public static string mpvConfPath = Folder.AppDataRoaming + "mpv\\mpv.conf"; public static StringPairList BindingList = new StringPairList(); + private static Dictionary _mpvConv; + + public static Dictionary mpvConv { + get { + if (_mpvConv == null) + { + _mpvConv = new Dictionary(); + + if (File.Exists(mpvConfPath)) + { + foreach (var i in File.ReadAllLines(mpvConfPath)) + { + if (i.Contains("=") && ! i.StartsWith("#")) + { + _mpvConv[i.Left("=").Trim()] = i.Right("=").Trim(); + } + } + } + } + return _mpvConv; + } + } + public static void Init() { LoadLibrary("mpv-1.dll"); @@ -42,14 +65,11 @@ namespace mpvnet SetIntProp("input-ar-delay", 500); SetIntProp("input-ar-rate", 20); SetIntProp("volume", 50); - SetStringProp("hwdec", "auto"); + SetStringProp("hwdec", "yes"); SetStringProp("input-default-bindings", "yes"); - SetStringProp("opengl-backend", "angle"); SetStringProp("osd-playing-msg", "'${filename}'"); - SetStringProp("profile", "opengl-hq"); SetStringProp("screenshot-directory", "~~desktop/"); - SetStringProp("vo", "opengl"); - SetStringProp("keep-open", "always"); + SetStringProp("keep-open", "yes"); SetStringProp("keep-open-pause", "no"); SetStringProp("osc", "yes"); SetStringProp("config", "yes");