Twitch SDK (Internal)
audiocapturebase.h
Go to the documentation of this file.
1 /********************************************************************************************
2 * Twitch Broadcasting SDK
3 *
4 * This software is supplied under the terms of a license agreement with Twitch Interactive, Inc. and
5 * may not be copied or used except in accordance with the terms of that agreement
6 * Copyright (c) 2012-2016 Twitch Interactive, Inc.
7 *********************************************************************************************/
8 
9 #pragma once
10 
12 
13 namespace ttv
14 {
15  namespace broadcast
16  {
17  class AudioCaptureBase;
18  class IAudioMixer;
19  }
20 }
21 
26 {
27 public:
29 
30 public:
31  // IAudioCapture implementation
32  virtual void SetAudioMixer(const std::shared_ptr<IAudioMixer>& mixer) override;
33  virtual bool GetMuted() const override;
34  virtual void SetMuted(bool muted) override;
35  virtual void SetAudioLayer(AudioLayerId layer) override;
36  virtual AudioLayerId GetAudioLayer() const override;
37  virtual void SetInitialTime(uint64_t initialTime) override;
38 
39  virtual TTV_ErrorCode Initialize() override;
40  virtual TTV_ErrorCode Start() override;
41  virtual TTV_ErrorCode Stop() override;
42  virtual TTV_ErrorCode Shutdown() override;
43 
44  // Helper functions to convert between system time and sample time.
45  static uint64_t SamplesToSystemTime(uint64_t samples, uint32_t sampleRate);
46  static uint64_t SystemTimeToSamples(uint64_t time, uint32_t sampleRate);
47 
48 protected:
49  std::shared_ptr<IAudioMixer> mAudioMixer;
51  uint64_t mInitialSysTime;
52  bool mMuted;
54  bool mStarted;
55 };
static uint64_t SamplesToSystemTime(uint64_t samples, uint32_t sampleRate)
virtual void SetMuted(bool muted) override
bool mStarted
Definition: audiocapturebase.h:54
virtual void SetInitialTime(uint64_t initialTime) override
uint32_t AudioLayerId
Definition: broadcasttypes.h:192
uint64_t mInitialSysTime
Definition: audiocapturebase.h:51
virtual AudioLayerId GetAudioLayer() const override
bool mInitialized
Definition: audiocapturebase.h:53
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
virtual TTV_ErrorCode Start() override
std::shared_ptr< IAudioMixer > mAudioMixer
Definition: audiocapturebase.h:49
virtual void SetAudioLayer(AudioLayerId layer) override
static uint64_t SystemTimeToSamples(uint64_t time, uint32_t sampleRate)
AudioLayerId mAudioLayer
Definition: audiocapturebase.h:50
virtual TTV_ErrorCode Shutdown() override
virtual TTV_ErrorCode Stop() override
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
Definition: audiocapturebase.h:25
bool mMuted
Definition: audiocapturebase.h:52
virtual bool GetMuted() const override
virtual TTV_ErrorCode Initialize() override
virtual void SetAudioMixer(const std::shared_ptr< IAudioMixer > &mixer) override
Definition: iaudiomixer.h:28
Definition: iaudiocapture.h:34