Choreonoid  1.5
TimeBar.h
Go to the documentation of this file.
1 
5 #ifndef CNOID_BASE_TIME_BAR_H
6 #define CNOID_BASE_TIME_BAR_H
7 
8 #include <cnoid/ToolBar>
9 #include "exportdecl.h"
10 
11 namespace cnoid {
12 
13 class ExtensionManager;
14 class TimeBarImpl;
15 
17 {
18 public:
19  static void initialize(ExtensionManager* ext);
20  static TimeBar* instance();
21 
26  SignalProxy<bool(double time), LogicalProduct> sigPlaybackInitialized();
27 
28  SignalProxy<void(double time)> sigPlaybackStarted();
29 
31 
33 
34  inline double time() const { return time_; }
35 
36  bool setTime(double time);
37 
38  double realPlaybackTime() const;
39 
40  double minTime() const;
41  double maxTime() const;
42 
43  void setTimeRange(double min, double max);
44 
45  inline double frameRate() const { return frameRate_; }
46  void setFrameRate(double rate);
47 
48  inline double timeStep() const { return 1.0 / frameRate_; }
49 
50  inline bool isBeatMode() const { return isBeatMode_; }
51  inline double beatOffset() const { return beatOffset_; }
52  inline double tempo() const { return tempo_; }
53  double timeOfBeatLocation(double beatLocation) const;
54  double beatLocationOfTime(double time) const;
55  inline int beatNumerator() const { return beatNumerator_; }
56  inline int beatDenominator() const { return beatDenominator_; }
57 
58  double playbackSpeedScale() const;
59  void setPlaybackSpeedScale(double scale);
60 
61  double playbackFrameRate() const;
62  void setPlaybackFrameRate(double rate);
63 
64  void setRepeatMode(bool on);
65 
66  void startPlayback();
67  void startPlaybackFromFillLevel();
68  void stopPlayback(bool isStoppedManually = false);
69  bool isDoingPlayback();
70 
71  int startFillLevelUpdate();
72  void updateFillLevel(int id, double time);
73  void stopFillLevelUpdate(int id);
74  void setFillLevelSync(bool on);
75 
76  virtual int stretchableDefaultWidth() const;
77 
78 protected:
79 
80  virtual bool storeState(Archive& archive);
81  virtual bool restoreState(const Archive& archive);
82 
83 private:
84  TimeBar();
85  virtual ~TimeBar();
86 
87  TimeBarImpl* impl;
88  double time_;
89  double frameRate_;
90  bool isBeatMode_;
91  double beatOffset_;
92  double tempo_;
93  int beatNumerator_;
94  int beatDenominator_;
95 
96  friend class TimeBarImpl;
97 };
98 
99 }
100 
101 #endif
double frameRate() const
Definition: TimeBar.h:45
Definition: Archive.h:21
int beatNumerator() const
Definition: TimeBar.h:55
Definition: ExtensionManager.h:26
bool isBeatMode() const
Definition: TimeBar.h:50
Definition: TimeBar.h:16
double time() const
Definition: TimeBar.h:34
Definition: ToolBar.h:22
int beatDenominator() const
Definition: TimeBar.h:56
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
double tempo() const
Definition: TimeBar.h:52
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
double timeStep() const
Definition: TimeBar.h:48
Definition: Signal.h:380
double beatOffset() const
Definition: TimeBar.h:51