svc_icy_playback.h 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include "jnetlib/jnetlib_defines.h"
  3. #include "foundation/dispatch.h"
  4. #include "foundation/error.h"
  5. #include "icy/ifc_icy_playback.h"
  6. // {42E078D5-7D68-43b5-9AFD-0135558C799F}
  7. static const GUID icy_playback_service_type_guid =
  8. { 0x42e078d5, 0x7d68, 0x43b5, { 0x9a, 0xfd, 0x1, 0x35, 0x55, 0x8c, 0x79, 0x9f } };
  9. class svc_icy_playback : public Wasabi2::Dispatchable
  10. {
  11. protected:
  12. svc_icy_playback() : Dispatchable(DISPATCHABLE_VERSION) {}
  13. ~svc_icy_playback() {}
  14. public:
  15. static GUID GetServiceType() { return icy_playback_service_type_guid; }
  16. /* returns types to be added to "Accept" HTTP header */
  17. const char *EnumerateAcceptedTypes(size_t i) { return ICYPlaybackService_EnumerateAcceptedTypes(i); }
  18. NError CreatePlayback(jnl_http_t http, ifc_icy_playback **playback, int pass) { return ICYPlaybackService_CreateDemuxer(http, playback, pass); }
  19. enum
  20. {
  21. DISPATCHABLE_VERSION,
  22. };
  23. protected:
  24. virtual const char *WASABICALL ICYPlaybackService_EnumerateAcceptedTypes(size_t i) = 0;
  25. virtual NError WASABICALL ICYPlaybackService_CreateDemuxer(jnl_http_t http, ifc_icy_playback **playback, int pass) = 0;
  26. };