Files
Waybar/include/modules/privacy/privacy.hpp
T

41 lines
1.1 KiB
C++
Raw Normal View History

2023-10-26 23:08:57 +02:00
#pragma once
#include <string>
#include "gtkmm/box.h"
#include "modules/privacy/privacy_item.hpp"
#include "util/pipewire/pipewire_backend.hpp"
#include "util/pipewire/privacy_node_info.hpp"
using waybar::util::PipewireBackend::PrivacyNodeInfo;
namespace waybar::modules::privacy {
class Privacy : public AModule {
public:
2026-02-04 09:24:14 +01:00
Privacy(const std::string&, const Json::Value&, Gtk::Orientation, const std::string& pos);
2023-10-26 23:08:57 +02:00
auto update() -> void override;
void onPrivacyNodesChanged();
private:
2026-02-04 09:24:14 +01:00
std::list<PrivacyNodeInfo*> nodes_screenshare; // Screen is being shared
std::list<PrivacyNodeInfo*> nodes_audio_in; // Application is using the microphone
std::list<PrivacyNodeInfo*> nodes_audio_out; // Application is outputting audio
2023-10-26 23:08:57 +02:00
std::mutex mutex_;
2023-10-26 23:08:57 +02:00
sigc::connection visibility_conn;
// Config
Gtk::Box box_;
uint iconSpacing = 4;
uint iconSize = 20;
2023-11-04 14:12:45 +01:00
uint transition_duration = 250;
2024-08-17 21:11:07 +02:00
std::set<std::pair<PrivacyNodeType, std::string>> ignore;
bool ignore_monitor = true;
2023-10-26 23:08:57 +02:00
std::shared_ptr<util::PipewireBackend::PipewireBackend> backend = nullptr;
};
} // namespace waybar::modules::privacy