diff options
author | Jean-Francois Mauguit <jfmauguit@mac.com> | 2024-09-24 09:03:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-24 09:03:25 -0400 |
commit | bab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Winamp/video_ipc.cpp | |
parent | 4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff) | |
parent | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff) | |
download | winamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz |
Merge pull request #5 from WinampDesktop/community
Merge to main
Diffstat (limited to 'Src/Winamp/video_ipc.cpp')
-rw-r--r-- | Src/Winamp/video_ipc.cpp | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/Src/Winamp/video_ipc.cpp b/Src/Winamp/video_ipc.cpp new file mode 100644 index 00000000..154b6d64 --- /dev/null +++ b/Src/Winamp/video_ipc.cpp @@ -0,0 +1,111 @@ +#include "Main.h" +#include "video.h" +extern "C" +{ + extern wchar_t vidoutbuf_save[]; +} +int WINAPI VideoIPCProcedure(int which, WPARAM data, LRESULT *returnValue) +{ + switch (which) + { + case IPC_GETNUMAUDIOTRACKS: + *returnValue = video_getNumAudioTracks(); + return 1; + + case IPC_GETNUMVIDEOTRACKS: + *returnValue = video_getNumVideoTracks(); + return 1; + + case IPC_GETAUDIOTRACK: + *returnValue = video_getCurAudioTrack(); + return 1; + + case IPC_GETVIDEOTRACK: + *returnValue = video_getCurVideoTrack(); + return 1; + + case IPC_SETAUDIOTRACK: + *returnValue = video_setCurAudioTrack(data); + return 1; + + case IPC_SETVIDEOTRACK: + *returnValue = video_setCurVideoTrack(data); + return 1; + + case IPC_SETSTOPONVIDEOCLOSE: + config_video_stopclose = data; + *returnValue = 0; + return 1; + + case IPC_GETSTOPONVIDEOCLOSE: + *returnValue = config_video_stopclose; + return 1; + + case IPC_GETVIDEORESIZE: + *returnValue = config_video_updsize; + return 1; + + case IPC_SETVIDEORESIZE: + config_video_updsize = data; + *returnValue = 0; + return 1; + + case IPC_GETWND: + if (data == IPC_GETWND_VIDEO) + { + *returnValue = (LRESULT)hVideoWindow; + return 1; + } + break; + + case IPC_ISWNDVISIBLE: + if (data == IPC_GETWND_VIDEO) + { + *returnValue = config_video_open; + return 1; + } + break; + + case IPC_ENABLEDISABLE_ALL_WINDOWS: + EnableWindow(hVideoWindow, data != 0xdeadbeef); + break; + + case IPC_GETINFO: + if (data == 3) + { + *returnValue = videoGetWidthHeightDWORD(); + return 1; + } + if (data == 4) + { + *returnValue = (LRESULT) vidoutbuf_save; + return 1; + } + break; + + case IPC_HAS_VIDEO_SUPPORT: + *returnValue = g_has_video_plugin; + return 1; + + case IPC_IS_PLAYING_VIDEO: + *returnValue = video_isVideoPlaying() ? 2 : 0; + return 1; + + case IPC_IS_FULLSCREEN: + if (is_fullscreen_video) + { + *returnValue = 1; + return 1; + } + break; + + case IPC_GET_IVIDEOOUTPUT: + *returnValue = (LRESULT)video_getIVideoOutput(); + return 1; + + case IPC_VIDCMD: + Vid_Cmd((windowCommand*)data); + break; + } + return 0; +}
\ No newline at end of file |