diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2015-04-03 20:27:27 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2015-04-03 20:27:27 +0200 |
commit | fe9648fa1cdc8f9cf5216a88fadb8b96604047fd (patch) | |
tree | 011b7956b38a08b771d349866f9fabc0d5689fc9 | |
parent | 0d9371a00c47991e9f62053b649d39e9504680d8 (diff) | |
download | usdx-fe9648fa1cdc8f9cf5216a88fadb8b96604047fd.tar.gz usdx-fe9648fa1cdc8f9cf5216a88fadb8b96604047fd.tar.xz usdx-fe9648fa1cdc8f9cf5216a88fadb8b96604047fd.zip |
base/time: Replaces by std::chrono.
Diffstat (limited to '')
-rw-r--r-- | src/base/time.cpp | 40 | ||||
-rw-r--r-- | src/base/time.hpp | 54 | ||||
-rw-r--r-- | src/base/timestamp.cpp | 9 | ||||
-rw-r--r-- | src/base/timestamp.hpp | 6 | ||||
-rw-r--r-- | src/menu/mouse_event.cpp | 8 | ||||
-rw-r--r-- | src/menu/software_mouse_pointer.cpp | 2 | ||||
-rw-r--r-- | src/menu/timer.cpp | 2 | ||||
-rw-r--r-- | src/menu/timer.hpp | 7 | ||||
-rw-r--r-- | test/base/timestamp.cpp | 10 | ||||
-rw-r--r-- | test/menu/application.cpp | 2 |
10 files changed, 24 insertions, 116 deletions
diff --git a/src/base/time.cpp b/src/base/time.cpp deleted file mode 100644 index bbfb4330..00000000 --- a/src/base/time.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* - * UltraStar Deluxe - Karaoke Game - * - * UltraStar Deluxe is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#include "time.hpp" -#include <SDL/SDL.h> - -#define SDL_CORRECTION_RATIO 1000.0f - -namespace usdx -{ - Time::Time(void) - { - } - - float Time::get_time() - { - return SDL_GetTicks() / SDL_CORRECTION_RATIO; - } -} diff --git a/src/base/time.hpp b/src/base/time.hpp deleted file mode 100644 index a10449f6..00000000 --- a/src/base/time.hpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * UltraStar Deluxe - Karaoke Game - * - * UltraStar Deluxe is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#ifndef TIME_HPP -#define TIME_HPP - -namespace usdx -{ - /** - * Simple static-only wrapper class to get a time. This time does not need - * to correspond to the real clock. It should only be a changing number, - * that change at the same speed like the real clock. The current - * implementation uses SDL and returns the milliseconds since initialization - * of the library. - */ - class Time - { - protected: - /** - * Protected constructor. This class currently contains only static - methods. So there should no need to create an instance of it. - */ - Time(void); - - public: - /** - * Returns the current "time" as milliseconds. - */ - static float get_time(); - }; -} - -#endif diff --git a/src/base/timestamp.cpp b/src/base/timestamp.cpp index 1e86a8d4..c92ef99c 100644 --- a/src/base/timestamp.cpp +++ b/src/base/timestamp.cpp @@ -23,22 +23,21 @@ */ #include "timestamp.hpp" -#include "time.hpp" namespace usdx { Timestamp::Timestamp(void) - : time(Time::get_time()) + : time(std::chrono::steady_clock::now()) { } - bool Timestamp::since(float duration) const + bool Timestamp::since(std::chrono::milliseconds duration) const { - return Time::get_time() < (time + duration); + return std::chrono::steady_clock::now() < (time + duration); } void Timestamp::update(void) { - time = Time::get_time(); + time = std::chrono::steady_clock::now(); } } diff --git a/src/base/timestamp.hpp b/src/base/timestamp.hpp index e6fc5247..095d5fa2 100644 --- a/src/base/timestamp.hpp +++ b/src/base/timestamp.hpp @@ -25,6 +25,8 @@ #ifndef TIMESTAMP_HPP #define TIMESTAMP_HPP +#include <chrono> + namespace usdx { /** @@ -37,7 +39,7 @@ namespace usdx /** * internal storage of the point of time represented by the timestamp instance */ - float time; + std::chrono::steady_clock::time_point time; public: /** @@ -52,7 +54,7 @@ namespace usdx * @return true, if the elapsed time is less than the given duration, * otherwise false */ - bool since(float duration) const; + bool since(std::chrono::milliseconds duration) const; /** * Update the stored point of time to the current time. diff --git a/src/menu/mouse_event.cpp b/src/menu/mouse_event.cpp index 814e179c..3f4104a0 100644 --- a/src/menu/mouse_event.cpp +++ b/src/menu/mouse_event.cpp @@ -25,7 +25,6 @@ #include <cstddef> #include "mouse_event.hpp" -#include "base/time.hpp" namespace usdx { @@ -49,16 +48,17 @@ namespace usdx { if (direction == UP) { if (this->direction == DOWN) { - if (time.since(5000)) + if (time.since(std::chrono::milliseconds{5000})) return CLICK; } else if (this->direction == CLICK) { - if (time.since(5000)) + if (time.since(std::chrono::milliseconds{5000})) return DBL_CLICK; } } else if (direction == DOWN) { - if (this->direction == CLICK && time.since(5000)) + if (this->direction == CLICK && + time.since(std::chrono::milliseconds{5000})) return CLICK; } } diff --git a/src/menu/software_mouse_pointer.cpp b/src/menu/software_mouse_pointer.cpp index 39ee1318..2708917c 100644 --- a/src/menu/software_mouse_pointer.cpp +++ b/src/menu/software_mouse_pointer.cpp @@ -34,7 +34,7 @@ namespace usdx SoftwareMousePointer::SoftwareMousePointer(Container* parent, EventManager* event_manager) : DrawableControl(parent), color(255,255,255,100), down(false) { - fade_inactive = new Timer(this, 2, true); + fade_inactive = new Timer(this, std::chrono::seconds{2}, true); this->vertices[0] = 0.0f; this->vertices[1] = 40.0f; diff --git a/src/menu/timer.cpp b/src/menu/timer.cpp index 567860c2..884b8548 100644 --- a/src/menu/timer.cpp +++ b/src/menu/timer.cpp @@ -26,7 +26,7 @@ namespace usdx { - Timer::Timer(Control* owner, float duration, bool init) : + Timer::Timer(Control* owner, std::chrono::milliseconds duration, bool init) : Control(owner), duration(duration), ready(init), last_update() { } diff --git a/src/menu/timer.hpp b/src/menu/timer.hpp index d2cd700b..fc595dc7 100644 --- a/src/menu/timer.hpp +++ b/src/menu/timer.hpp @@ -25,7 +25,8 @@ #ifndef TIMER_HPP #define TIMER_HPP -#include <stdint.h> +#include <chrono> + #include "control.hpp" #include "base/timestamp.hpp" @@ -34,13 +35,13 @@ namespace usdx class Timer : public Control { private: - float duration; + std::chrono::milliseconds duration; bool ready; Timestamp last_update; public: - Timer(Control*, float, bool = false); + Timer(Control*, std::chrono::milliseconds, bool = false); virtual ~Timer(); void update(void); diff --git a/test/base/timestamp.cpp b/test/base/timestamp.cpp index 2d8e6caf..23ea3b04 100644 --- a/test/base/timestamp.cpp +++ b/test/base/timestamp.cpp @@ -22,11 +22,11 @@ * */ +#include <thread> #include "base/timestamp.hpp" #include <cppunit/extensions/HelperMacros.h> #include <log4cpp/Category.hh> -#include <boost/thread/thread.hpp> namespace usdx { @@ -49,15 +49,15 @@ namespace usdx void testWaitShorter() { Timestamp t; - boost::this_thread::sleep(boost::posix_time::milliseconds(500)); - CPPUNIT_ASSERT_EQUAL(t.since(0.6), true); + std::this_thread::sleep_for(std::chrono::milliseconds{500}); + CPPUNIT_ASSERT_EQUAL(t.since(std::chrono::milliseconds{600}), true); } void testWaitLonger() { Timestamp t; - boost::this_thread::sleep(boost::posix_time::milliseconds(500)); - CPPUNIT_ASSERT_EQUAL(t.since(0.4), false); + std::this_thread::sleep_for(std::chrono::milliseconds{500}); + CPPUNIT_ASSERT_EQUAL(t.since(std::chrono::milliseconds{400}), false); } }; diff --git a/test/menu/application.cpp b/test/menu/application.cpp index 8a14644a..24156998 100644 --- a/test/menu/application.cpp +++ b/test/menu/application.cpp @@ -48,7 +48,7 @@ namespace usdx Application app; app.quit(); CPPUNIT_ASSERT_EQUAL(false, app.is_running()); - CPPUNIT_ASSERT_EQUAL(true, t.since(0.2)); + CPPUNIT_ASSERT_EQUAL(true, t.since(std::chrono::milliseconds{200})); } void testNewInstance() |