Dusk Audio Framework
Loading...
Searching...
No Matches
Sleep.hpp
1/*
2 * DISTRHO Plugin Framework (DPF)
3 * Copyright (C) 2012-2024 Filipe Coelho <falktx@falktx.com>
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any purpose with
6 * or without fee is hereby granted, provided that the above copyright notice and this
7 * permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
10 * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
11 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
12 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
13 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16
17#ifndef DAF_SLEEP_HPP_INCLUDED
18#define DAF_SLEEP_HPP_INCLUDED
19
20#include "../DafUtils.hpp"
21
22#ifdef DAF_OS_WINDOWS
23# ifndef NOMINMAX
24# define NOMINMAX
25# endif
26# include <winsock2.h>
27# include <windows.h>
28#else
29# include <unistd.h>
30#endif
31
33
34// -----------------------------------------------------------------------------------------------------------
35// d_*sleep
36
37/*
38 * Sleep for 'secs' seconds.
39 */
40static inline
41void d_sleep(const uint secs) noexcept
42{
43 DAF_SAFE_ASSERT_RETURN(secs > 0,);
44
45 try {
46#ifdef DAF_OS_WINDOWS
47 ::Sleep(secs * 1000);
48#else
49 ::sleep(secs);
50#endif
51 } DAF_SAFE_EXCEPTION("d_sleep");
52}
53
54/*
55 * Sleep for 'msecs' milliseconds.
56 */
57static inline
58void d_msleep(const uint msecs) noexcept
59{
60 DAF_SAFE_ASSERT_RETURN(msecs > 0,);
61
62 try {
63#ifdef DAF_OS_WINDOWS
64 ::Sleep(msecs);
65#else
66 ::usleep(msecs * 1000);
67#endif
68 } DAF_SAFE_EXCEPTION("d_msleep");
69}
70
71// -----------------------------------------------------------------------------------------------------------
72
74
75#endif // DAF_SLEEP_HPP_INCLUDED
#define END_NAMESPACE_DAF
Definition DafInfo.hpp:996
#define START_NAMESPACE_DAF
Definition DafInfo.hpp:990