window-basic-main-outputs.hpp 925 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. class OBSBasic;
  3. struct BasicOutputHandler {
  4. OBSOutput fileOutput;
  5. OBSOutput streamOutput;
  6. int activeRefs = 0;
  7. OBSBasic *main;
  8. OBSSignal startRecording;
  9. OBSSignal stopRecording;
  10. OBSSignal startStreaming;
  11. OBSSignal stopStreaming;
  12. inline BasicOutputHandler(OBSBasic *main_) : main(main_) {}
  13. virtual ~BasicOutputHandler() {};
  14. virtual bool StartStreaming(obs_service_t *service) = 0;
  15. virtual bool StartRecording() = 0;
  16. virtual void StopStreaming() = 0;
  17. virtual void StopRecording() = 0;
  18. virtual bool StreamingActive() const = 0;
  19. virtual bool RecordingActive() const = 0;
  20. virtual void Update() = 0;
  21. inline bool Active() const {return !!activeRefs;}
  22. };
  23. BasicOutputHandler *CreateSimpleOutputHandler(OBSBasic *main);
  24. BasicOutputHandler *CreateAdvancedOutputHandler(OBSBasic *main);