Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions src/BrightnessManager.vala
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
[DBus (name = "io.elementary.gala.BrightnessManager")]
public class Gala.BrightnessManager : GLib.Object {
public int brightness {
get {
if (backlight == null) {
return -1;
}
int min, max;
int value;
backlight.get_brightness_info (out min, out max);
value = backlight.get_brightness ();
return ((value - min) * 100) / (max - min);
}
set {
if (brightness == value || backlight == null) {
return;
}
int min, max;
backlight.get_brightness_info (out min, out max);
backlight.set_brightness ((int) (value * (max - min) / 100) + min);
}
}

private unowned Meta.MonitorManager monitor_manager;
private unowned Meta.Backlight? backlight;

public BrightnessManager (WindowManagerGala wm) {
monitor_manager = wm.get_display ().get_context ().get_backend ().get_monitor_manager ();
monitor_manager.monitors_changed.connect (update_available_backlights);
update_available_backlights ();
}

private void update_available_backlights () {
backlight = null;
unowned var monitors = monitor_manager.get_monitors ();
foreach (unowned var monitor in monitors) {
if (monitor.is_primary () && monitor.is_active ()) {
backlight = monitor.get_backlight ();
}
}
}
}
3 changes: 3 additions & 0 deletions src/DBus.vala
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ public class Gala.DBus {
(connection, name) => {
try {
connection.register_object ("/io/elementary/gala", WindowDragProvider.get_instance ());
#if HAS_MUTTER50
connection.register_object ("/io/elementary/gala/BrightnessManager", new BrightnessManager (wm));
#endif
} catch (Error e) {
warning (e.message);
}
Expand Down
4 changes: 4 additions & 0 deletions src/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ gala_bin_sources = files(
'Widgets/WindowSwitcher/WindowSwitcherIcon.vala',
)

if mutter50_dep.found()
gala_bin_sources+=files('BrightnessManager.vala')
endif

gala_bin = executable(
'gala',
gala_bin_sources,
Expand Down
3 changes: 3 additions & 0 deletions vapi/Meta-18.metadata
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ BackgroundContent cheader_filename="meta/meta-background-content.h"
BackgroundGroup cheader_filename="meta/meta-background-group.h"
BackgroundImage cheader_filename="meta/meta-background-image.h"
BackgroundImageCache cheader_filename="meta/meta-background-image.h"
Backlight cheader_filename="meta/meta-backlight.h"
Barrier cheader_filename="meta/barrier.h"
BarrierDirection cheader_filename="meta/barrier.h"
BarrierEvent cheader_filename="meta/barrier.h"
Expand Down Expand Up @@ -56,6 +57,7 @@ KeyHandlerFunc.window nullable
LaunchContext cheader_filename="meta/meta-launch-context.h"
Laters cheader_filename="meta/types.h"
LaterType cheader_filename="meta/util.h"
LogicalMonitor cheader_filename="meta/meta-logical-monitor.h"
MaximizeFlags cheader_filename="meta/window.h"
MultiTexture cheader_filename="meta/meta-multi-texture.h"
MultiTextureAlphaMode.n_meta_multi_texture_alpha_modes name="N_MODES"
Expand All @@ -67,6 +69,7 @@ MultiTextureCoefficients cheader_filename="meta/meta-multi-texture-format.h" cpr
MultiTextureFormat.n_meta_multi_texture_formats name="N_FORMATS"
MultiTextureFormat.meta_multi_texture_format_* name="meta_multi_texture_format_(.+)"
MultiTextureFormat cheader_filename="meta/meta-multi-texture-format.h" cprefix="META_MULTI_TEXTURE_FORMAT_"
Monitor cheader_filename="meta/meta-monitor.h"
MonitorManager cheader_filename="meta/meta-monitor-manager.h"
MonitorSwitchConfigType cheader_filename="meta/meta-monitor-manager.h"
MotionDirection cheader_filename="meta/common.h"
Expand Down
6 changes: 3 additions & 3 deletions vapi/libmutter.vapi
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ namespace Meta {
public void purge (GLib.File file);
}
#if HAS_MUTTER49
[CCode (cheader_filename = "meta/main.h", type_id = "meta_backlight_get_type ()")]
[CCode (cheader_filename = "meta/meta-backlight.h", type_id = "meta_backlight_get_type ()")]
public abstract class Backlight : GLib.Object {
[CCode (has_construct_function = false)]
protected Backlight ();
Expand Down Expand Up @@ -691,14 +691,14 @@ namespace Meta {
public Meta.Workspace workspace { owned get; set; }
}
#if HAS_MUTTER49
[CCode (cheader_filename = "meta/main.h", type_id = "meta_logical_monitor_get_type ()")]
[CCode (cheader_filename = "meta/meta-logical-monitor.h", type_id = "meta_logical_monitor_get_type ()")]
public class LogicalMonitor : GLib.Object {
[CCode (has_construct_function = false)]
protected LogicalMonitor ();
public unowned GLib.List<Meta.Monitor> get_monitors ();
public int get_number ();
}
[CCode (cheader_filename = "meta/main.h", type_id = "meta_monitor_get_type ()")]
[CCode (cheader_filename = "meta/meta-monitor.h", type_id = "meta_monitor_get_type ()")]
public class Monitor : GLib.Object {
[CCode (has_construct_function = false)]
protected Monitor ();
Expand Down
Loading