1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-05-23 11:34:06 +02:00

Rewrite key handling in video player

This commit is contained in:
chylex 2017-08-27 20:46:10 +02:00
parent 6357708533
commit 42f4d97d5d
4 changed files with 24 additions and 18 deletions

View File

@ -529,19 +529,19 @@ public void PlayVideo(string url){
videoPlayer.Launch(url); videoPlayer.Launch(url);
} }
public bool ToggleVideoPause(){ public void HideVideoOverlay(){
browser.ExecuteScriptAsync("$('#td-video-player-overlay').remove()");
}
public bool ProcessBrowserKey(Keys key){
if (videoPlayer != null && videoPlayer.Running){ if (videoPlayer != null && videoPlayer.Running){
videoPlayer.TogglePause(); videoPlayer.SendKeyEvent(key);
return true; return true;
} }
return false; return false;
} }
public void HideVideoOverlay(){
browser.ExecuteScriptAsync("$('#td-video-player-overlay').remove()");
}
public void ShowTweetDetail(string columnKey, string chirpId){ public void ShowTweetDetail(string columnKey, string chirpId){
Activate(); Activate();

View File

@ -10,11 +10,7 @@ public KeyboardHandlerBrowser(FormBrowser form){
} }
bool IKeyboardHandler.OnPreKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey, ref bool isKeyboardShortcut){ bool IKeyboardHandler.OnPreKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey, ref bool isKeyboardShortcut){
if (type == KeyType.RawKeyDown && (Keys)windowsKeyCode == Keys.Space){ return type == KeyType.RawKeyDown && form.ProcessBrowserKey((Keys)windowsKeyCode);
return form.ToggleVideoPause();
}
return false;
} }
bool IKeyboardHandler.OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey){ bool IKeyboardHandler.OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey){

View File

@ -68,8 +68,8 @@ public void Launch(string url){
} }
} }
public void TogglePause(){ public void SendKeyEvent(Keys key){
currentPipe?.Write("pause"); currentPipe?.Write("key", ((int)key).ToString());
} }
private void currentPipe_DataIn(object sender, DuplexPipe.PipeReadEventArgs e){ private void currentPipe_DataIn(object sender, DuplexPipe.PipeReadEventArgs e){

View File

@ -60,8 +60,8 @@ private void FormPlayer_Load(object sender, EventArgs e){
private void pipe_DataIn(object sender, DuplexPipe.PipeReadEventArgs e){ private void pipe_DataIn(object sender, DuplexPipe.PipeReadEventArgs e){
switch(e.Key){ switch(e.Key){
case "pause": case "key":
TogglePause(); HandleKey((Keys)int.Parse(e.Data, NumberStyles.Integer));
break; break;
case "die": case "die":
@ -191,6 +191,17 @@ private void trackBarVolume_MouseUp(object sender, MouseEventArgs e){
// Controls & messages // Controls & messages
private bool HandleKey(Keys key){
switch(key){
case Keys.Space:
TogglePause();
return true;
default:
return false;
}
}
private void TogglePause(){ private void TogglePause(){
IWMPControls controls = Player.controls; IWMPControls controls = Player.controls;
@ -233,9 +244,8 @@ bool IMessageFilter.PreFilterMessage(ref Message m){
return true; return true;
} }
} }
else if (m.Msg == 0x0100 && m.WParam.ToInt32() == 0x20){ // WM_KEYDOWN, VK_SPACE else if (m.Msg == 0x0100){ // WM_KEYDOWN
form.TogglePause(); return form.HandleKey((Keys)m.WParam.ToInt32());
return true;
} }
else if (m.Msg == 0x020B && ((m.WParam.ToInt32() >> 16) & 0xFFFF) == 1){ // WM_XBUTTONDOWN else if (m.Msg == 0x020B && ((m.WParam.ToInt32() >> 16) & 0xFFFF) == 1){ // WM_XBUTTONDOWN
NativeMethods.SetForegroundWindow(form.ownerHandle); NativeMethods.SetForegroundWindow(form.ownerHandle);