window-basic-main-outputs.hpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. class OBSBasic;
  3. struct BasicOutputHandler {
  4. OBSOutput fileOutput;
  5. OBSOutput streamOutput;
  6. bool streamingActive = false;
  7. bool recordingActive = false;
  8. bool delayActive = false;
  9. OBSBasic *main;
  10. OBSSignal startRecording;
  11. OBSSignal stopRecording;
  12. OBSSignal startStreaming;
  13. OBSSignal stopStreaming;
  14. OBSSignal streamDelayStarting;
  15. OBSSignal streamDelayStopping;
  16. inline BasicOutputHandler(OBSBasic *main_) : main(main_) {}
  17. virtual ~BasicOutputHandler() {};
  18. virtual bool StartStreaming(obs_service_t *service) = 0;
  19. virtual bool StartRecording() = 0;
  20. virtual void StopStreaming() = 0;
  21. virtual void ForceStopStreaming() = 0;
  22. virtual void StopRecording() = 0;
  23. virtual bool StreamingActive() const = 0;
  24. virtual bool RecordingActive() const = 0;
  25. virtual void Update() = 0;
  26. inline bool Active() const
  27. {
  28. return streamingActive || recordingActive || delayActive;
  29. }
  30. };
  31. BasicOutputHandler *CreateSimpleOutputHandler(OBSBasic *main);
  32. BasicOutputHandler *CreateAdvancedOutputHandler(OBSBasic *main);