mirror of
https://github.com/rad4day/Waybar.git
synced 2023-12-21 10:22:59 +01:00
refactor: format code
This commit is contained in:
@ -1,14 +1,12 @@
|
||||
#include "modules/sway/ipc/client.hpp"
|
||||
|
||||
waybar::modules::sway::Ipc::Ipc()
|
||||
{
|
||||
waybar::modules::sway::Ipc::Ipc() {
|
||||
const std::string& socketPath = getSocketPath();
|
||||
fd_ = open(socketPath);
|
||||
fd_event_ = open(socketPath);
|
||||
}
|
||||
|
||||
waybar::modules::sway::Ipc::~Ipc()
|
||||
{
|
||||
waybar::modules::sway::Ipc::~Ipc() {
|
||||
// To fail the IPC header
|
||||
write(fd_, "close-sway-ipc", 14);
|
||||
write(fd_event_, "close-sway-ipc", 14);
|
||||
@ -17,17 +15,16 @@ waybar::modules::sway::Ipc::~Ipc()
|
||||
close(fd_event_);
|
||||
}
|
||||
|
||||
const std::string waybar::modules::sway::Ipc::getSocketPath() const
|
||||
{
|
||||
const char *env = getenv("SWAYSOCK");
|
||||
const std::string waybar::modules::sway::Ipc::getSocketPath() const {
|
||||
const char* env = getenv("SWAYSOCK");
|
||||
if (env != nullptr) {
|
||||
return std::string(env);
|
||||
}
|
||||
std::string str;
|
||||
{
|
||||
std::string str_buf;
|
||||
FILE* in;
|
||||
char buf[512] = { 0 };
|
||||
FILE* in;
|
||||
char buf[512] = {0};
|
||||
if ((in = popen("sway --get-socketpath 2>/dev/null", "r")) == nullptr) {
|
||||
throw std::runtime_error("Failed to get socket path");
|
||||
}
|
||||
@ -43,10 +40,9 @@ const std::string waybar::modules::sway::Ipc::getSocketPath() const
|
||||
return str;
|
||||
}
|
||||
|
||||
int waybar::modules::sway::Ipc::open(const std::string& socketPath) const
|
||||
{
|
||||
int waybar::modules::sway::Ipc::open(const std::string& socketPath) const {
|
||||
struct sockaddr_un addr = {0};
|
||||
int fd = -1;
|
||||
int fd = -1;
|
||||
if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
|
||||
throw std::runtime_error("Unable to open Unix socket");
|
||||
}
|
||||
@ -54,18 +50,16 @@ int waybar::modules::sway::Ipc::open(const std::string& socketPath) const
|
||||
strncpy(addr.sun_path, socketPath.c_str(), sizeof(addr.sun_path) - 1);
|
||||
addr.sun_path[sizeof(addr.sun_path) - 1] = 0;
|
||||
int l = sizeof(struct sockaddr_un);
|
||||
if (::connect(fd, reinterpret_cast<struct sockaddr *>(&addr), l) == -1) {
|
||||
if (::connect(fd, reinterpret_cast<struct sockaddr*>(&addr), l) == -1) {
|
||||
throw std::runtime_error("Unable to connect to Sway");
|
||||
}
|
||||
return fd;
|
||||
}
|
||||
|
||||
struct waybar::modules::sway::Ipc::ipc_response
|
||||
waybar::modules::sway::Ipc::recv(int fd) const
|
||||
{
|
||||
struct waybar::modules::sway::Ipc::ipc_response waybar::modules::sway::Ipc::recv(int fd) const {
|
||||
std::string header;
|
||||
header.resize(ipc_header_size_);
|
||||
auto data32 = reinterpret_cast<uint32_t *>(header.data() + ipc_magic_.size());
|
||||
auto data32 = reinterpret_cast<uint32_t*>(header.data() + ipc_magic_.size());
|
||||
size_t total = 0;
|
||||
|
||||
while (total < ipc_header_size_) {
|
||||
@ -91,16 +85,14 @@ struct waybar::modules::sway::Ipc::ipc_response
|
||||
}
|
||||
total += res;
|
||||
}
|
||||
return { data32[0], data32[1], &payload.front() };
|
||||
return {data32[0], data32[1], &payload.front()};
|
||||
}
|
||||
|
||||
struct waybar::modules::sway::Ipc::ipc_response
|
||||
waybar::modules::sway::Ipc::send(int fd, uint32_t type,
|
||||
const std::string& payload) const
|
||||
{
|
||||
struct waybar::modules::sway::Ipc::ipc_response waybar::modules::sway::Ipc::send(
|
||||
int fd, uint32_t type, const std::string& payload) const {
|
||||
std::string header;
|
||||
header.resize(ipc_header_size_);
|
||||
auto data32 = reinterpret_cast<uint32_t *>(header.data() + ipc_magic_.size());
|
||||
auto data32 = reinterpret_cast<uint32_t*>(header.data() + ipc_magic_.size());
|
||||
memcpy(header.data(), ipc_magic_.c_str(), ipc_magic_.size());
|
||||
data32[0] = payload.size();
|
||||
data32[1] = type;
|
||||
@ -114,23 +106,18 @@ struct waybar::modules::sway::Ipc::ipc_response
|
||||
return recv(fd);
|
||||
}
|
||||
|
||||
struct waybar::modules::sway::Ipc::ipc_response
|
||||
waybar::modules::sway::Ipc::sendCmd(uint32_t type,
|
||||
const std::string& payload) const
|
||||
{
|
||||
struct waybar::modules::sway::Ipc::ipc_response waybar::modules::sway::Ipc::sendCmd(
|
||||
uint32_t type, const std::string& payload) const {
|
||||
return send(fd_, type, payload);
|
||||
}
|
||||
|
||||
void waybar::modules::sway::Ipc::subscribe(const std::string& payload) const
|
||||
{
|
||||
void waybar::modules::sway::Ipc::subscribe(const std::string& payload) const {
|
||||
auto res = send(fd_event_, IPC_SUBSCRIBE, payload);
|
||||
if (res.payload != "{\"success\": true}") {
|
||||
throw std::runtime_error("Unable to subscribe ipc event");
|
||||
}
|
||||
}
|
||||
|
||||
struct waybar::modules::sway::Ipc::ipc_response
|
||||
waybar::modules::sway::Ipc::handleEvent() const
|
||||
{
|
||||
struct waybar::modules::sway::Ipc::ipc_response waybar::modules::sway::Ipc::handleEvent() const {
|
||||
return recv(fd_event_);
|
||||
}
|
||||
|
Reference in New Issue
Block a user