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/replicant/player/svc_output.h | |
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/replicant/player/svc_output.h')
-rw-r--r-- | Src/replicant/player/svc_output.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Src/replicant/player/svc_output.h b/Src/replicant/player/svc_output.h new file mode 100644 index 00000000..264918a3 --- /dev/null +++ b/Src/replicant/player/svc_output.h @@ -0,0 +1,40 @@ +#pragma once +#include "foundation/dispatch.h" +#include "audio/ifc_audioout.h" +#include "player/ifc_playback_parameters.h" + +class ifc_player; + +// {FB5E9AE3-E033-407C-942B-6C1BFAF52A5C} +static const GUID output_service_guid = +{ 0xfb5e9ae3, 0xe033, 0x407c, { 0x94, 0x2b, 0x6c, 0x1b, 0xfa, 0xf5, 0x2a, 0x5c } }; + +class NOVTABLE svc_output : public Wasabi2::Dispatchable +{ +protected: + svc_output() : Dispatchable(DISPATCHABLE_VERSION) {} + ~svc_output() {} +public: + static GUID GetServiceType() { return output_service_guid; } + /* ----- Audio Output ----- */ + // Opens winamp2-style Audio Output - good for audio-only streams (buffered, push, output-plugin-defined buffersize) + int AudioOpen(const ifc_audioout::Parameters *format, ifc_player *player, ifc_playback_parameters *secondary_parameters, ifc_audioout **out_output) { return OutputService_AudioOpen(format, player, secondary_parameters, out_output); } + + /* ----- Video Output ----- */ + int VideoOpen(); + + /* ----- Text Output ----- */ + // Opens a subtitle stream + int TextOpenSubtitle(); + // Opens a video info text stream + int TextOpenInfo(); + // Opens a lyrics text stream + int TextOpenLyrics(); + + enum + { + DISPATCHABLE_VERSION, + }; +protected: + virtual int WASABICALL OutputService_AudioOpen(const ifc_audioout::Parameters *format, ifc_player *player, ifc_playback_parameters *secondary_parameters, ifc_audioout **out_output) = 0; +}; |