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 void updateLength() override;
58
59 const QString& sampleFile() const;
60 bool hasSampleFileLoaded(const QString & filename) const;
61
62 void saveSettings( QDomDocument & _doc, QDomElement & _parent ) override;
63 void loadSettings( const QDomElement & _this ) override;
64 inline QString nodeName() const override
65 {
66 return "sampleclip";
67 }
68
70 {
71 return m_sample;
72 }
73
74 TimePos sampleLength() const;
75 void setSampleStartFrame( f_cnt_t startFrame );
77 void setStartTimeOffset(const TimePos& startTimeOffset) override;
78 gui::ClipView * createView( gui::TrackView * _tv ) override;
79
80
81 bool isPlaying() const;
82 void setIsPlaying(bool isPlaying);
83 void setSampleBuffer(std::shared_ptr<const SampleBuffer> sb);
84
85 SampleClip* clone() override
86 {
87 return new SampleClip(*this);
88 }
89
90public slots:
91 void setSampleFile(const QString& sf);
92 void toggleRecord();
94 void updateTrackClips();
95 void tempoChanged();
96
97protected:
98 SampleClip( const SampleClip& orig );
99
100private:
105
107
108
109signals:
112} ;
113
114
115} // namespace lmms
116
117#endif // LMMS_SAMPLE_CLIP_H
Definition AutomatableModel.h:497
Clip(Track *track)
Create a new Clip.
Definition Clip.cpp:47
TimePos startTimeOffset() const
Definition Clip.cpp:212
Definition SampleBuffer.h:39
Definition SampleClip.h:46
void updateTrackClips()
Definition SampleClip.cpp:197
Sample & sample()
Definition SampleClip.h:69
gui::ClipView * createView(gui::TrackView *_tv) override
Definition SampleClip.cpp:361
SampleClip * clone() override
Definition SampleClip.h:85
void setSampleBuffer(std::shared_ptr< const SampleBuffer > sb)
Definition SampleClip.cpp:141
int m_startFrameOffset
Definition SampleClip.h:104
void saveSettings(QDomDocument &_doc, QDomElement &_parent) override
Definition SampleClip.cpp:281
void setSamplePlayLength(f_cnt_t length)
Definition SampleClip.cpp:273
void setSampleStartFrame(f_cnt_t startFrame)
Definition SampleClip.cpp:265
SampleClip(Track *track, Sample sample, bool isPlaying)
Definition SampleClip.cpp:39
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 setStartTimeOffset(const TimePos &startTimeOffset) override
Definition SampleClip.cpp:250
void tempoChanged()
Definition SampleClip.cpp:243
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:317
bool m_isPlaying
Definition SampleClip.h:103
Sample m_sample
Definition SampleClip.h:101
void playbackPositionChanged()
Definition SampleClip.cpp:187
TimePos sampleLength() const
Definition SampleClip.cpp:257
const QString & sampleFile() const
Definition SampleClip.cpp:131
void updateLength() override
Definition SampleClip.cpp:225
BoolModel m_recordModel
Definition SampleClip.h:102
QString nodeName() const override
Definition SampleClip.h:64
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:209
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