From fe9648fa1cdc8f9cf5216a88fadb8b96604047fd Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Fri, 3 Apr 2015 20:27:27 +0200 Subject: base/time: Replaces by std::chrono. --- src/base/time.cpp | 40 --------------------------- src/base/time.hpp | 54 ------------------------------------- src/base/timestamp.cpp | 9 +++---- src/base/timestamp.hpp | 6 +++-- src/menu/mouse_event.cpp | 8 +++--- src/menu/software_mouse_pointer.cpp | 2 +- src/menu/timer.cpp | 2 +- src/menu/timer.hpp | 7 ++--- 8 files changed, 18 insertions(+), 110 deletions(-) delete mode 100644 src/base/time.cpp delete mode 100644 src/base/time.hpp (limited to 'src') 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 - -#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 + 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 #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 +#include + #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); -- cgit v1.2.3