00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef PEEKABOT_CLIENT_RECORDING_HH_INCLUDED
00012 #define PEEKABOT_CLIENT_RECORDING_HH_INCLUDED
00013
00014
00015 #include <boost/shared_ptr.hpp>
00016 #include <boost/date_time/posix_time/posix_time.hpp>
00017
00018 #include "../Visibility.hh"
00019
00020
00021 namespace peekabot
00022 {
00023 namespace client
00024 {
00025 class RecordingImpl;
00026
00032 class PEEKABOT_API Recording
00033 {
00034 public:
00035 Recording(boost::shared_ptr<RecordingImpl> impl);
00036
00043 void play();
00044
00048 void pause();
00049
00053 bool is_paused() const;
00054
00058 bool is_finished() const;
00059
00070 void step(size_t n = 1);
00071
00079 void step(const boost::posix_time::time_duration &td);
00080
00086 void set_playback_speed(double factor);
00087
00091 double get_playback_speed() const;
00092
00096 boost::posix_time::time_duration elapsed() const;
00097
00101 boost::posix_time::time_duration duration() const;
00102
00103 private:
00104 boost::shared_ptr<RecordingImpl> m_impl;
00105 };
00106 }
00107
00108 using client::Recording;
00109 }
00110
00111
00112 #endif // PEEKABOT_CLIENT_RECORDING_HH_INCLUDED