diff options
author | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
---|---|---|
committer | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
commit | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Winamp/video_ipc.cpp | |
parent | 537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff) | |
download | winamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz |
Initial community commit
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 |