All Classes Namespaces Functions Variables Enumerations Properties Pages
layersound.h
1 /*
2 
3 Pencil2D - Traditional Animation Software
4 Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
5 Copyright (C) 2012-2020 Matthew Chiawen Chang
6 
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; version 2 of the License.
10 
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15 
16 */
17 #ifndef LAYERSOUND_H
18 #define LAYERSOUND_H
19 
20 #include <cstdint>
21 #include "keyframe.h"
22 #include "layer.h"
23 
24 class SoundClip;
25 class LayerSound : public Layer
26 {
27  Q_OBJECT
28 
29 public:
30  LayerSound( Object* object );
31  ~LayerSound();
32  QDomElement createDomElement(QDomDocument& doc) const override;
33  void loadDomElement(const QDomElement& element, QString dataDirPath, ProgressCallback progressStep) override;
34 
35  Status loadSoundClipAtFrame( const QString& sSoundClipName, const QString& filePathString, int frame );
36  void updateFrameLengths(int fps);
37 
38  SoundClip* getSoundClipWhichCovers(int frameNumber);
39 
40 protected:
41  Status saveKeyFrameFile(KeyFrame*, QString path) override;
42  KeyFrame* createKeyFrame(int position, Object*) override;
43 };
44 
45 #endif
Q_OBJECTQ_OBJECT
Definition: layer.h:38
Definition: object.h:41