2016-12-13 13:26:09 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <mutex>
|
|
|
|
|
|
|
|
#include "common.hpp"
|
|
|
|
|
|
|
|
// fwd
|
|
|
|
struct _snd_ctl;
|
|
|
|
struct _snd_hctl_elem;
|
|
|
|
struct _snd_hctl;
|
|
|
|
typedef struct _snd_ctl snd_ctl_t;
|
|
|
|
typedef struct _snd_hctl_elem snd_hctl_elem_t;
|
|
|
|
typedef struct _snd_hctl snd_hctl_t;
|
|
|
|
|
|
|
|
POLYBAR_NS
|
|
|
|
|
|
|
|
namespace alsa {
|
|
|
|
class control {
|
|
|
|
public:
|
|
|
|
explicit control(int numid);
|
|
|
|
~control();
|
|
|
|
|
2016-12-15 02:30:41 +00:00
|
|
|
control(const control& o) = delete;
|
|
|
|
control& operator=(const control& o) = delete;
|
|
|
|
|
2016-12-13 13:26:09 +00:00
|
|
|
int get_numid();
|
|
|
|
bool wait(int timeout = -1);
|
|
|
|
bool test_device_plugged();
|
|
|
|
void process_events();
|
|
|
|
|
|
|
|
private:
|
2016-12-15 02:30:41 +00:00
|
|
|
std::mutex m_lock{};
|
2016-12-13 13:26:09 +00:00
|
|
|
|
|
|
|
int m_numid{0};
|
|
|
|
|
2016-12-14 14:04:10 +00:00
|
|
|
snd_ctl_t* m_ctl{nullptr};
|
2016-12-13 13:26:09 +00:00
|
|
|
snd_hctl_t* m_hctl{nullptr};
|
|
|
|
snd_hctl_elem_t* m_elem{nullptr};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
POLYBAR_NS_END
|