lmms
Cross-platform music production software
Toggle main menu visibility
Loading...
Searching...
No Matches
include
SampleRecordHandle.h
Go to the documentation of this file.
1
/*
2
* SampleRecordHandle.h - play-handle for recording a sample
3
*
4
* Copyright (c) 2008 Csaba Hruska <csaba.hruska/at/gmail.com>
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_SAMPLE_RECORD_HANDLE_H
26
#define LMMS_SAMPLE_RECORD_HANDLE_H
27
28
#include <QList>
29
#include <QPair>
30
#include <memory>
31
32
#include "
PlayHandle.h
"
33
#include "
TimePos.h
"
34
35
namespace
lmms
36
{
37
38
39
class
PatternTrack
;
40
class
SampleBuffer
;
41
class
SampleClip
;
42
class
Track
;
43
44
45
class
SampleRecordHandle
:
public
PlayHandle
46
{
47
public
:
48
SampleRecordHandle
(
SampleClip
* clip );
49
~SampleRecordHandle
()
override
;
50
51
void
play
(
SampleFrame
* _working_buffer )
override
;
52
bool
isFinished
()
const override
;
53
54
bool
isFromTrack
(
const
Track
* _track )
const override
;
55
56
f_cnt_t
framesRecorded
()
const
;
57
std::shared_ptr<const SampleBuffer>
createSampleBuffer
();
58
59
60
private
:
61
virtual
void
writeBuffer
(
const
SampleFrame
* _ab,
62
const
f_cnt_t
_frames );
63
64
using
bufferList
= QList<QPair<SampleFrame*, f_cnt_t>>;
65
bufferList
m_buffers
;
66
f_cnt_t
m_framesRecorded
;
67
TimePos
m_minLength
;
68
69
Track
*
m_track
;
70
PatternTrack
*
m_patternTrack
;
71
SampleClip
*
m_clip
;
72
73
} ;
74
75
76
}
// namespace lmms
77
78
#endif
// LMMS_SAMPLE_RECORD_HANDLE_H
PlayHandle.h
TimePos.h
lmms::PatternTrack
Definition
PatternTrack.h:47
lmms::PlayHandle::PlayHandle
PlayHandle(const Type type, f_cnt_t offset=0)
Definition
PlayHandle.cpp:36
lmms::SampleBuffer
Definition
SampleBuffer.h:39
lmms::SampleClip
Definition
SampleClip.h:46
lmms::SampleFrame
Definition
SampleFrame.h:41
lmms::SampleRecordHandle::m_clip
SampleClip * m_clip
Definition
SampleRecordHandle.h:71
lmms::SampleRecordHandle::play
void play(SampleFrame *_working_buffer) override
Definition
SampleRecordHandle.cpp:66
lmms::SampleRecordHandle::m_minLength
TimePos m_minLength
Definition
SampleRecordHandle.h:67
lmms::SampleRecordHandle::framesRecorded
f_cnt_t framesRecorded() const
Definition
SampleRecordHandle.cpp:100
lmms::SampleRecordHandle::writeBuffer
virtual void writeBuffer(const SampleFrame *_ab, const f_cnt_t _frames)
Definition
SampleRecordHandle.cpp:129
lmms::SampleRecordHandle::m_framesRecorded
f_cnt_t m_framesRecorded
Definition
SampleRecordHandle.h:66
lmms::SampleRecordHandle::m_buffers
bufferList m_buffers
Definition
SampleRecordHandle.h:65
lmms::SampleRecordHandle::m_patternTrack
PatternTrack * m_patternTrack
Definition
SampleRecordHandle.h:70
lmms::SampleRecordHandle::SampleRecordHandle
SampleRecordHandle(SampleClip *clip)
Definition
SampleRecordHandle.cpp:38
lmms::SampleRecordHandle::createSampleBuffer
std::shared_ptr< const SampleBuffer > createSampleBuffer()
Definition
SampleRecordHandle.cpp:108
lmms::SampleRecordHandle::isFinished
bool isFinished() const override
Definition
SampleRecordHandle.cpp:84
lmms::SampleRecordHandle::m_track
Track * m_track
Definition
SampleRecordHandle.h:69
lmms::SampleRecordHandle::bufferList
QList< QPair< SampleFrame *, f_cnt_t > > bufferList
Definition
SampleRecordHandle.h:64
lmms::SampleRecordHandle::isFromTrack
bool isFromTrack(const Track *_track) const override
Definition
SampleRecordHandle.cpp:92
lmms::TimePos
Definition
TimePos.h:68
lmms::Track
Base-class for all tracks.
Definition
Track.h:67
lmms
Definition
RemotePluginBase.cpp:34
lmms::f_cnt_t
std::uint64_t f_cnt_t
Definition
LmmsTypes.h:43
Generated on
for lmms by
1.18.0