video: allow configuring the output brightness
This commit is contained in:
parent
7d0c9e2c3f
commit
27025a565c
19 changed files with 343 additions and 40 deletions
|
|
@ -32,6 +32,7 @@ const TEARING_SINCE: Version = Version(3);
|
|||
const FORMAT_SINCE: Version = Version(8);
|
||||
const FLIP_MARGIN_SINCE: Version = Version(10);
|
||||
const COLORIMETRY_SINCE: Version = Version(15);
|
||||
const BRIGHTNESS_SINCE: Version = Version(16);
|
||||
|
||||
impl JayRandr {
|
||||
pub fn new(id: JayRandrId, client: &Rc<Client>, version: Version) -> Self {
|
||||
|
|
@ -187,6 +188,22 @@ impl JayRandr {
|
|||
color_space: node.global.bcs.get().name(),
|
||||
});
|
||||
}
|
||||
if self.version >= BRIGHTNESS_SINCE {
|
||||
if let Some(lum) = node.global.luminance {
|
||||
self.client.event(BrightnessRange {
|
||||
self_id: self.id,
|
||||
min: lum.min,
|
||||
max: lum.max,
|
||||
max_fall: lum.max_fall,
|
||||
});
|
||||
}
|
||||
if let Some(lux) = node.global.persistent.brightness.get() {
|
||||
self.client.event(Brightness {
|
||||
self_id: self.id,
|
||||
lux,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn send_error(&self, msg: &str) {
|
||||
|
|
@ -464,6 +481,26 @@ impl JayRandrRequestHandler for JayRandr {
|
|||
c.connector.set_colors(cs, tf);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn set_brightness(&self, req: SetBrightness<'_>, _slf: &Rc<Self>) -> Result<(), Self::Error> {
|
||||
let Some(c) = self.get_output_node(req.output) else {
|
||||
return Ok(());
|
||||
};
|
||||
c.global.set_brightness(Some(req.lux));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn unset_brightness(
|
||||
&self,
|
||||
req: UnsetBrightness<'_>,
|
||||
_slf: &Rc<Self>,
|
||||
) -> Result<(), Self::Error> {
|
||||
let Some(c) = self.get_output_node(req.output) else {
|
||||
return Ok(());
|
||||
};
|
||||
c.global.set_brightness(None);
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
object_base! {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue