|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*
- ==============================================================================
-
- This file is part of the JUCE library.
- Copyright (c) 2017 - ROLI Ltd.
-
- JUCE is an open source library subject to commercial or open-source
- licensing.
-
- The code included in this file is provided under the terms of the ISC license
- http://www.isc.org/downloads/software-support-policy/isc-license. Permission
- To use, copy, modify, and/or distribute this software for any purpose with or
- without fee is hereby granted provided that the above copyright notice and
- this permission notice appear in all copies.
-
- JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
- EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
- DISCLAIMED.
-
- ==============================================================================
- */
-
- namespace juce
- {
-
- namespace LinuxEventLoop
- {
- struct CallbackFunctionBase
- {
- virtual ~CallbackFunctionBase() {}
- virtual bool operator()(int fd) = 0;
- bool active = true;
- };
-
- template <typename FdCallbackFunction>
- struct CallbackFunction : public CallbackFunctionBase
- {
- FdCallbackFunction callback;
-
- CallbackFunction (FdCallbackFunction c) : callback (c) {}
-
- bool operator() (int fd) override { return callback (fd); }
- };
-
- template <typename FdCallbackFunction>
- void setWindowSystemFd (int fd, FdCallbackFunction readCallback)
- {
- setWindowSystemFdInternal (fd, new CallbackFunction<FdCallbackFunction> (readCallback));
- }
- void removeWindowSystemFd() noexcept;
-
- void setWindowSystemFdInternal (int fd, CallbackFunctionBase* readCallback) noexcept;
- }
-
- } // namespace juce
|