Audaspace 1.5.0
A high level audio library.
Loading...
Searching...
No Matches
VolumeReader.h
Go to the documentation of this file.
1/*******************************************************************************
2* Copyright 2015-2016 Juan Francisco Crespo Galán
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
25#include "IReader.h"
26#include "ISound.h"
27#include "VolumeStorage.h"
28
29#include <memory>
30
32
37{
38private:
42 std::shared_ptr<IReader> m_reader;
43
47 std::shared_ptr<VolumeStorage> m_volumeStorage;
48
49
50 // delete copy constructor and operator=
51 VolumeReader(const VolumeReader&) = delete;
52 VolumeReader& operator=(const VolumeReader&) = delete;
53
54public:
60 VolumeReader(std::shared_ptr<IReader> reader, std::shared_ptr<VolumeStorage> volumeStorage);
61
62 virtual bool isSeekable() const;
63 virtual void seek(int position);
64 virtual int getLength() const;
65 virtual int getPosition() const;
66 virtual Specs getSpecs() const;
67 virtual void read(int& length, bool& eos, sample_t* buffer);
68};
69
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition Audaspace.h:119
float sample_t
Sample type.(float samples)
Definition Audaspace.h:126
#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
The IReader interface.
The ISound interface.
The VolumeStorage class.
This class represents a sound source as stream or as buffer which can be read for example by another ...
Definition IReader.h:35
This class represents a reader for a sound that has its own shared volume.
Definition VolumeReader.h:37
virtual int getLength() const
Returns an approximated length of the source in samples.
virtual Specs getSpecs() const
Returns the specification of the reader.
virtual void seek(int position)
Seeks to a specific position in the source.
virtual void read(int &length, bool &eos, sample_t *buffer)
Request to read the next length samples out of the source.
virtual bool isSeekable() const
Tells whether the source provides seeking functionality or not.
virtual int getPosition() const
Returns the position of the source as a sample count value.
VolumeReader(std::shared_ptr< IReader > reader, std::shared_ptr< VolumeStorage > volumeStorage)
Creates a new volume reader.
Specification of a sound source.
Definition Specification.h:119