tools
Loading...
Searching...
No Matches
PlaybackThread.hpp
1// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
2
3#ifndef __PLAYBACK_THREAD_HPP__
4#define __PLAYBACK_THREAD_HPP__
5
6#include <atomic>
7
8#include <yarp/os/Thread.h>
9#include <yarp/dev/DeviceDriver.h>
10
11#include "Playback.hpp"
12#include "IPlaybackThread.h"
13#include "PlaybackThread_ParamsParser.h"
14
25class PlaybackThread : public yarp::dev::DeviceDriver,
27 public yarp::os::Thread,
30{
31public:
32 // --------- DeviceDriver Declarations. Implementation in DeviceDriverImpl.cpp ---------
33 bool open(yarp::os::Searchable & config) override;
34 bool close() override;
35
36 // --------- IPlaybackThread Declarations. Implementation in IPlaybackThreadImpl.cpp ---------
37 bool play() override;
38 bool pause() override;
39 bool stopPlay() override;
40 bool isPlaying() override;
41 bool setTimeScale(double timeScale) override;
42 void setIRunnable(roboticslab::IRunnable * iRunnable) override;
43
44 // --------- Thread Declarations. Implementation in ThreadImpl.cpp ---------
45 void run() override;
46 void onStop() override;
47
48private:
49 enum class state { NOT_PLAYING, PLAYING };
50
51 roboticslab::IRunnable * _iRunnable {nullptr};
52 std::atomic<state> _state {state::NOT_PLAYING};
53};
54
55#endif // __PLAYBACK_THREAD_HPP__
Definition PlaybackThread_ParamsParser.h:45
Implementation for the PlaybackThread.
Definition PlaybackThread.hpp:30
Abstract base for PlaybackThread.
Definition IPlaybackThread.h:19
Abstract base for Runnable.
Definition IRunnable.h:15
Implementation for Playback.
Definition Playback.hpp:23