Keeping up-to-date, and preparing for some basic CLI stuff with

a simple CXXOpts handler that had an API I thought was somewhat
readable.
This commit is contained in:
Elf M. Sternberg 2022-03-31 15:38:18 -07:00
parent a8009bdedb
commit e0e59f8d9d
4 changed files with 14 additions and 19 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "vendor/cxxopts"]
path = vendor/cxxopts
url = https://github.com/jarro2783/cxxopts

View File

@ -6,3 +6,6 @@
'get_screen_resources'.
- The screen_resources object is contains 'screen_resources_crtcs',
which you again get via an iterator. These are cookies.
CXX Opts looks like a really useful version of GetOpts that will do what you want:
https://github.com/jarro2783/cxxopts

View File

@ -4,6 +4,7 @@
#include <iostream>
#include <memory>
#include <vector>
#include <xcb>
xcb_randr_get_screen_resources_reply_t* get_screen_resources(xcb_connection_t* connection,
xcb_window_t rootWindow) {
@ -42,24 +43,6 @@ void display_one_crtc(xcb_randr_get_crtc_info_reply_t* crtc) {
<< " rotation: " << rotation_map(crtc->rotation) << std::endl;
}
void display_crtc_info(xcb_connection_t* connection, std::vector<xcb_randr_crtc_t>& crtc_cs) {
std::vector<xcb_randr_get_crtc_info_cookie_t> cookies;
xcb_generic_error_t* error = nullptr;
for (const auto& crtc : crtc_cs) {
cookies.push_back(xcb_randr_get_crtc_info(connection, crtc, XCB_CURRENT_TIME));
}
for (const auto& cookie : cookies) {
xcb_randr_get_crtc_info_reply_t* reply =
xcb_randr_get_crtc_info_reply(connection, cookie, &error);
if (error) {
free(error);
} else {
display_one_crtc(reply);
free(reply);
}
}
}
void display_one_output(xcb_connection_t* connection, xcb_randr_get_output_info_reply_t* output,
xcb_timestamp_t timestamp) {
xcb_randr_get_crtc_info_reply_t* crtc = xcb_randr_get_crtc_info_reply(
@ -107,7 +90,12 @@ void display_outputs(xcb_connection_t* connection,
// xcb_randr_get_crtc_info_reply_t* reply =
// xcb_randr_get_crtc_info_reply(connection, cookie, &error);
// xcb_randr_rotation_t rotation =
// (xcb_randr_rotation_t)reply->rotation; free(reply); return rotation;
// bool MyClass::operator!=(const MyClass &other) const {
return !(*this == other);
}
(xcb_randr_rotation_t) reply->rotation;
free(reply);
return rotation;
// }
//

1
vendor/cxxopts vendored Submodule

@ -0,0 +1 @@
Subproject commit 8185e6bb3a5d64717a5456903c71efc005ceb711