added missing files

This commit is contained in:
Jakub Husak
2016-12-01 00:16:11 +01:00
parent 68f9d7b21e
commit 62eee7a1ee
6 changed files with 1009 additions and 9 deletions
+289
View File
@@ -0,0 +1,289 @@
#!/usr/bin/env python
# -*- coding: latin-1 -*-
#
# $Id: lcd_class.py,v 1.27 2016/04/06 09:48:25 bob Exp $
# Raspberry Pi Internet Radio
# using an HD44780 LCD display
#
# Author : Bob Rathbone
# Site : http://www.bobrathbone.com
#
# From original LCD routines : Matt Hawkins
# Site : http://www.raspberrypi-spy.co.uk
# Timing improvements fromobert Coward/Paul Carpenter
# Site : http://www.raspberrypi-spy.co.uk
# http://www.pcserviceslectronics.co.uk
#
# Expanded to use 4 x 20 display
#
# This program uses Music Player Daemon 'mpd'and it's client 'mpc'
# See http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki
#
# License: GNU V3, See https://www.gnu.org/copyleft/gpl.html
#
# Disclaimer: Software is provided as is and absolutly no warranties are implied or given.
# The authors shall not be liable for any loss or damage however caused.
#
import os
import time
import RPi.GPIO as GPIO
from translate_class import Translate
from config_class import Configuration
from lcdproc.server import Server
server=Server()
# The wiring for the LCD is as follows:
# 1 : GND
# 2 : 5V
# 3 : Contrast (0-5V)*
# 4 : RS (Register Select)
# 5 : R/W (Read Write) - GROUND THIS PIN
# 6 : Enable or Strobe
# 7 : Data Bit 0 - NOT USED
# 8 : Data Bit 1 - NOT USED
# 9 : Data Bit 2 - NOT USED
# 10: Data Bit 3 - NOT USED
# 11: Data Bit 4
# 12: Data Bit 5
# 13: Data Bit 6
# 14: Data Bit 7
# 15: LCD Backlight +5V**
# 16: LCD Backlight GND
# Define GPIO to LCD mapping
##LCD_RS = 7
##LCD_E = 8
##LCD_D4_21 = 21 # Rev 1 Board
##LCD_D4_27 = 27 # Rev 2 Board
##LCD_D5 = 22
##LCD_D6 = 23
##LCD_D7 = 24
#lcd_bri = 10 # Brightness control (Pecus)
# Define LCD device constants
LCD_WIDTH = 20 # Default characters per line
##LCD_CHR = True
##LCD_CMD = False
LCD_LINE_1 = 1
LCD_LINE_2 = 2
LCD_LINE_3 = 3
LCD_LINE_4 = 4
# Some LCDs use different addresses (16 x 4 line LCDs)
# Comment out the above two lines and uncomment the two lines below
# LCD_LINE_3 = 0x90 # LCD RAM address for the 3rd line
# LCD_LINE_4 = 0xD0 # LCD RAM address for the 4th line
# If using a 4 x 16 display also amend the lcd.setWidth(<width>) statement in rradio4.py
# Timing constants
translate = Translate()
# Temporary files for displayed text. /tmp is a tempfs in RAM (Pecus)
# Remember! If you don't want to kill your SD card, add line in /etc/fstab : (Pecus)
# 'tmpfs /tmp /tmpfs size=10M,noatime 0 0' (Pecus)
Line1File = "/tmp/radiod/line1.txt" # (Pecus)
Line2File = "/tmp/radiod/line2.txt" # (Pecus)
Line3File = "/tmp/radiod/line3.txt" # (Pecus)
Line4File = "/tmp/radiod/line4.txt" # (Pecus)
# Lcd Class
class Lcd_lcdproc:
width = LCD_WIDTH
# If display can support umlauts set to True else False
RawMode = False # Test only
ScrollSpeed = 0.25 # Default scroll speed
def __init__(self):
# Create files for displayed texts (Pecus)
if not os.path.isdir("/tmp/radiod/"): # (Pecus)
os.mkdir ("/tmp/radiod/") # (Pecus)
self.writeToFile (Line1File,"1") # (Pecus)
self.writeToFile (Line2File,"2") # (Pecus)
self.writeToFile (Line3File,"3") # (Pecus)
self.writeToFile (Line4File,"4") # (Pecus)
return
# Initialise for either revision 1 or 2 boards
def init(self,boardRevision):
self.lcd_init()
return
# Initialise the display
def lcd_init(self):
# INIT
server.start_session()
self.screen = server.add_screen("Screen")
self.screen.set_heartbeat("off")
self.screen.set_duration(5)
self.line1_widget = self.screen.add_scroller_widget("MyStringWidget1", text="01234567890123456789",speed=2)
self.line2_widget = self.screen.add_scroller_widget("MyStringWidget2", text="11234567890123456789",speed=2)
self.line3_widget = self.screen.add_scroller_widget("MyStringWidget3", text="21234567890123456789",speed=2)
self.line4_widget = self.screen.add_scroller_widget("MyStringWidget4", text="31234567890123456789",speed=2)
self.line1_widget.set_top(1);
self.line2_widget.set_top(2);
self.line3_widget.set_top(3);
self.line4_widget.set_top(4);
self.line1_widget.set_left(1);
self.line2_widget.set_left(1);
self.line3_widget.set_left(1);
self.line4_widget.set_left(1);
self.line1_widget.set_direction("m");
self.line2_widget.set_direction("m");
self.line3_widget.set_direction("m");
self.line4_widget.set_direction("m");
#time.sleep(0.3) # Allow to settle before using
return
# Set the display width
def setWidth(self,width):
self.width = width
return
# Send string to display
def _string(self,message,line,speed):
s = message.ljust(self.width," ")
if not self.RawMode:
s = translate.toLCD(s)
if len(s)<=20:
speed=0
if speed==0:
s=s[0:19]
else:
s=s[0:160]+" "
# SET TEXT
if line==1:
self.line1_widget.set_text(s)
self.line1_widget.set_speed(speed)
elif line==2:
self.line2_widget.set_text(s)
self.line2_widget.set_speed(speed)
elif line==3:
self.line3_widget.set_text(s)
self.line3_widget.set_speed(speed)
else:
self.line4_widget.set_text(s)
self.line4_widget.set_speed(speed)
return
# Display Line 1 on LED
def line1(self,text):
self.writeToFile (Line1File,text) # (Pecus)
# WRITE LINE 1
self._string(text,1,0)
return
# Display Line 2 on LED
def line2(self,text):
self.writeToFile (Line2File,text) # (Pecus)
# WRITE LINE 2
self._string(text,2,0)
return
# Display Line 3 on LED
def line3(self,text):
self.writeToFile (Line3File,text) # (Pecus)
# WRITE LINE 3
self._string(text,3,0)
return
# Display Line 4 on LED
def line4(self,text):
self.writeToFile (Line4File,text) # (Pecus)
# WRITE LINE 4
self._string(text,4,0)
return
# Scroll message on line 1
def scroll1(self,mytext,interrupt):
self.writeToFile (Line1File,mytext) # (Pecus)
self._scroll(mytext,LCD_LINE_1,interrupt)
return
# Scroll message on line 2
def scroll2(self,mytext,interrupt):
self.writeToFile (Line2File,mytext) # (Pecus)
self._scroll(mytext,LCD_LINE_2,interrupt)
return
# Scroll message on line 3
def scroll3(self,mytext,interrupt):
self.writeToFile (Line3File,mytext) # (Pecus)
self._scroll(mytext,LCD_LINE_3,interrupt)
return
# Scroll message on line 4
def scroll4(self,mytext,interrupt):
self.writeToFile (Line4File,mytext) # (Pecus)
self._scroll(mytext,LCD_LINE_4,interrupt)
return
# Scroll line - interrupt() breaks out routine if True
def _scroll(self,mytext,line,interrupt):
# WRITE PARTICULAR LINE line
self._string(mytext,line,2)
print "SCROLL: " + mytext
return
# Set Scroll line speed - Best values are 0.2 and 0.3
# Limit to between 0.05 and 1.0
def setScrollSpeed(self,speed):
#print "SCROLL SPEED: "+str(speed)
if speed < 0.1:
speed = 0.2
elif speed > 1.0:
speed = 0.3
self.ScrollSpeed = speed
speed=int(speed*10)
#self.line1_widget.set_speed(speed)
#self.line2_widget.set_speed(speed)
#self.line3_widget.set_speed(speed)
#self.line4_widget.set_speed(speed)
return
# Set raw mode on (No translation)
def setRawMode(self,value):
self.RawMode = value
return
# Clear display
def clearDisplay(self):
self.writeToFile (Line1File,"") # (Pecus)
self.writeToFile (Line2File,"") # (Pecus)
self.writeToFile (Line3File,"") # (Pecus)
self.writeToFile (Line4File,"") # (Pecus)
# CLEAR DISPLAY
self._string(" ",1)
self._string(" ",2)
self._string(" ",3)
self._string(" ",4)
time.sleep(E_POSTCLEAR)
return
# Set brightness (Pecus)
def setBright(self,value):
#GPIO.output(lcd_bri, value)
if value :
self.screen.set_backlight("on")
else:
self.screen.set_backlight("off")
return
# Write text to file (Pecus)
def writeToFile(self,fname,text): # (Pecus)
file = open(fname, "w") # (Pecus)
file.write(text) # (Pecus)
file.close() # (Pecus)
return # (Pecus)
# End of Lcd_lcdproc class
View File
+223
View File
@@ -0,0 +1,223 @@
from widgets import StringWidget, TitleWidget, HBarWidget, VBarWidget, IconWidget, ScrollerWidget, FrameWidget,NumberWidget
class Screen(object):
""" LCDproc Screen Object """
def __init__(self, server, ref):
""" Constructor """
self.server = server
self.ref = ref
self.name = ref
self.width = None
self.height = None
self.priority = None
self.heartbeat = None
self.backlight = None
self.duration = None
self.timeout = None
self.cursor = None
self.cursor_x = None
self.cursor_y = None
self.widgets = dict()
self.server.request("screen_add %s" % (ref))
self.set_cursor("off")
def set_name(self, name):
""" Set Screen Name """
self.name = name
self.server.request("screen_set %s name %s" % (self.ref, self.name))
def set_width(self, width):
""" Set Screen Width """
if width > 0 and width <= self.server.server_info.get("screen_width"):
self.width = width
self.server.request("screen_set %s wid %i" % (self.ref, self.width))
def set_height(self, height):
""" Set Screen Height """
if height > 0 and height <= self.server.server_info.get("screen_height"):
self.height = height
self.server.request("screen_set %s hgt %i" % (self.ref, self.height))
def set_cursor_x(self, x):
""" Set Screen Cursor X Position """
if x >= 0 and x <= self.server.server_info.get("screen_width"):
self.cursor_x = x
self.server.request("screen_set %s cursor_x %i" % (self.ref, self.cursor_x))
def set_cursor_y(self, y):
""" Set Screen Cursor Y Position """
if y >= 0 and y <= self.server.server_info.get("screen_height"):
self.cursor_y = y
self.server.request("screen_set %s cursor_y %i" % (self.ref, self.cursor_y))
def set_duration(self, duration):
""" Set Screen Change Interval Duration """
if duration > 0:
self.duration = duration
self.server.request("screen_set %s duration %i" % (self.ref, (self.duration * 8)))
def set_timeout(self, timeout):
""" Set Screen Timeout Duration """
if timeout > 0:
self.timeout = timeout
self.server.request("screen_set %s timeout %i" % (self.ref, (self.timeout * 8)))
def set_priority(self, priority):
""" Set Screen Priority Class """
if priority in ["hidden", "background", "info", "foreground", "alert", "input"]:
self.priority = priority
self.server.request("screen_set %s priority %s" % (self.ref, self.priority))
def set_backlight(self, state):
""" Set Screen Backlight Mode """
if state in ["on", "off", "toggle", "open", "blink", "flash"]:
self.backlight = state
self.server.request("screen_set %s backlight %s" % (self.ref, self.backlight))
def set_heartbeat(self, state):
""" Set Screen Heartbeat Display Mode """
if state in ["on", "off", "open"]:
self.heartbeat = state
self.server.request("screen_set %s heartbeat %s" % (self.ref, self.heartbeat))
def set_cursor(self, cursor):
""" Set Screen Cursor Mode """
if cursor in ["on", "off", "under", "block"]:
self.cursor = cursor
self.server.request("screen_set %s cursor %s" % (self.ref, self.cursor))
def clear(self):
""" Clear Screen """
w1 = StringWidget(self, ref="_w1_", text=" "*20, x=1, y=1)
w2 = StringWidget(self, ref="_w2_", text=" "*20, x=1, y=2)
w3 = StringWidget(self, ref="_w3_", text=" "*20, x=1, y=3)
w4 = StringWidget(self, ref="_w4_", text=" "*20, x=1, y=4)
def add_string_widget(self, ref, text="Text", x=1, y=1):
""" Add String Widget """
if ref not in self.widgets:
widget = StringWidget(screen=self, ref=ref, text=text, x=x, y=y)
self.widgets[ref] = widget
return self.widgets[ref]
def add_title_widget(self, ref, text="Title"):
""" Add Title Widget """
if ref not in self.widgets:
widget = TitleWidget(screen=self, ref=ref, text=text)
self.widgets[ref] = widget
return self.widgets[ref]
def add_hbar_widget(self, ref, x=1, y=1, length=10):
""" Add Horizontal Bar Widget """
if ref not in self.widgets:
widget = HBarWidget(screen=self, ref=ref, x=x, y=y, length=length)
self.widgets[ref] = widget
return self.widgets[ref]
def add_vbar_widget(self, ref, x=1, y=1, length=10):
""" Add Vertical Bar Widget """
if ref not in self.widgets:
widget = VBarWidget(screen=self, ref=ref, x=x, y=y, length=length)
self.widgets[ref] = widget
return self.widgets[ref]
def add_icon_widget(self, ref, x=1, y=1, name="heart"):
""" Add Icon Widget """
if ref not in self.widgets:
widget = IconWidget(screen=self, ref=ref, x=x, y=y, name=name)
self.widgets[ref] = widget
return self.widgets[ref]
def add_scroller_widget(self, ref, left=1, top=1, right=20, bottom=1, direction="h", speed=1, text="Message"):
""" Add Scroller Widget """
if ref not in self.widgets:
widget = ScrollerWidget(screen=self, ref=ref, left=left, top=top, right=right, bottom=bottom, direction=direction, speed=speed, text=text)
self.widgets[ref] = widget
return self.widgets[ref]
def add_frame_widget(self, ref, left=1, top=1, right=20, bottom=1, width=20, height=4, direction="h", speed=1):
""" Add Frame Widget """
if ref not in self.widgets:
widget = FrameWidget(screen=self, ref=ref, left=left, top=top, right=right, bottom=bottom, width=width, height=height, direction=direction, speed=speed)
self.widgets[ref] = widget
return self.widgets[ref]
def add_number_widget(self, ref, x=1, value=1):
""" Add Number Widget """
if ref not in self.widgets:
widget = NumberWidget(screen=self, ref=ref, x=x, value=value)
self.widgets[ref] = widget
return self.widgets[ref]
def del_widget(self, ref):
""" Delete/Remove A Widget """
self.server.request("widget_del %s %s" % (self.name, ref))
del(self.widgets[ref])
+153
View File
@@ -0,0 +1,153 @@
import telnetlib
import urllib
import select
from screen import Screen
class Server(object):
""" LCDproc Server Object """
def __init__(self, hostname="localhost", port=13666, debug=False):
""" Constructor """
self.debug = debug
self.hostname = hostname
self.port = port
self.tn = telnetlib.Telnet(self.hostname, self.port)
self.server_info = dict()
self.screens = dict()
self.keys = list()
def start_session(self):
""" Start Session """
response = self.request("hello")
print(response)
bits = response.split(" ")
self.server_info.update({
"server_version": bits[2],
"protocol_version": bits[4],
"screen_width": int(bits[7]),
"screen_height": int(bits[9]),
"cell_width": int(bits[11]),
"cell_height": int(bits[13])
})
return response
def request(self, command_string):
""" Request """
#self.tn.write((command_string + "\n").encode())
self.tn.write((command_string + "\n"))
if self.debug: print "Telnet Request: %s" % (command_string)
while True:
response = urllib.unquote(self.tn.read_until(b"\n").decode())
if "success" in response: # Normal successful reply
break
if "huh" in response: # Something went wrong
break
if "connect" in response: # Special reply to "hello"
break
# TODO Keep track of which screen is displayed
# Try again if response was key, menu or visibility notification.
if "huh" in response or self.debug: print "Telnet Response: %s" % (response[:-1])
return response
def poll(self):
"""
Poll
Check for a non-response string generated by LCDd and return any string read.
LCDd generates strings for key presses, menu events & screen visibility changes.
"""
if select.select([self.tn], [], [], 0) == ([self.tn], [], []):
response = urllib.unquote(self.tn.read_until(b"\n").decode())
if self.debug: print "Telnet Poll: %s" % (response[:-1])
# TODO Keep track of which screen is displayed
return response
else:
return None
def add_screen(self, ref):
""" Add Screen """
if ref not in self.screens:
screen = Screen(self, ref)
screen.clear() # TODO Check this is needed, new screens should be clear.
self.screens[ref] = screen
return self.screens[ref]
return self.screens[ref]
def del_screen(self, ref):
""" Delete/Remove Screen """
self.request("screen_del %s" % (ref))
del(self.screens[ref])
def add_key(self, ref, mode = "shared"):
"""
Add a key.
(ref)
Return key name or None on error
"""
if ref not in self.keys:
response = self.request("client_add_key %s -%s" % (ref, mode))
if "success" not in response: return None
self.keys.append(ref)
return ref
def del_key(self, ref):
"""
Delete a key.
(ref)
Return None or LCDd response on error
"""
if ref not in self.keys:
response = self.request("client_del_key %s" % (ref))
self.keys.remove(ref)
if "success" in response:
return None
else:
return response
def output(self, value):
"""
Sets the client's output (on, off, int)
Sets the general purpose output on some display modules to this value.
Use on to set all outputs to high state, and off to set all to low state.
The meaning of the integer value depends on your specific device, usually
it is a bit pattern describing the state of each output line.
Return None or LCDd response on error
"""
response = self.request(("output %s" % (value)).encode())
if "success" in response:
return None
else:
return response
def get_server_info(self):
"""
Returns information about the server and the connected
LCD as a dictionary with the following keys:
"server_version", "protocol_version",
"screen_width", "screen_height",
"cell_width", "cell_height"
"""
return self.server_info
+335
View File
@@ -0,0 +1,335 @@
import urllib
class StringWidget(object):
""" String Widget """
def __init__(self, screen, ref, x, y, text):
self.screen = screen
self.ref = ref
self.x = x
self.y = y
self.text = text
self.screen.server.request("widget_add %s %s %s" % (self.screen.ref, self.ref, "string"))
self.update()
def update(self):
#print(self.text)
#print("n")
self.screen.server.request('widget_set %s %s %s %s "%s"' % (self.screen.ref, self.ref, self.x, self.y, self.text.replace('"', '\\"')))
def set_x(self, x):
self.x = x
self.update()
def set_y(self, y):
self.y = y
self.update()
def set_text(self, text):
self.text = text
self.update()
class TitleWidget(object):
""" Title Widget """
def __init__(self, screen, ref, text):
self.screen = screen
self.ref = ref
self.text = text
self.screen.server.request("widget_add %s %s %s" % (self.screen.ref, self.ref, "title"))
self.update()
def update(self):
self.screen.server.request('widget_set %s %s "%s"' % (self.screen.ref, self.ref, self.text.replace('"', '\\"')))
def set_text(self, text):
self.text = text
self.update()
class HBarWidget(object):
def __init__(self, screen, ref, x, y, length):
self.screen = screen
self.ref = ref
self.x = x
self.y = y
self.length = length
self.screen.server.request("widget_add %s %s %s" % (self.screen.ref, self.ref, "hbar"))
self.update()
def update(self):
self.screen.server.request("widget_set %s %s %s %s %s" % (self.screen.ref, self.ref, self.x, self.y, self.length))
def set_x(self, x):
self.x = x
self.update()
def set_y(self, y):
self.y = y
self.update()
def set_length(self, length):
self.length = length
self.update()
class VBarWidget(object):
def __init__(self, screen, ref, x, y, length):
self.screen = screen
self.ref = ref
self.x = x
self.y = y
self.length = length
self.screen.server.request("widget_add %s %s %s" % (self.screen.ref, self.ref, "vbar"))
self.update()
def update(self):
self.screen.server.request("widget_set %s %s %s %s %s" % (self.screen.ref, self.ref, self.x, self.y, self.length))
def set_x(self, x):
self.x = x
self.update()
def set_y(self, y):
self.y = y
self.update()
def set_length(self, length):
self.length = length
self.update()
class IconWidget(object):
def __init__(self, screen, ref, x, y, name):
self.screen = screen
self.ref = ref
self.x = x
self.y = y
self.name = name
self.screen.server.request("widget_add %s %s %s" % (self.screen.ref, self.ref, "icon"))
self.update()
def update(self):
self.screen.server.request("widget_set %s %s %s %s %s" % (self.screen.ref, self.ref, self.x, self.y, self.name))
def set_x(self, x):
self.x = x
self.update()
def set_y(self, y):
self.y = y
self.update()
def set_name(self, name):
self.name = name
self.update()
class ScrollerWidget(object):
def __init__(self, screen, ref, left, top, right, bottom, direction, speed, text):
self.screen = screen
self.ref = ref
self.left = left
self.top = top
self.right = right
self.bottom = bottom
self.direction = direction
self.speed = speed
self.text = text
self.screen.server.request("widget_add %s %s %s" % (self.screen.ref,
self.ref,
"scroller"))
self.update()
def update(self):
self.screen.server.request('widget_set %s %s %s %s %s %s %s %s "%s"' % (self.screen.ref,
self.ref,
self.left,
self.top,
self.right,
self.bottom,
self.direction,
self.speed,
self.text.replace('"', '\\"')))
def set_left(self, left):
self.left = left
self.update()
def set_top(self, top):
self.top = top
self.update()
def set_right(self, right):
self.right = right
self.update()
def set_bottom(self, bottom):
self.bottom = bottom
self.update()
def set_direction(self, direction):
self.direction = direction
self.update()
def set_speed(self, speed):
self.speed = speed
self.update()
def set_text(self, text):
self.text = text
self.update()
class FrameWidget(object):
def __init__(self, screen, ref, left, top, right, bottom, width, height, direction, speed):
self.screen = screen
self.ref = ref
self.left = left
self.top = top
self.right = right
self.bottom = bottom
self.width = width
self.height = height
self.direction = direction
self.speed = speed
self.screen.server.request("widget_add %s %s %s" % (self.screen.ref,
self.ref,
"frame"))
self.update()
def update(self):
self.screen.server.request('widget_set %s %s %s %s %s %s %s %s %s %s' % (self.screen.ref,
self.ref,
self.left,
self.top,
self.right,
self.bottom,
self.width,
self.height,
self.direction,
self.speed))
def set_left(self, left):
self.left = left
self.update()
def set_top(self, top):
self.top = top
self.update()
def set_right(self, right):
self.right = right
self.update()
def set_bottom(self, bottom):
self.bottom = bottom
self.update()
def set_width(self, width):
self.width = width
self.update()
def set_height(self, height):
self.height = height
self.update()
def set_direction(self, direction):
self.direction = direction
self.update()
def set_speed(self, speed):
self.speed = speed
self.update()
class NumberWidget(object):
def __init__(self, screen, ref, x, value):
self.screen = screen
self.ref = ref
self.x = x
self.value = value
self.screen.server.request("widget_add %s %s %s" % (self.screen.ref,
self.ref,
"num"))
self.update()
def update(self):
self.screen.server.request('widget_set %s %s %s %s' % (self.screen.ref,
self.ref,
self.x,
self.value))
def set_x(self, x):
self.x = x
self.update()
def set_value(self, value):
self.value = value
self.update()
+9 -9
View File
@@ -2,7 +2,7 @@
#
# Raspberry Pi Internet Radio
# using an HD44780 LCD display
# $Id: radio4.py,v 1.111 2016/08/07 13:33:49 bob Exp $
# $Id: radio4.py,v 1.108 2016/01/31 13:34:22 bob Exp $
#
# Author : Bob Rathbone
# Site : http://www.bobrathbone.com
@@ -35,7 +35,7 @@ import traceback
# Class imports
from radio_daemon import Daemon
from radio_class import Radio
from lcd_class import Lcd
from lcd_lcdproc_class import Lcd_lcdproc
from log_class import Log
from rss_class import Rss
from config_class import Configuration # for configuration read (Pecus)
@@ -54,7 +54,7 @@ PlaylistsDirectory = "/var/lib/mpd/playlists/"
log = Log()
radio = Radio()
lcd = Lcd()
lcd = Lcd_lcdproc()
rss = Rss()
config = Configuration() # for configuration read (Pecus)
@@ -414,7 +414,7 @@ def get_switch_states(lcd,radio,rss):
unmuteRadio(lcd,radio)
if display_mode == radio.MODE_SOURCE:
radio.toggleSource(UP)
radio.toggleSource()
#radio.setReload(True)
elif display_mode == radio.MODE_SEARCH:
@@ -443,7 +443,7 @@ def get_switch_states(lcd,radio,rss):
unmuteRadio(lcd,radio)
if display_mode == radio.MODE_SOURCE:
radio.toggleSource(DOWN)
radio.toggleSource()
#radio.setReload(True)
elif display_mode == radio.MODE_SEARCH:
@@ -880,12 +880,12 @@ def display_search(lcd,radio):
index = radio.getSearchIndex()
source = radio.getSource()
current_id = radio.getCurrentID()
#lcd.line1("Search:" + str(index + 1))
if source == radio.PLAYER:
lcd.line1("Search:" + str(index + 1))
current_artist = radio.getArtistName(index)
lcd.scroll2(current_artist[0:160],interrupt)
lcd.scroll3(radio.getTrackNameByIndex(index),interrupt)
lcd.line2(current_artist[0:19])
lcd.line3(radio.getTrackNameByIndex(index))
lcd.line4(radio.getProgress())
elif source == radio.PANDORA:
lcd.line1("Search:" + str(radio.pandora_search_index + 1))
@@ -1049,7 +1049,7 @@ def displayInfo(lcd,ipaddr,mpd_version):
lcd.line3(mpd_version)
lcd.line4("GPIO version " + GPIO.VERSION)
if ipaddr is "":
lcd.line3("No IP network")
lcd.line1("No IP network")
else:
lcd.scroll1("IP "+ ipaddr,interrupt)
return