lmms
Cross-platform music production software
Toggle main menu visibility
Loading...
Searching...
No Matches
include
AudioFileMP3.h
Go to the documentation of this file.
1
/*
2
* AudioFileMP3.h - Audio-device which encodes a wave stream into
3
* an MP3 file. This is used for song export.
4
*
5
* Copyright (c) 2017 to present Michael Gregorius <michael.gregorius.git/at/arcor[dot]de>
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_MP3_H
27
#define LMMS_AUDIO_FILE_MP3_H
28
29
#include "lmmsconfig.h"
30
31
#ifdef LMMS_HAVE_MP3LAME
32
33
#include "
AudioFileDevice.h
"
34
35
#include "lame/lame.h"
36
37
namespace
lmms
38
{
39
40
class
AudioFileMP3
:
public
AudioFileDevice
41
{
42
public
:
43
AudioFileMP3
(
OutputSettings
const
& outputSettings,
44
const
ch_cnt_t
_channels,
45
bool
& successful,
46
const
QString & _file,
47
AudioEngine
*
audioEngine
);
48
~AudioFileMP3
()
override
;
49
50
static
AudioFileDevice
*
getInst
(
const
QString & outputFilename,
51
OutputSettings
const
& outputSettings,
52
const
ch_cnt_t
channels
,
53
AudioEngine
*
audioEngine
,
54
bool
& successful )
55
{
56
return
new
AudioFileMP3
( outputSettings,
channels
, successful,
57
outputFilename,
audioEngine
);
58
}
59
60
protected
:
61
void
writeBuffer
(
const
SampleFrame
*
/* _buf*/
,
const
f_cnt_t
/*_frames*/
)
override
;
62
63
private
:
64
void
flushRemainingBuffers
();
65
bool
initEncoder
();
66
void
tearDownEncoder
();
67
68
private
:
69
lame_t
m_lame
;
70
};
71
72
}
// namespace lmms
73
74
#endif
// LMMS_HAVE_MP3LAME
75
76
#endif
// LMMS_AUDIO_FILE_MP3_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::AudioFileMP3::flushRemainingBuffers
void flushRemainingBuffers()
Definition
AudioFileMP3.cpp:81
lmms::AudioFileMP3::m_lame
lame_t m_lame
Definition
AudioFileMP3.h:69
lmms::AudioFileMP3::initEncoder
bool initEncoder()
Definition
AudioFileMP3.cpp:107
lmms::AudioFileMP3::tearDownEncoder
void tearDownEncoder()
Definition
AudioFileMP3.cpp:129
lmms::AudioFileMP3::writeBuffer
void writeBuffer(const SampleFrame *, const f_cnt_t) override
Write size sample frames from buf into the output file.
Definition
AudioFileMP3.cpp:58
lmms::AudioFileMP3::AudioFileMP3
AudioFileMP3(OutputSettings const &outputSettings, const ch_cnt_t _channels, bool &successful, const QString &_file, AudioEngine *audioEngine)
Definition
AudioFileMP3.cpp:38
lmms::AudioFileMP3::getInst
static AudioFileDevice * getInst(const QString &outputFilename, OutputSettings const &outputSettings, const ch_cnt_t channels, AudioEngine *audioEngine, bool &successful)
Definition
AudioFileMP3.h:50
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