YouTubeAppDock.hpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. #include "BrowserDock.hpp"
  3. #include <QPointer>
  4. class QAction;
  5. class QCefWidget;
  6. class YoutubeApiWrappers;
  7. class YouTubeAppDock : public BrowserDock {
  8. Q_OBJECT
  9. public:
  10. YouTubeAppDock(const QString &title);
  11. enum streaming_mode_t { YTSM_ACCOUNT, YTSM_STREAM_KEY };
  12. void AccountConnected();
  13. void AccountDisconnected();
  14. void Update();
  15. void BroadcastCreated(const char *stream_id);
  16. void BroadcastSelected(const char *stream_id);
  17. void IngestionStarted();
  18. void IngestionStopped();
  19. static bool IsYTServiceSelected();
  20. static YoutubeApiWrappers *GetYTApi();
  21. static void CleanupYouTubeUrls();
  22. public slots:
  23. void SettingsUpdated(bool cleanup = false);
  24. protected:
  25. void IngestionStarted(const char *stream_id, streaming_mode_t mode);
  26. void IngestionStopped(const char *stream_id, streaming_mode_t mode);
  27. private:
  28. std::string InitYTUserUrl();
  29. void SetVisibleYTAppDockInMenu(bool visible);
  30. void AddYouTubeAppDock();
  31. void CreateBrowserWidget(const std::string &url);
  32. virtual void showEvent(QShowEvent *event) override;
  33. virtual void closeEvent(QCloseEvent *event) override;
  34. void DispatchYTEvent(const char *event, const char *video_id, streaming_mode_t mode);
  35. void UpdateChannelId();
  36. void ReloadChatDock();
  37. void SetInitEvent(streaming_mode_t mode, const char *event = nullptr, const char *video_id = nullptr,
  38. const char *channelId = nullptr);
  39. QString channelId;
  40. QPointer<QCefWidget> dockBrowser;
  41. };