/ src / CoreAudio / AFAVFormatComponent / AVFormatFileObject.h
AVFormatFileObject.h
 1  /*
 2  This file is part of Darling.
 3  
 4  Copyright (C) 2020 Lubos Dolezel
 5  
 6  Darling 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 3 of the License, or
 9  (at your option) any later version.
10  
11  Darling 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 Darling.  If not, see <http://www.gnu.org/licenses/>.
18  */
19  
20  #ifndef _AV_FORMAT_FILE_OBJECT_H
21  #define _AV_FORMAT_FILE_OBJECT_H
22  #include "AudioFileComponentBase.h"
23  
24  template <typename FormatClass, typename FileClass, UInt32 FileType>
25  class AVFormatFileObject : public AudioFileObjectComponentBase
26  {
27  public:
28  	AVFormatFileObject(AudioComponentInstance inInstance)
29  	: AudioFileObjectComponentBase(inInstance)
30  	{
31  		mAudioFileObject = new FileClass;
32  	}
33  	AudioFileFormat* GetAudioFormat() const override
34  	{
35  		static FormatClass inst;
36  		return &inst;
37  	}
38  };
39  
40  #endif