diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..ee04a5e Binary files /dev/null and b/.DS_Store differ diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000..2c60ac3 Binary files /dev/null and b/src/.DS_Store differ diff --git a/src/assets/.DS_Store b/src/assets/.DS_Store new file mode 100644 index 0000000..1cf19d5 Binary files /dev/null and b/src/assets/.DS_Store differ diff --git a/src/assets/images/538.png b/src/assets/images/538.png new file mode 100644 index 0000000..6427e5e Binary files /dev/null and b/src/assets/images/538.png differ diff --git a/src/assets/images/_Radio.png b/src/assets/images/_Radio.png new file mode 100644 index 0000000..bf76f21 Binary files /dev/null and b/src/assets/images/_Radio.png differ diff --git a/src/assets/images/_TV.png b/src/assets/images/_TV.png new file mode 100644 index 0000000..b8865b9 Binary files /dev/null and b/src/assets/images/_TV.png differ diff --git a/src/assets/images/antennebayernpartyhits.png b/src/assets/images/antennebayernpartyhits.png new file mode 100644 index 0000000..ef4c0e2 Binary files /dev/null and b/src/assets/images/antennebayernpartyhits.png differ diff --git a/src/assets/images/arrow.png b/src/assets/images/arrow.png new file mode 100644 index 0000000..89029b8 Binary files /dev/null and b/src/assets/images/arrow.png differ diff --git a/src/assets/images/beachchillout.png b/src/assets/images/beachchillout.png new file mode 100644 index 0000000..5c3b727 Binary files /dev/null and b/src/assets/images/beachchillout.png differ diff --git a/src/assets/images/classicnl.png b/src/assets/images/classicnl.png new file mode 100644 index 0000000..44fae88 Binary files /dev/null and b/src/assets/images/classicnl.png differ diff --git a/src/assets/images/concertzender.png b/src/assets/images/concertzender.png new file mode 100644 index 0000000..bb0aaf1 Binary files /dev/null and b/src/assets/images/concertzender.png differ diff --git a/src/assets/images/frequence3.png b/src/assets/images/frequence3.png new file mode 100644 index 0000000..49573b3 Binary files /dev/null and b/src/assets/images/frequence3.png differ diff --git a/src/assets/images/highway65.png b/src/assets/images/highway65.png new file mode 100644 index 0000000..dd672c3 Binary files /dev/null and b/src/assets/images/highway65.png differ diff --git a/src/assets/images/klara.png b/src/assets/images/klara.png new file mode 100644 index 0000000..a764c70 Binary files /dev/null and b/src/assets/images/klara.png differ diff --git a/src/assets/images/nps1.png b/src/assets/images/nps1.png new file mode 100644 index 0000000..b82b2c8 Binary files /dev/null and b/src/assets/images/nps1.png differ diff --git a/src/assets/images/nps2.png b/src/assets/images/nps2.png new file mode 100644 index 0000000..acab33c Binary files /dev/null and b/src/assets/images/nps2.png differ diff --git a/src/assets/images/nps3.png b/src/assets/images/nps3.png new file mode 100644 index 0000000..674dc78 Binary files /dev/null and b/src/assets/images/nps3.png differ diff --git a/src/assets/images/nps4.png b/src/assets/images/nps4.png new file mode 100644 index 0000000..a25e229 Binary files /dev/null and b/src/assets/images/nps4.png differ diff --git a/src/assets/images/prysm.png b/src/assets/images/prysm.png new file mode 100644 index 0000000..4198cef Binary files /dev/null and b/src/assets/images/prysm.png differ diff --git a/src/assets/images/qmusic.png b/src/assets/images/qmusic.png new file mode 100644 index 0000000..8afd7cd Binary files /dev/null and b/src/assets/images/qmusic.png differ diff --git a/src/assets/images/sky.png b/src/assets/images/sky.png new file mode 100644 index 0000000..3ebcd45 Binary files /dev/null and b/src/assets/images/sky.png differ diff --git a/src/assets/images/spotify.png b/src/assets/images/spotify.png new file mode 100644 index 0000000..d3ae41f Binary files /dev/null and b/src/assets/images/spotify.png differ diff --git a/src/assets/images/spotify_bw.png b/src/assets/images/spotify_bw.png new file mode 100644 index 0000000..c21f4f4 Binary files /dev/null and b/src/assets/images/spotify_bw.png differ diff --git a/src/assets/images/sublime.png b/src/assets/images/sublime.png new file mode 100644 index 0000000..57bbe22 Binary files /dev/null and b/src/assets/images/sublime.png differ diff --git a/src/assets/images/tuner.png b/src/assets/images/tuner.png new file mode 100644 index 0000000..c4fa4d7 Binary files /dev/null and b/src/assets/images/tuner.png differ diff --git a/src/assets/images/tuner_bw.png b/src/assets/images/tuner_bw.png new file mode 100644 index 0000000..2c9e78a Binary files /dev/null and b/src/assets/images/tuner_bw.png differ diff --git a/src/assets/images/tv.png b/src/assets/images/tv.png new file mode 100644 index 0000000..13639c9 Binary files /dev/null and b/src/assets/images/tv.png differ diff --git a/src/assets/images/tv_bw.png b/src/assets/images/tv_bw.png new file mode 100644 index 0000000..f54a41a Binary files /dev/null and b/src/assets/images/tv_bw.png differ diff --git a/src/assets/images/vrt1.png b/src/assets/images/vrt1.png new file mode 100644 index 0000000..d5c1335 Binary files /dev/null and b/src/assets/images/vrt1.png differ diff --git a/src/assets/images/vrtstudiobrussel.png b/src/assets/images/vrtstudiobrussel.png new file mode 100644 index 0000000..c39cc0d Binary files /dev/null and b/src/assets/images/vrtstudiobrussel.png differ diff --git a/src/main.py b/src/main.py index 7e5dede..b4bd642 100644 --- a/src/main.py +++ b/src/main.py @@ -1,54 +1,138 @@ import flet as ft import time -RON = 1 -RSTARTING = 2 -ROFF = 3 +RECEIVER_ON = 1 +RECEIVER_STARTING = 2 +RECEIVER_OFF = 3 +ICONSIZE = 30 +SOURCE_UNKNOWN = 0 +SOURCE_RADIO = 1 +SOURCE_TV = 2 +SOURCE_SPOTIFY = 3 +VOLUME_MIN = 0 +VOLUME_MAX = 60 +VOLUME_NICE = 30 +VOLUME_DELTA = 2 +RADIOS = ["1,NPO Radio 1,nps1.png", +"2,NPO Radio 2,nps2.png", +"3,NPO 3FM,nps3.png", +"4,NPO Radio 4,nps4.png", +"5,Sky Radio,sky.png", +"6,Radio 538,538.png", +"7,Qmusic,qmusic.png", +"8,Arrow Classic Rock,arrow.png", +"9,Sublime,sublime.png", +"10,Classicnl,classicnl.png", +"11,VRT Studio Brussel,vrtstudiobrussel.png", +"12,VRT Radio 1,vrt1.png", +"13,VRT Klara,klara.png", +"14,Highway 65 Radio (US),highway65.png", +"15,Concertzender (Utrecht),concertzender.png", +"16,ANTENNE BAYERN Part Hita,antennebayernpartyhits.png", +"17,Prysm Trance,prysm.png", +"18,Beach Chill-Out Radio (Canada),beachchillout.png", +"19,Frequence3,frequence3.png"] + + +state_onoff = RECEIVER_OFF +state_source = SOURCE_UNKNOWN +state_volume = VOLUME_NICE def main(page: ft.Page): - radio_state = (RON, RSTARTING, ROFF) + + def onoff_changed(e): + global state_onoff + global state_volume + global state_source if onoff.value == True: - radio_state = RON - block_topright.visible = False + state_onoff = RECEIVER_ON + block_control.visible = True + set_volume(VOLUME_NICE) if onoff.value == False: - radio_state = ROFF - block_topright.visible = True + state_onoff = RECEIVER_OFF + block_control.visible = False + state_source = SOURCE_UNKNOWN page.update() + + def b1_clicked(e): + global state_source + i1.src = "images/tuner.png" + i2.src = "images/spotify_bw.png" + i3.src = "images/tv_bw.png" + state_source = SOURCE_RADIO + page.update() + + def b2_clicked(e): + global state_source + i1.src = "images/tuner_bw.png" + i2.src = "images/spotify.png" + i3.src = "images/tv_bw.png" + state_source = SOURCE_SPOTIFY + page.update() + + def b3_clicked(e): + global state_source + i1.src = "images/tuner_bw.png" + i2.src = "images/spotify_bw.png" + i3.src = "images/tv.png" + state_source = SOURCE_TV + page.update() + + def set_volume(newvol): + global state_volume + if newvol>=VOLUME_MIN and newvol <= VOLUME_MAX: + state_volume = newvol + v2.value = newvol + if newvol < 35: + v2.active_color = ft.colors.GREEN + elif newvol < 50: + v2.active_color = ft.colors.AMBER + else: + v2.active_color = ft.colors.RED + page.update() + + def volume_changed(e): + set_volume(e.control.value) + + def volume_muted(e): + set_volume(VOLUME_MIN) + + def volume_upped(e): + set_volume(state_volume + VOLUME_DELTA) + + def volume_downed(e): + set_volume(state_volume - VOLUME_DELTA) page.theme_mode = ft.ThemeMode.DARK onoff = ft.Switch(on_change=onoff_changed) block_topleft = ft.Row([ft.Text("Off", size=30), onoff, ft.Text("On", size=30)]) - block_topright = ft.Row([ft.ProgressRing()]) + block_topright = ft.Row([ft.ProgressRing()], visible=False) block_top = ft.Row([block_topleft, block_topright], alignment=ft.MainAxisAlignment.SPACE_BETWEEN) page.add(block_top) + i1 = ft.Image(src="images/tuner_bw.png", width=100, height=100, fit=ft.ImageFit.CONTAIN) + i2 = ft.Image(src="images/spotify_bw.png", width=100, height=100, fit=ft.ImageFit.CONTAIN) + i3 = ft.Image(src="images/tv_bw.png", width=100, height=100, fit=ft.ImageFit.CONTAIN) + b1 = ft.IconButton(content=i1, on_click=b1_clicked, padding=20) + b2 = ft.IconButton(content=i2, on_click=b2_clicked, padding=20) + b3 = ft.IconButton(content=i3, on_click=b3_clicked, padding=20) + block_middle = ft.Row([b1, b2, b3], alignment=ft.MainAxisAlignment.CENTER, visible=True) + + + v0 = ft.IconButton(icon=ft.Icons.VOLUME_MUTE, icon_size=ICONSIZE, on_click=volume_muted) + v1 = ft.IconButton(icon=ft.Icons.VOLUME_DOWN, icon_size=ICONSIZE, on_click=volume_downed) + v2 = ft.Slider(min=0, max=60, width=250, on_change=volume_changed) + v3 = ft.IconButton(icon=ft.Icons.VOLUME_UP, icon_size=ICONSIZE, on_click=volume_upped) + block_volume = ft.Row([v0, v1,v2,v3], alignment=ft.MainAxisAlignment.CENTER) + block_control = ft.Container(content=ft.Column([block_middle, block_volume])) + page.add(block_control) + + +for r in RADIOS: + (r_favnr, r_title, r_imagename) = r.split(",") - counter = ft.Text("0", size=50, data=0) - def increment_click(e): - counter.data += 1 - counter.value = str(counter.data) - counter.update() - - floating_action_button1 = ft.FloatingActionButton( - icon=ft.Icons.ADD, on_click=increment_click - ) - floating_action_button2 = ft.FloatingActionButton( - icon=ft.Icons.ADD, on_click=increment_click - ) - page.title = "hello world" - page.add(counter) - page.add(floating_action_button1) - page.add(floating_action_button2) - t2 = ft.Text("-", size=40) - page.add(t2) - for i in range(10): - t2.value = f"Step {i}" - page.update() - time.sleep(1) - - -ft.app(main) +ft.app(main, assets_dir="assets")