window-basic-main-outputs.hpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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 streamStopping;
  16. OBSSignal recordStopping;
  17. inline BasicOutputHandler(OBSBasic *main_) : main(main_) {}
  18. virtual ~BasicOutputHandler() {};
  19. virtual bool StartStreaming(obs_service_t *service) = 0;
  20. virtual bool StartRecording() = 0;
  21. virtual void StopStreaming() = 0;
  22. virtual void ForceStopStreaming() = 0;
  23. virtual void StopRecording() = 0;
  24. virtual bool StreamingActive() const = 0;
  25. virtual bool RecordingActive() const = 0;
  26. virtual void Update() = 0;
  27. inline bool Active() const
  28. {
  29. return streamingActive || recordingActive || delayActive;
  30. }
  31. };
  32. BasicOutputHandler *CreateSimpleOutputHandler(OBSBasic *main);
  33. BasicOutputHandler *CreateAdvancedOutputHandler(OBSBasic *main);