lmms
Cross-platform music production software
Toggle main menu visibility
Loading...
Searching...
No Matches
include
AudioFileFlac.h
Go to the documentation of this file.
1
/*
2
* AudioFileFlac.h - Audio device which encodes a wave stream into a FLAC file.
3
*
4
* Copyright (c) 2017 to present Levin Oehlmann <irrenhaus3/at/gmail[dot]com> et al.
5
*
6
* This file is part of LMMS - https://lmms.io
7
*
8
* This program is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU General Public
10
* License as published by the Free Software Foundation; either
11
* version 2 of the License, or (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
* General Public License for more details.
17
*
18
* You should have received a copy of the GNU General Public
19
* License along with this program (see COPYING); if not, write to the
20
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21
* Boston, MA 02110-1301 USA.
22
*
23
*/
24
25
#ifndef LMMS_AUDIO_FILE_FLAC_H
26
#define LMMS_AUDIO_FILE_FLAC_H
27
28
#include "lmmsconfig.h"
29
30
#include "
AudioFileDevice.h
"
31
#include <sndfile.h>
32
33
namespace
lmms
34
{
35
36
class
AudioFileFlac
:
public
AudioFileDevice
37
{
38
public
:
39
AudioFileFlac
(
OutputSettings
const
& outputSettings,
40
ch_cnt_t
const
channels
,
41
bool
& successful,
42
QString
const
& file,
43
AudioEngine
*
audioEngine
44
);
45
46
~AudioFileFlac
()
override
;
47
48
static
AudioFileDevice
*
getInst
(QString
const
& outputFilename,
49
OutputSettings
const
& outputSettings,
50
ch_cnt_t
const
channels
,
51
AudioEngine
*
audioEngine
,
52
bool
& successful)
53
{
54
return
new
AudioFileFlac
(
55
outputSettings,
56
channels
,
57
successful,
58
outputFilename,
59
audioEngine
60
);
61
}
62
63
private
:
64
65
SF_INFO
m_sfinfo
;
66
SNDFILE*
m_sf
;
67
68
void
writeBuffer
(
const
SampleFrame
* _ab,
f_cnt_t
const
frames)
override
;
69
70
bool
startEncoding
();
71
void
finishEncoding
();
72
73
};
74
75
76
}
// namespace lmms
77
78
#endif
// LMMS_AUDIO_FILE_FLAC_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::AudioFileFlac::getInst
static AudioFileDevice * getInst(QString const &outputFilename, OutputSettings const &outputSettings, ch_cnt_t const channels, AudioEngine *audioEngine, bool &successful)
Definition
AudioFileFlac.h:48
lmms::AudioFileFlac::writeBuffer
void writeBuffer(const SampleFrame *_ab, f_cnt_t const frames) override
Write size sample frames from buf into the output file.
Definition
AudioFileFlac.cpp:90
lmms::AudioFileFlac::startEncoding
bool startEncoding()
Definition
AudioFileFlac.cpp:47
lmms::AudioFileFlac::AudioFileFlac
AudioFileFlac(OutputSettings const &outputSettings, ch_cnt_t const channels, bool &successful, QString const &file, AudioEngine *audioEngine)
Definition
AudioFileFlac.cpp:35
lmms::AudioFileFlac::m_sf
SNDFILE * m_sf
Definition
AudioFileFlac.h:66
lmms::AudioFileFlac::m_sfinfo
SF_INFO m_sfinfo
Definition
AudioFileFlac.h:65
lmms::AudioFileFlac::finishEncoding
void finishEncoding()
Definition
AudioFileFlac.cpp:120
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