Merge lp:~vikoadi/audience/inhibit-to-playerpage into lp:~audience-members/audience/trunk

Proposed by Viko Adi Rahmawan
Status: Merged
Approved by: Cody Garver
Approved revision: 550
Merged at revision: 573
Proposed branch: lp:~vikoadi/audience/inhibit-to-playerpage
Merge into: lp:~audience-members/audience/trunk
Diff against target: 120 lines (+38/-34)
2 files modified
src/Widgets/PlayerPage.vala (+38/-1)
src/Widgets/VideoPlayer.vala (+0/-33)
To merge this branch: bzr merge lp:~vikoadi/audience/inhibit-to-playerpage
Reviewer Review Type Date Requested Status
Audience Members Pending
Review via email: mp+276348@code.launchpad.net

Commit message

move screenlocking prevention to playerpage

Description of the change

move screenlocking prevention to playerpage

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/Widgets/PlayerPage.vala'
2--- src/Widgets/PlayerPage.vala 2015-10-31 19:47:46 +0000
3+++ src/Widgets/PlayerPage.vala 2015-11-01 17:29:49 +0000
4@@ -17,6 +17,9 @@
5 private GtkClutter.Actor bottom_actor;
6 private GnomeMediaKeys mediakeys;
7
8+ public GnomeSessionManager session_manager;
9+ uint32 inhibit_cookie;
10+
11 private bool mouse_primary_down = false;
12 private bool fullscreened = false;
13
14@@ -36,7 +39,10 @@
15
16 public PlayerPage () {
17 video_player = new Widgets.VideoPlayer();
18- video_player.notify["playing"].connect (() => {bottom_bar.toggle_play_pause ();});
19+ video_player.notify["playing"].connect (() => {
20+ bottom_bar.toggle_play_pause ();
21+ inhibit_session (video_player.playing);
22+ });
23
24 clutter = new GtkClutter.Embed ();
25 stage = (Clutter.Stage)clutter.get_stage ();
26@@ -523,5 +529,36 @@
27 Idle.add (update_aspect_ratio);
28 }
29
30+ X.Display dpy;
31+ int timeout = -1;
32+ int interval;
33+ int prefer_blanking;
34+ int allow_exposures;
35+ void inhibit_session (bool inhibit) {
36+ debug ("set inhibit to " + (inhibit ? "true" : "false"));
37+ //TODO: Remove X Dependency!
38+ //store the default values for setting back
39+
40+ if (dpy == null)
41+ dpy = new X.Display ();
42+
43+ if (timeout == -1)
44+ dpy.get_screensaver (out timeout, out interval, out prefer_blanking, out allow_exposures);
45+
46+ dpy.set_screensaver (inhibit ? 0 : timeout, interval, prefer_blanking, allow_exposures);
47+
48+ //prevent screenlocking in Gnome 3 using org.gnome.SessionManager
49+ try {
50+ session_manager = Bus.get_proxy_sync (BusType.SESSION,
51+ "org.gnome.SessionManager", "/org/gnome/SessionManager");
52+ if (inhibit) {
53+ inhibit_cookie = session_manager.Inhibit ("audience", 0, "Playing Video using Audience", 12);
54+ } else {
55+ session_manager.Uninhibit (inhibit_cookie);
56+ }
57+ } catch (Error e) {
58+ warning (e.message);
59+ }
60+ }
61 }
62 }
63
64=== modified file 'src/Widgets/VideoPlayer.vala'
65--- src/Widgets/VideoPlayer.vala 2015-09-21 18:11:20 +0000
66+++ src/Widgets/VideoPlayer.vala 2015-11-01 17:29:49 +0000
67@@ -58,8 +58,6 @@
68 if (value == playing)
69 return;
70
71- set_screensaver (!value);
72- set_screenlock (!value);
73 playbin.set_state (value ? Gst.State.PLAYING : Gst.State.PAUSED);
74 _playing = value;
75 }
76@@ -181,9 +179,6 @@
77 public uint video_width { get; private set; }
78 public uint video_height { get; private set; }
79
80- public GnomeSessionManager session_manager;
81- uint32 inhibit_cookie;
82-
83 public signal void ended ();
84 public signal void toggle_side_pane (bool show);
85 public signal void text_tags_changed ();
86@@ -445,34 +440,6 @@
87 dlg.destroy ();
88 }
89
90- //TODO: Remove X Dependency!
91- //store the default values for setting back
92- X.Display dpy; int timeout = -1; int interval; int prefer_blanking; int allow_exposures;
93- void set_screensaver (bool enable) {
94- if (dpy == null)
95- dpy = new X.Display ();
96-
97- if (timeout == -1)
98- dpy.get_screensaver (out timeout, out interval, out prefer_blanking, out allow_exposures);
99-
100- dpy.set_screensaver (enable ? timeout : 0, interval, prefer_blanking, allow_exposures);
101- }
102-
103- //prevent screenlocking in Gnome 3 using org.gnome.SessionManager
104- void set_screenlock (bool enable) {
105- try {
106- session_manager = Bus.get_proxy_sync (BusType.SESSION,
107- "org.gnome.SessionManager", "/org/gnome/SessionManager");
108- if (enable) {
109- session_manager.Uninhibit (inhibit_cookie);
110- } else {
111- inhibit_cookie = session_manager.Inhibit ("audience", 0, "Playing Video using Audience", 12);
112- }
113- } catch (Error e) {
114- warning (e.message);
115- }
116- }
117-
118 public void seek_jump_seconds (int seconds) {
119 int64 position;
120 playbin.query_position (Gst.Format.TIME, out position);

Subscribers

People subscribed via source and target branches