lmms
Cross-platform music production software
Toggle main menu visibility
Loading...
Searching...
No Matches
include
AudioFileWave.h
Go to the documentation of this file.
1
/*
2
* AudioFileWave.h - AudioDevice which encodes wave-stream and writes it
3
* into a WAVE-file. This is used for song-export.
4
*
5
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
6
*
7
* This file is part of LMMS - https://lmms.io
8
*
9
* This program is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU General Public
11
* License as published by the Free Software Foundation; either
12
* version 2 of the License, or (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
* General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public
20
* License along with this program (see COPYING); if not, write to the
21
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22
* Boston, MA 02110-1301 USA.
23
*
24
*/
25
26
#ifndef LMMS_AUDIO_FILE_WAVE_H
27
#define LMMS_AUDIO_FILE_WAVE_H
28
29
#include "lmmsconfig.h"
30
#include "
AudioFileDevice.h
"
31
32
#include <sndfile.h>
33
34
namespace
lmms
35
{
36
37
class
AudioFileWave
:
public
AudioFileDevice
38
{
39
public
:
40
AudioFileWave
(
OutputSettings
const
& outputSettings,
41
const
ch_cnt_t
channels
,
42
bool
& successful,
43
const
QString & file,
44
AudioEngine
*
audioEngine
);
45
~AudioFileWave
()
override
;
46
47
static
AudioFileDevice
*
getInst
(
const
QString & outputFilename,
48
OutputSettings
const
& outputSettings,
49
const
ch_cnt_t
channels
,
50
AudioEngine
*
audioEngine
,
51
bool
& successful )
52
{
53
return
new
AudioFileWave
( outputSettings,
channels
, successful,
54
outputFilename,
audioEngine
);
55
}
56
57
58
private
:
59
void
writeBuffer
(
const
SampleFrame
* _ab,
const
f_cnt_t
_frames)
override
;
60
61
bool
startEncoding
();
62
void
finishEncoding
();
63
64
private
:
65
SF_INFO
m_si
;
66
SNDFILE *
m_sf
;
67
} ;
68
69
70
}
// namespace lmms
71
72
#endif
// LMMS_AUDIO_FILE_WAVE_H
AudioFileDevice.h
lmms::AudioDevice::audioEngine
AudioEngine * audioEngine()
Definition
AudioDevice.h:84
lmms::AudioDevice::channels
ch_cnt_t channels() const
Definition
AudioDevice.h:82
lmms::AudioEngine
Definition
AudioEngine.h:66
lmms::AudioFileDevice::AudioFileDevice
AudioFileDevice(OutputSettings const &outputSettings, const ch_cnt_t _channels, const QString &_file, AudioEngine *audioEngine)
Definition
AudioFileDevice.cpp:35
lmms::AudioFileWave::m_sf
SNDFILE * m_sf
Definition
AudioFileWave.h:66
lmms::AudioFileWave::getInst
static AudioFileDevice * getInst(const QString &outputFilename, OutputSettings const &outputSettings, const ch_cnt_t channels, AudioEngine *audioEngine, bool &successful)
Definition
AudioFileWave.h:47
lmms::AudioFileWave::m_si
SF_INFO m_si
Definition
AudioFileWave.h:65
lmms::AudioFileWave::writeBuffer
void writeBuffer(const SampleFrame *_ab, const f_cnt_t _frames) override
Write size sample frames from buf into the output file.
Definition
AudioFileWave.cpp:96
lmms::AudioFileWave::finishEncoding
void finishEncoding()
Definition
AudioFileWave.cpp:126
lmms::AudioFileWave::AudioFileWave
AudioFileWave(OutputSettings const &outputSettings, const ch_cnt_t channels, bool &successful, const QString &file, AudioEngine *audioEngine)
Definition
AudioFileWave.cpp:34
lmms::AudioFileWave::startEncoding
bool startEncoding()
Definition
AudioFileWave.cpp:55
lmms::OutputSettings
Definition
OutputSettings.h:36
lmms::SampleFrame
Definition
SampleFrame.h:41
lmms
Definition
RemotePluginBase.cpp:34
lmms::ch_cnt_t
std::uint16_t ch_cnt_t
Definition
LmmsTypes.h:44
lmms::f_cnt_t
std::uint64_t f_cnt_t
Definition
LmmsTypes.h:43
Generated on
for lmms by
1.18.0