[cosmetics] update date in GPL header
[vuplus_xbmc] / xbmc / cores / AudioEngine / Engines / CoreAudio / ICoreAudioSource.h
1 #pragma once
2 /*
3  *      Copyright (C) 2011-2013 Team XBMC
4  *      http://xbmc.org
5  *
6  *  This Program is free software; you can redistribute it and/or modify
7  *  it under the terms of the GNU General Public License as published by
8  *  the Free Software Foundation; either version 2, or (at your option)
9  *  any later version.
10  *
11  *  This Program is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  *  GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License
17  *  along with XBMC; see the file COPYING.  If not, see
18  *  <http://www.gnu.org/licenses/>.
19  *
20  */
21
22 #include <AudioUnit/AudioUnit.h>
23
24 #include "cores/AudioEngine/AEAudioFormat.h"
25 #include "cores/AudioEngine/Interfaces/AE.h"
26 #include "utils/StdString.h"
27
28 class ICoreAudioSource;
29
30 /**
31  * ICoreAudioSource Interface
32  */
33 class ICoreAudioSource
34 {
35 private:
36   std::string        m_inputName;
37   AudioUnitElement  m_inputBus;
38 public:
39   // Function to request rendered data from a data source
40   virtual OSStatus Render(AudioUnitRenderActionFlags* actionFlags, 
41                           const AudioTimeStamp* pTimeStamp, 
42                           UInt32 busNumber, 
43                           UInt32 frameCount, 
44                           AudioBufferList* pBufList) = 0;
45   //std::string InputName() { return m_inputName; };
46   //void InputName(std::string inputName) { m_inputName = inputName; };
47
48   //AudioUnitElement InputBus() { return m_inputBus; };
49   //void InputBus(AudioUnitElement inputBus) { m_inputBus = m_inputBus; };
50 };