Audaspace 1.5.0
A high level audio library.
Loading...
Searching...
No Matches
FileWriter.h
Go to the documentation of this file.
1/*******************************************************************************
2 * Copyright 2009-2016 Jörg Müller
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 ******************************************************************************/
16
17#pragma once
18
26#include "file/IWriter.h"
27
28#include <string>
29#include <vector>
30#include <memory>
31
33
34class IReader;
35
40{
41private:
42 // hide default constructor, copy constructor and operator=
43 FileWriter() = delete;
44 FileWriter(const FileWriter&) = delete;
45 FileWriter& operator=(const FileWriter&) = delete;
46
47public:
57 static std::shared_ptr<IWriter> createWriter(const std::string &filename, DeviceSpecs specs, Container format, Codec codec, unsigned int bitrate);
58
66 static void writeReader(std::shared_ptr<IReader> reader, std::shared_ptr<IWriter> writer, unsigned int length, unsigned int buffersize, void(*callback)(float, void*) = nullptr, void* data = nullptr);
67
75 static void writeReader(std::shared_ptr<IReader> reader, std::vector<std::shared_ptr<IWriter> >& writers, unsigned int length, unsigned int buffersize, void(*callback)(float, void*) = nullptr, void* data = nullptr);
76};
77
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition Audaspace.h:119
#define AUD_NAMESPACE_BEGIN
Opens the audaspace namespace aud.
Definition Audaspace.h:116
#define AUD_API
Used for exporting symbols in the shared library.
Definition Audaspace.h:93
Defines the IWriter interface as well as Container and Codec types.
Container
Container formats for writers.
Definition IWriter.h:31
Codec
Audio codecs for writers.
Definition IWriter.h:44
Defines all important macros and basic data structures for stream format descriptions.
The FileWriter class is able to create IWriter classes as well as write readers to them.
Definition FileWriter.h:40
static void writeReader(std::shared_ptr< IReader > reader, std::vector< std::shared_ptr< IWriter > > &writers, unsigned int length, unsigned int buffersize, void(*callback)(float, void *)=nullptr, void *data=nullptr)
Writes a reader to several writers.
static void writeReader(std::shared_ptr< IReader > reader, std::shared_ptr< IWriter > writer, unsigned int length, unsigned int buffersize, void(*callback)(float, void *)=nullptr, void *data=nullptr)
Writes a reader to a writer.
static std::shared_ptr< IWriter > createWriter(const std::string &filename, DeviceSpecs specs, Container format, Codec codec, unsigned int bitrate)
Creates a new IWriter.
This class represents a sound source as stream or as buffer which can be read for example by another ...
Definition IReader.h:35
Specification of a sound device.
Definition Specification.h:129