comparison DPF-Prymula-audioplugins/dpf/distrho/extra/Sleep.hpp @ 3:84e66ea83026

DPF-Prymula-audioplugins-0.231015-2
author prymula <prymula76@outlook.com>
date Mon, 16 Oct 2023 21:53:34 +0200
parents
children
comparison
equal deleted inserted replaced
2:cf2cb71d31dd 3:84e66ea83026
1 /*
2 * DISTRHO Plugin Framework (DPF)
3 * Copyright (C) 2012-2016 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 DISTRHO_SLEEP_HPP_INCLUDED
18 #define DISTRHO_SLEEP_HPP_INCLUDED
19
20 #include "../DistrhoUtils.hpp"
21
22 #ifdef DISTRHO_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
32 // -----------------------------------------------------------------------
33 // d_*sleep
34
35 /*
36 * Sleep for 'secs' seconds.
37 */
38 static inline
39 void d_sleep(const uint secs) noexcept
40 {
41 DISTRHO_SAFE_ASSERT_RETURN(secs > 0,);
42
43 try {
44 #ifdef DISTRHO_OS_WINDOWS
45 ::Sleep(secs * 1000);
46 #else
47 ::sleep(secs);
48 #endif
49 } DISTRHO_SAFE_EXCEPTION("d_sleep");
50 }
51
52 /*
53 * Sleep for 'msecs' milliseconds.
54 */
55 static inline
56 void d_msleep(const uint msecs) noexcept
57 {
58 DISTRHO_SAFE_ASSERT_RETURN(msecs > 0,);
59
60 try {
61 #ifdef DISTRHO_OS_WINDOWS
62 ::Sleep(msecs);
63 #else
64 ::usleep(msecs * 1000);
65 #endif
66 } DISTRHO_SAFE_EXCEPTION("d_msleep");
67 }
68
69 // -----------------------------------------------------------------------
70
71 #endif // DISTRHO_SLEEP_HPP_INCLUDED