LMMS
Loading...
Searching...
No Matches
SampleClip.h
Go to the documentation of this file.
1/*
2 * SampleClip.h
3 *
4 * Copyright (c) 2005-2014 Tobias Doerffel <tobydox/at/users.sourceforge.net>
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_CLIP_H
26#define LMMS_SAMPLE_CLIP_H
27
28#include <memory>
29#include "Clip.h"
30#include "Sample.h"
31
32namespace lmms
33{
34
35class SampleBuffer;
36
37namespace gui
38{
39
40class SampleClipView;
41
42} // namespace gui
43
44
45class SampleClip : public Clip
46{
47 Q_OBJECT
48 mapPropertyFromModel(bool,isRecord,setRecord,m_recordModel);
49public:
50 SampleClip(Track* track, Sample sample, bool isPlaying);
51 SampleClip(Track* track);
52 ~SampleClip() override;
53
54 SampleClip& operator=( const SampleClip& that ) = delete;
55
56 void changeLength( const TimePos & _length ) override;
57 const QString& sampleFile() const;
58 bool hasSampleFileLoaded(const QString & filename) const;
59
60 void saveSettings( QDomDocument & _doc, QDomElement & _parent ) override;
61 void loadSettings( const QDomElement & _this ) override;
62 inline QString nodeName() const override
63 {
64 return "sampleclip";
65 }
66
68 {
69 return m_sample;
70 }
71
72 TimePos sampleLength() const;
73 void setSampleStartFrame( f_cnt_t startFrame );
75 gui::ClipView * createView( gui::TrackView * _tv ) override;
76
77
78 bool isPlaying() const;
79 void setIsPlaying(bool isPlaying);
80 void setSampleBuffer(std::shared_ptr<const SampleBuffer> sb);
81
82 SampleClip* clone() override
83 {
84 return new SampleClip(*this);
85 }
86
87public slots:
88 void setSampleFile(const QString& sf);
89 void updateLength();
90 void toggleRecord();
92 void updateTrackClips();
93
94protected:
95 SampleClip( const SampleClip& orig );
96
97private:
101
103
104
105signals:
108} ;
109
110
111} // namespace lmms
112
113#endif // LMMS_SAMPLE_CLIP_H
Definition AutomatableModel.h:497
Clip(Track *track)
Create a new Clip.
Definition Clip.cpp:47
Definition SampleBuffer.h:39
Definition SampleClip.h:46
void updateTrackClips()
Definition SampleClip.cpp:197
Sample & sample()
Definition SampleClip.h:67
gui::ClipView * createView(gui::TrackView *_tv) override
Definition SampleClip.cpp:346
SampleClip * clone() override
Definition SampleClip.h:82
void setSampleBuffer(std::shared_ptr< const SampleBuffer > sb)
Definition SampleClip.cpp:141
void saveSettings(QDomDocument &_doc, QDomElement &_parent) override
Definition SampleClip.cpp:266
void updateLength()
Definition SampleClip.cpp:225
void setSamplePlayLength(f_cnt_t length)
Definition SampleClip.cpp:258
void setSampleStartFrame(f_cnt_t startFrame)
Definition SampleClip.cpp:250
SampleClip(Track *track, Sample sample, bool isPlaying)
Definition SampleClip.cpp:38
bool hasSampleFileLoaded(const QString &filename) const
Definition SampleClip.cpp:136
void setIsPlaying(bool isPlaying)
Definition SampleClip.cpp:217
void setSampleFile(const QString &sf)
Definition SampleClip.cpp:154
SampleClip & operator=(const SampleClip &that)=delete
~SampleClip() override
Definition SampleClip.cpp:112
mapPropertyFromModel(bool, isRecord, setRecord, m_recordModel)
bool isPlaying() const
Definition SampleClip.cpp:209
void toggleRecord()
Definition SampleClip.cpp:178
void changeLength(const TimePos &_length) override
Change the length of this Clip.
Definition SampleClip.cpp:124
void loadSettings(const QDomElement &_this) override
Definition SampleClip.cpp:302
bool m_isPlaying
Definition SampleClip.h:100
Sample m_sample
Definition SampleClip.h:98
void playbackPositionChanged()
Definition SampleClip.cpp:187
TimePos sampleLength() const
Definition SampleClip.cpp:242
const QString & sampleFile() const
Definition SampleClip.cpp:131
BoolModel m_recordModel
Definition SampleClip.h:99
QString nodeName() const override
Definition SampleClip.h:62
Definition Sample.h:37
Definition TimePos.h:68
Base-class for all tracks.
Definition Track.h:68
Definition ClipView.h:52
Definition SampleClipView.h:42
Definition TrackView.h:60
Definition AudioPortAudio.cpp:223
Definition AudioAlsa.cpp:35
std::uint64_t f_cnt_t
Definition LmmsTypes.h:43
QString filename
Definition HydrogenImport.cpp:42
png_uint_32 length
Definition png.c:2247