| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #pragma once
- #include <string>
- #include <list>
- #define blog(level, msg, ...) blog(level, "xcompcap: " msg, ##__VA_ARGS__)
- class PLock
- {
- pthread_mutex_t *m;
- bool islock;
- public:
- PLock(const PLock&) = delete;
- PLock& operator=(const PLock&) = delete;
- PLock(pthread_mutex_t* mtx, bool trylock = false);
- ~PLock();
- bool isLocked();
- void unlock();
- void lock();
- };
- class XErrorLock
- {
- bool islock;
- bool goterr;
- XErrorHandler prevhandler;
- public:
- XErrorLock(const XErrorLock&) = delete;
- XErrorLock& operator=(const XErrorLock&) = delete;
- XErrorLock();
- ~XErrorLock();
- bool isLocked();
- void unlock();
- void lock();
- bool gotError();
- std::string getErrorText();
- void resetError();
- };
- class ObsGsContextHolder
- {
- public:
- ObsGsContextHolder(const ObsGsContextHolder&) = delete;
- ObsGsContextHolder& operator=(const ObsGsContextHolder&) = delete;
- ObsGsContextHolder();
- ~ObsGsContextHolder();
- };
- namespace XCompcap
- {
- Display* disp();
- void cleanupDisplay();
- std::string getWindowCommand(Window win);
- int getRootWindowScreen(Window root);
- std::string getWindowName(Window win);
- int getWindowPid(Window win);
- std::list<Window> getTopLevelWindows();
- std::list<Window> getAllWindows();
- void processEvents();
- bool windowWasReconfigured(Window win);
- }
|