synfig-core  1.0.3
soundprocessor.h
Go to the documentation of this file.
1 /* === S Y N F I G ========================================================= */
21 /* ========================================================================= */
22 
23 /* === S T A R T =========================================================== */
24 
25 #ifndef __SYNFIG_SOUNDPROCESSOR_H
26 #define __SYNFIG_SOUNDPROCESSOR_H
27 
28 /* === H E A D E R S ======================================================= */
29 
30 #include <ETL/handle>
31 #include <map>
32 #include <limits>
33 
34 #include "time.h"
35 #include "real.h"
36 #include "filesystem.h"
37 
38 
39 /* === M A C R O S ========================================================= */
40 
41 /* === T Y P E D E F S ===================================================== */
42 
43 /* === C L A S S E S & S T R U C T S ======================================= */
44 
45 namespace synfig
46 {
47 
49 {
50 public:
51  class PlayOptions {
52  public:
55  PlayOptions(): delay(0.0), volume(1.0) { }
56  explicit PlayOptions(Time delay, Real volume): delay(delay), volume(volume) { }
57  };
58 
59  class Sound {
60  public:
62  Sound(): filename() { }
63  explicit Sound(const String &filename): filename(FileSystem::fix_slashes(filename)) { }
64  };
65 
66 private:
67  class Internal;
68  Internal *internal;
69 
70 public:
73 
74  void clear();
75 
76  void beginGroup(const PlayOptions &playOptions);
77  void endGroup();
78 
79  void addSound(const PlayOptions &playOptions, const Sound &sound);
80 
81  Time get_position() const;
82  void set_position(Time value);
83 
84  bool get_playing() const;
85  void set_playing(bool value);
86 
87  static bool subsys_init();
88  static bool subsys_stop();
89 };
90 
91 }; /* end namespace synfig */
92 
93 /* -- E N D ----------------------------------------------------------------- */
94 
95 #endif