Twitch SDK (Internal)
audioconverter.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-2017 Twitch Interactive, Inc.
7  *
8  *********************************************************************************************/
9 
10 #pragma once
11 
14 
15 namespace ttv
16 {
27  {
28  public:
38  virtual void BindInputBuffer(const void* buffer, SampleRange range) = 0;
39 
46  virtual SampleRange GetOutputSampleRange() const = 0;
47 
60  virtual SampleRange TransferToOutputBuffer(void* buffer, SampleRange range) = 0;
61 
66  virtual void UnbindInputBuffer() = 0;
67  };
68 
69 
85  template <typename InputBufferFormat, typename OutputBufferFormat, typename AudioConvertOptions = void>
87  {
88  public:
90  : mPipeline(mContext)
91  {
92  }
93 
94 
95  virtual void BindInputBuffer(const void* buffer, SampleRange range) override
96  {
97  mPipeline.BindInputBuffer(reinterpret_cast<const typename InputBufferFormat::SampleType*>(buffer), range);
98  }
99 
100 
101  virtual SampleRange GetOutputSampleRange() const override
102  {
103  return mPipeline.GetOutputSampleRange();
104  }
105 
106 
107  virtual SampleRange TransferToOutputBuffer(void* buffer, SampleRange range) override
108  {
109  return mPipeline.TransferToOutputBuffer(reinterpret_cast<typename OutputBufferFormat::SampleType*>(buffer), range);
110  }
111 
112 
113  virtual void UnbindInputBuffer() override
114  {
115  mPipeline.UnbindInputBuffer();
116  }
117 
118  private:
120 
123  };
124 }
virtual void BindInputBuffer(const void *buffer, SampleRange range)=0
virtual void UnbindInputBuffer() override
Definition: audioconverter.h:113
ContextType mContext
Definition: audioconverter.h:121
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
AudioConvertPipeline< InputBufferFormat, OutputBufferFormat, ContextType > mPipeline
Definition: audioconverter.h:122
Definition: dsputilities.h:60
AudioConverter()
Definition: audioconverter.h:89
virtual void BindInputBuffer(const void *buffer, SampleRange range) override
Definition: audioconverter.h:95
virtual SampleRange TransferToOutputBuffer(void *buffer, SampleRange range) override
Definition: audioconverter.h:107
virtual SampleRange GetOutputSampleRange() const =0
Definition: audioconvertpipeline.h:40
virtual void UnbindInputBuffer()=0
Definition: audioconverter.h:26
Definition: audioconverter.h:86
virtual SampleRange TransferToOutputBuffer(void *buffer, SampleRange range)=0
virtual SampleRange GetOutputSampleRange() const override
Definition: audioconverter.h:101