Collection of DPF-based plugins for packaging
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.9KB

  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. #ifndef DISTRHO_SLEEP_HPP_INCLUDED
  17. #define DISTRHO_SLEEP_HPP_INCLUDED
  18. #include "../DistrhoUtils.hpp"
  19. #ifdef DISTRHO_OS_WINDOWS
  20. # ifndef NOMINMAX
  21. # define NOMINMAX
  22. # endif
  23. # include <winsock2.h>
  24. # include <windows.h>
  25. #else
  26. # include <unistd.h>
  27. #endif
  28. START_NAMESPACE_DISTRHO
  29. // -----------------------------------------------------------------------------------------------------------
  30. // d_*sleep
  31. /*
  32. * Sleep for 'secs' seconds.
  33. */
  34. static inline
  35. void d_sleep(const uint secs) noexcept
  36. {
  37. DISTRHO_SAFE_ASSERT_RETURN(secs > 0,);
  38. try {
  39. #ifdef DISTRHO_OS_WINDOWS
  40. ::Sleep(secs * 1000);
  41. #else
  42. ::sleep(secs);
  43. #endif
  44. } DISTRHO_SAFE_EXCEPTION("d_sleep");
  45. }
  46. /*
  47. * Sleep for 'msecs' milliseconds.
  48. */
  49. static inline
  50. void d_msleep(const uint msecs) noexcept
  51. {
  52. DISTRHO_SAFE_ASSERT_RETURN(msecs > 0,);
  53. try {
  54. #ifdef DISTRHO_OS_WINDOWS
  55. ::Sleep(msecs);
  56. #else
  57. ::usleep(msecs * 1000);
  58. #endif
  59. } DISTRHO_SAFE_EXCEPTION("d_msleep");
  60. }
  61. // -----------------------------------------------------------------------------------------------------------
  62. END_NAMESPACE_DISTRHO
  63. #endif // DISTRHO_SLEEP_HPP_INCLUDED