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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
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
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
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
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
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
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
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
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
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
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
47 }
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
48
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
49 #ifdef __cplusplus
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
50 extern "C" {
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
51 #endif
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
52
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
53 int animone_ParsePlayersData(const char *data, std::vector<animone::Player>& players);
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
54 int animone_ParsePlayersData(const char *path, std::vector<animone::Player>& players);
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
55
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
56 #ifdef __cplusplus
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
57 }
14
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 0
diff changeset
58
32
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
59 namespace animone {
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
60
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
61 inline bool ParsePlayersData(const std::string& data, std::vector<Player>& players)
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
62 {
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
63 return !!ParsePlayersData(data.c_str(), players);
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
64 }
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
65 inline bool ParsePlayersFile(const std::string& path, std::vector<Player>& players)
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
66 {
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
67 return !!ParsePlayersFile(path.c_str(), players);
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
68 }
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
69
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
70 }
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
71
93224b26a0ee player: efforts towards C-ization
Paper <paper@tflc.us>
parents: 25
diff changeset
72 #endif
14
27b988a1048c *: convert all files CRLF -> LF
Paper <paper@paper.us.eu.org>
parents: 0
diff changeset
73
0
a76fa32bdc92 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents:
diff changeset
74 #endif // ANIMONE_ANIMONE_PLAYER_H_