More settings + adjust volume
This commit is contained in:
parent
a407667cb3
commit
3f0d33c65c
101
clock.py
101
clock.py
|
@ -15,6 +15,7 @@ from kivy.graphics import Color, Line, Rectangle
|
|||
|
||||
from multiprocessing import Process
|
||||
from playsound import playsound
|
||||
import pulsectl
|
||||
|
||||
Builder.load_string('''
|
||||
<MyClockWidget>:
|
||||
|
@ -63,42 +64,90 @@ Builder.load_string('''
|
|||
size: self.size
|
||||
pos: self.pos
|
||||
GridLayout:
|
||||
rows: 6
|
||||
rows: 7
|
||||
cols: 2
|
||||
Label:
|
||||
text:"Volume"
|
||||
text: "Volume"
|
||||
halign: "left"
|
||||
valign: "middle"
|
||||
text_size: self.size
|
||||
Slider:
|
||||
id: volume_slider
|
||||
min: 0
|
||||
max: 20
|
||||
value: 4
|
||||
value: 15
|
||||
on_value: root.volume_slider_value(*args)
|
||||
value_track: True
|
||||
value_track_color: [1, 0, 0, 1]
|
||||
Label:
|
||||
text:"Wake up brightness"
|
||||
halign: "left"
|
||||
valign: "middle"
|
||||
text_size: self.size
|
||||
Slider:
|
||||
id: wake_up_bightness_slider
|
||||
min: 0
|
||||
max: 20
|
||||
value: 20
|
||||
on_value: root.wake_up_brightness_slider_value(*args)
|
||||
value_track: True
|
||||
value_track_color: [1, 0, 0, 1]
|
||||
Label:
|
||||
text:"Reading light brightness"
|
||||
halign: "left"
|
||||
valign: "middle"
|
||||
text_size: self.size
|
||||
Slider:
|
||||
id: reading_light_brightness_slider
|
||||
min: 0
|
||||
max: 20
|
||||
value: 1
|
||||
on_value: root.reading_light_brightness_slider_value(*args)
|
||||
value_track: True
|
||||
value_track_color: [1, 0, 0, 1]
|
||||
Label:
|
||||
text:"Display brightness"
|
||||
halign: "left"
|
||||
valign: "middle"
|
||||
text_size: self.size
|
||||
Slider:
|
||||
id: display_brightness_slider
|
||||
min: 0
|
||||
max: 20
|
||||
value: 10
|
||||
on_value: root.display_brightness_slider_value(*args)
|
||||
value_track: True
|
||||
value_track_color: [1, 0, 0, 1]
|
||||
Label:
|
||||
text:"Wifi network"
|
||||
halign: "left"
|
||||
valign: "middle"
|
||||
text_size: self.size
|
||||
Label:
|
||||
text:"wifi name"
|
||||
halign: "left"
|
||||
valign: "middle"
|
||||
text_size: self.size
|
||||
Label:
|
||||
text:"Wifi password"
|
||||
halign: "left"
|
||||
valign: "middle"
|
||||
text_size: self.size
|
||||
Label:
|
||||
text:"wifi password"
|
||||
halign: "left"
|
||||
valign: "middle"
|
||||
text_size: self.size
|
||||
Label:
|
||||
text:"Calendar URL"
|
||||
halign: "left"
|
||||
valign: "middle"
|
||||
text_size: self.size
|
||||
Label:
|
||||
text:"calendar url"
|
||||
halign: "left"
|
||||
valign: "middle"
|
||||
text_size: self.size
|
||||
''')
|
||||
|
||||
Position = collections.namedtuple('Position', 'x y')
|
||||
|
@ -121,9 +170,10 @@ class AlarmSettings():
|
|||
sound_source = "Woodpecker Chirps - QuickSounds.com.mp3"
|
||||
seconds_to_sunrise = 30 * 60
|
||||
|
||||
volume = 4
|
||||
volume = 15
|
||||
wake_up_brightness = 20
|
||||
reading_light_brightness = 1
|
||||
display_brightness = 10
|
||||
|
||||
class MyClockWidget(FloatLayout):
|
||||
grabbed = ""
|
||||
|
@ -368,7 +418,32 @@ class MyClockWidget(FloatLayout):
|
|||
def volume_slider_value(self, *args):
|
||||
alarm_settings = App.get_running_app().alarm_settings
|
||||
alarm_settings.volume = int(args[1])
|
||||
print(str(int(args[1])))
|
||||
|
||||
print("Volume changed to " + str(alarm_settings.volume))
|
||||
|
||||
with pulsectl.Pulse('volume-increaser') as pulse:
|
||||
for sink in pulse.sink_list():
|
||||
# Volume is usually in 0-1.0 range, with >1.0 being soft-boosted
|
||||
old_vol = pulse.volume_get_all_chans(sink)
|
||||
pulse.volume_set_all_chans(sink, alarm_settings.volume / 20.0)
|
||||
new_vol = pulse.volume_get_all_chans(sink)
|
||||
print("HW volume changed from " + str(old_vol) + " to " + str(new_vol))
|
||||
|
||||
|
||||
def wake_up_brightness_slider_value(self, *args):
|
||||
alarm_settings = App.get_running_app().alarm_settings
|
||||
alarm_settings.wake_up_brightness = int(args[1])
|
||||
print("Wake up brightness changed to " + str(alarm_settings.wake_up_brightness))
|
||||
|
||||
def reading_light_brightness_slider_value(self, *args):
|
||||
alarm_settings = App.get_running_app().alarm_settings
|
||||
alarm_settings.reading_light_brightness = int(args[1])
|
||||
print("Reading light brightness changed to " + str(alarm_settings.reading_light_brightness))
|
||||
|
||||
def display_brightness_slider_value(self, *args):
|
||||
alarm_settings = App.get_running_app().alarm_settings
|
||||
alarm_settings.display_brightness = int(args[1])
|
||||
print("Display brightness changed to " + str(alarm_settings.display_brightness))
|
||||
|
||||
def on_alarm_button_pressed(self):
|
||||
alarm_settings = App.get_running_app().alarm_settings
|
||||
|
@ -475,8 +550,6 @@ class MyClockWidget(FloatLayout):
|
|||
self.on_alarm_button_pressed()
|
||||
elif (0.85 <= touch.spos[0] <= 0.95) and (0.85 <= touch.spos[1] <= 0.95):
|
||||
self.on_settings_button_pressed()
|
||||
elif sound_process is not None:
|
||||
kill_sound_process()
|
||||
elif self.view == "set_alarm":
|
||||
self.set_alarm_timeout_counter = 0
|
||||
if (minutes_hand.x - 0.1 * self.size[0] <= touch.pos[0] <= minutes_hand.x + 0.1 * self.size[0]) and \
|
||||
|
@ -485,6 +558,11 @@ class MyClockWidget(FloatLayout):
|
|||
elif (hours_hand.x - 0.1 * self.size[0] <= touch.pos[0] <= hours_hand.x + 0.1 * self.size[0]) and \
|
||||
(hours_hand.y - 0.1 * self.size[1] <= touch.pos[1] <= hours_hand.y + 0.1 * self.size[1]):
|
||||
self.grabbed = "hour"
|
||||
elif self.view == "settings":
|
||||
pass
|
||||
elif self.view == "clock":
|
||||
if sound_process is not None:
|
||||
kill_sound_process()
|
||||
|
||||
super(MyClockWidget, self).on_touch_down(touch)
|
||||
|
||||
|
@ -492,6 +570,15 @@ class MyClockWidget(FloatLayout):
|
|||
class MyApp(App):
|
||||
alarm_settings = AlarmSettings()
|
||||
|
||||
# apply volume setting
|
||||
with pulsectl.Pulse('volume-increaser') as pulse:
|
||||
for sink in pulse.sink_list():
|
||||
# Volume is usually in 0-1.0 range, with >1.0 being soft-boosted
|
||||
old_vol = pulse.volume_get_all_chans(sink)
|
||||
pulse.volume_set_all_chans(sink, alarm_settings.volume / 20.0)
|
||||
new_vol = pulse.volume_get_all_chans(sink)
|
||||
print("HW volume changed from " + str(old_vol) + " to " + str(new_vol))
|
||||
|
||||
def build(self):
|
||||
clock_widget = MyClockWidget()
|
||||
# update initially, just after construction of the widget is complete
|
||||
|
|
Loading…
Reference in New Issue