Mercurial > libanimone
view include/animone/player.h @ 25:60ded877339b
dep/animone: fix tons of issues
for example, the window ID stuff was just... completely wrong. since we're
supporting multiple different window systems, it *has* to be a union rather
than just a single integer type. HWND is also not a DWORD, it's a pointer(!),
so now it's stored as a std::uintptr_t.
(this probably breaks things)
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Thu, 20 Jun 2024 03:03:05 -0400 |
parents | 973734ebd2be |
children | 93224b26a0ee |
line wrap: on
line source
#ifndef ANIMONE_ANIMONE_PLAYER_H_ #define ANIMONE_ANIMONE_PLAYER_H_ #include "animone/types.h" #include <string> #include <vector> #include <map> namespace animone { enum class ExecutablePlatform { Posix, // Posix platforms that aren't OS X Win32, // Windows Xnu, // OS X Unknown, // ... }; enum class WindowPlatform { Quartz, // OS X Win32, // Windows X11, // X11 Unknown, // ... }; enum class Strategy { WindowTitle, OpenFiles, UiAutomation // unused }; enum class PlayerType { Default, WebBrowser // unused }; struct ANIMONE_API Player { PlayerType type = PlayerType::Default; std::string name; std::string window_title_format; std::map<WindowPlatform, std::vector<std::string>> windows; std::map<ExecutablePlatform, std::vector<std::string>> executables; std::vector<Strategy> strategies; }; ANIMONE_API bool ParsePlayersData(const std::string& data, std::vector<Player>& players); ANIMONE_API bool ParsePlayersFile(const std::string& path, std::vector<Player>& players); } // namespace animone #endif // ANIMONE_ANIMONE_PLAYER_H_