Mercurial > libanimone
annotate include/animone/player.h @ 32:93224b26a0ee default tip
player: efforts towards C-ization
| author | Paper <paper@tflc.us> |
|---|---|
| date | Mon, 10 Feb 2025 19:17:29 -0500 |
| parents | 60ded877339b |
| children |
| rev | line source |
|---|---|
|
14
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
1 #ifndef ANIMONE_ANIMONE_PLAYER_H_ |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
2 #define ANIMONE_ANIMONE_PLAYER_H_ |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
3 |
|
25
60ded877339b
dep/animone: fix tons of issues
Paper <paper@paper.us.eu.org>
parents:
21
diff
changeset
|
4 #include "animone/types.h" |
|
60ded877339b
dep/animone: fix tons of issues
Paper <paper@paper.us.eu.org>
parents:
21
diff
changeset
|
5 |
|
14
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
6 #include <string> |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
7 #include <vector> |
|
21
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
8 #include <map> |
|
14
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
9 |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
10 namespace animone { |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
11 |
| 32 | 12 /* TODO convert to plain C enums */ |
|
21
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
13 enum class ExecutablePlatform { |
| 32 | 14 Unknown, // ... |
|
21
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
15 Posix, // Posix platforms that aren't OS X |
|
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
16 Win32, // Windows |
|
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
17 Xnu, // OS X |
|
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
18 }; |
|
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
19 |
|
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
20 enum class WindowPlatform { |
| 32 | 21 Unknown, // ... |
|
21
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
22 Quartz, // OS X |
|
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
23 Win32, // Windows |
|
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
24 X11, // X11 |
|
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
25 }; |
|
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
26 |
|
14
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
27 enum class Strategy { |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
28 WindowTitle, |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
29 OpenFiles, |
| 32 | 30 UiAutomation, |
|
14
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
31 }; |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
32 |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
33 enum class PlayerType { |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
34 Default, |
| 32 | 35 WebBrowser, |
|
14
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
36 }; |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
37 |
|
25
60ded877339b
dep/animone: fix tons of issues
Paper <paper@paper.us.eu.org>
parents:
21
diff
changeset
|
38 struct ANIMONE_API Player { |
|
14
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
39 PlayerType type = PlayerType::Default; |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
40 std::string name; |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
41 std::string window_title_format; |
|
21
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
42 std::map<WindowPlatform, std::vector<std::string>> windows; |
|
973734ebd2be
dep/animone: REFACTOR ALL THE THINGS
Paper <paper@paper.us.eu.org>
parents:
14
diff
changeset
|
43 std::map<ExecutablePlatform, std::vector<std::string>> executables; |
|
14
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
44 std::vector<Strategy> strategies; |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
45 }; |
|
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
46 |
| 32 | 47 } |
| 48 | |
| 49 #ifdef __cplusplus | |
| 50 extern "C" { | |
| 51 #endif | |
| 52 | |
| 53 int animone_ParsePlayersData(const char *data, std::vector<animone::Player>& players); | |
| 54 int animone_ParsePlayersData(const char *path, std::vector<animone::Player>& players); | |
| 55 | |
| 56 #ifdef __cplusplus | |
| 57 } | |
|
14
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
58 |
| 32 | 59 namespace animone { |
| 60 | |
| 61 inline bool ParsePlayersData(const std::string& data, std::vector<Player>& players) | |
| 62 { | |
| 63 return !!ParsePlayersData(data.c_str(), players); | |
| 64 } | |
| 65 inline bool ParsePlayersFile(const std::string& path, std::vector<Player>& players) | |
| 66 { | |
| 67 return !!ParsePlayersFile(path.c_str(), players); | |
| 68 } | |
| 69 | |
| 70 } | |
| 71 | |
| 72 #endif | |
|
14
27b988a1048c
*: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents:
0
diff
changeset
|
73 |
| 0 | 74 #endif // ANIMONE_ANIMONE_PLAYER_H_ |
