api_podcasts.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #ifndef NULLSOFT_API_ML_WIRE_PODCASTS_H
  2. #define NULLSOFT_API_ML_WIRE_PODCASTS_H
  3. #include <bfc/dispatch.h>
  4. class ifc_podcastsubscribecallback;
  5. class ifc_podcast;
  6. class api_podcasts : public Dispatchable
  7. {
  8. protected:
  9. api_podcasts() {}
  10. ~api_podcasts() {}
  11. public:
  12. size_t GetNumPodcasts();
  13. ifc_podcast *EnumPodcast( size_t i );
  14. // TODO: locking mechanism like api_playlists
  15. // TODO: Remove playlists
  16. // TODO: int Subscribe(const wchar_t *url, ifc_podcastsubscribecallback *callback);
  17. /* TODO: method to download/parse a podcast channel w/o adding it to the list
  18. maybe as part of a separate class? */
  19. enum
  20. {
  21. API_PODCASTS_GETNUMPODCASTS = 0,
  22. API_PODCASTS_ENUMPODCAST = 1,
  23. };
  24. };
  25. inline size_t api_podcasts::GetNumPodcasts()
  26. {
  27. return _call( API_PODCASTS_GETNUMPODCASTS, (size_t)0 );
  28. }
  29. inline ifc_podcast *api_podcasts::EnumPodcast( size_t i )
  30. {
  31. return _call( API_PODCASTS_ENUMPODCAST, (ifc_podcast *)0, i );
  32. }
  33. // {4D2E9987-D955-45f0-A06F-371405E8B961}
  34. static const GUID api_podcastsGUID =
  35. { 0x4d2e9987, 0xd955, 0x45f0, { 0xa0, 0x6f, 0x37, 0x14, 0x5, 0xe8, 0xb9, 0x61 } };
  36. #endif // !NULLSOFT_API_ML_WIRE_PODCASTS_H