Hello,
ask requested, i attach a patch against lcd.py version 1.12 which change
the left-right bouncing scroller to an marquee like scroller.
All screen definitions are changed and tested with lcdproc curses. All
working.
Please verify: in the 2 line displays i found to references to
"tv.display_name)", which i do not understand. 1. i only get a empty
line 2. what is the bracket good for?
These both references i changed to tv.channel_id
new variable:
sep_str_mscroll = " "
* added, if data to show is wider than lcd
new function:
get_sepstrmscroll( self, mscrolldata )
* returns value of sep_str_mscroll if data is wider than lcd
changes to screen definitions like this:
"title_v" : ( "scroller",
- "7 1 %d 1 h 2 \"%s\"",
- "( self.width, menu.heading )" ),
+ "7 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, menu.heading, self.get_sepstrm
* h 2 changed to m 3, which is marquee scroller and a little slower than
before
* added a new string parameter and value
Immo
--- lcd.py_1.12 Mon Sep 29 23:19:15 2003
+++ lcd.py_1.12_m Mon Oct 6 16:19:23 2003
@@ -91,6 +91,7 @@
# Configuration: (Should move to freevo_conf.py?)
sep_str = " | " # use as separator between two strings. Like: "Length:
123<sep_str>Plot: ..."
+sep_str_mscroll = " " # if string > width of lcd add this
# Animaton-Sequence used in audio playback
# Some displays (like the CrytstalFontz) do display the \ as a /
@@ -179,8 +180,8 @@
"Freevo",
None ),
"calendar" : ( "scroller",
- "1 2 %d 2 h 2 \"Today is %s.\"",
- "( self.width, time.strftime('%A, %d-%B') )" ),
+ "1 2 %d 2 m 3 \"Today is %s.%s\"",
+ "( self.width, time.strftime('%A, %d-%B'),
self.get_sepstrmscroll(time.strftime('%A, %d-%B')) )" ),
"clock" : ( "string",
"%d 3 \"%s\"",
"( ( self.width - len( time.strftime('%T') ) ) / 2 +
1 ," + \
@@ -201,17 +202,17 @@
"1 4 'INFO: '",
None ),
"title_v" : ( "scroller",
- "7 1 %d 1 h 2 \"%s\"",
- "( self.width, menu.heading )" ),
+ "7 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, menu.heading,
self.get_sepstrmscroll(menu.heading) )" ),
"item_v" : ( "scroller",
- "7 2 %d 2 h 2 \"%s\"",
- "( self.width, title )" ),
+ "7 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, title, self.get_sepstrmscroll(title)
)" ),
"type_v" : ( "scroller",
- "7 3 %d 3 h 2 \"%s\"",
- "( self.width, typeinfo )" ),
+ "7 3 %d 3 m 3 \"%s%s\"",
+ "( self.width, typeinfo,
self.get_sepstrmscroll(typeinfo) )" ),
"info_v" : ( "scroller",
- "7 4 %d 1 h 2 \"%s\"",
- "( self.width, info )" )
+ "7 4 %d 1 m 3 \"%s%s\"",
+ "( self.width, info, self.get_sepstrmscroll(info) )"
)
},
"audio_player" :
@@ -225,14 +226,14 @@
"1 3 'ARTIST: '",
None ),
"music_v" : ( "scroller",
- "9 1 %d 1 h 2 \"%s\"",
- "( self.width, title )" ),
+ "9 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, title, self.get_sepstrmscroll(title)
)" ),
"album_v" : ( "scroller",
- "9 2 %d 2 h 2 \"%s\"",
- "( self.width, player.getattr('album') )" ),
+ "9 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, player.getattr('album'),
self.get_sepstrmscroll(player.getattr('album')) )" ),
"artist_v" : ( "scroller",
- "9 3 %d 3 h 2 \"%s\"",
- "( self.width, player.getattr('artist') )" ),
+ "9 3 %d 3 m 3 \"%s%s\"",
+ "( self.width, player.getattr('artist'),
self.get_sepstrmscroll(player.getattr('artist')) )" ),
"time_v1" : ( "string",
"2 4 '% 2d:%02d/'",
"( int(player.length / 60), int(player.length % 60)
)" ),
@@ -263,14 +264,14 @@
"1 3 'GENRE: '",
None ),
"video_v" : ( "scroller",
- "9 1 %d 1 h 2 \"%s\"",
- "( self.width, title )" ),
+ "9 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, title, self.get_sepstrmscroll(title)
)" ),
"tag_v" : ( "scroller",
- "9 2 %d 2 h 2 \"%s\"",
- "( self.width, player.getattr('tagline') )" ),
+ "9 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, player.getattr('tagline'),
self.get_sepstrmscroll(player.getattr('tagline')) )" ),
"genre_v" : ( "scroller",
- "9 3 %d 3 h 2 \"%s\"",
- "( self.width, player.getattr('genre') )" ),
+ "9 3 %d 3 m 3 \"%s%s\"",
+ "( self.width, player.getattr('genre'),
self.get_sepstrmscroll(player.getattr('genre')) )" ),
"time_v1" : ( "string",
"2 4 '%s/'",
"( length )" ),
@@ -305,17 +306,17 @@
"1 4 'DESC: '",
None ),
"chan_v" : ( "scroller",
- "7 1 %d 1 h 2 \"%s\"",
- "( self.width, tv.channel_id )" ),
+ "7 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, tv.channel_id,
self.get_sepstrmscroll(tv.channel_id) )" ),
"prog_v" : ( "scroller",
- "7 2 %d 2 h 2 \"%s\"",
- "( self.width, tv.title )" ),
+ "7 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, tv.title,
self.get_sepstrmscroll(tv.title) )" ),
"time_v" : ( "scroller",
- "7 3 %d 3 h 2 \"%s-%s\"",
- "( self.width, tv.start, tv.stop )" ),
+ "7 3 %d 3 m 3 \"%s-%s%s\"",
+ "( self.width, tv.start, tv.stop,
self.get_sepstrmscroll(tv.start+'-'+tv.stop) )" ),
"desc_v" : ( "scroller",
- "7 4 %d 4 h 2 \"%s\"",
- "( self.width, tv.desc )" )
+ "7 4 %d 4 m 3 \"%s%s\"",
+ "( self.width, tv.desc,
self.get_sepstrmscroll(tv.desc) )" )
}
},
@@ -327,8 +328,8 @@
"Freevo",
None ),
"calendar" : ( "scroller",
- "1 2 %d 2 h 2 \"Today is %s.\"",
- "( self.width, time.strftime('%A, %d-%B') )" ),
+ "1 2 %d 2 m 3 \"Today is %s.%s\"",
+ "( self.width, time.strftime('%A, %d-%B'),
self.get_sepstrmscroll(time.strftime('%A, %d-%B')) )" ),
"clock" : ( "string",
"%d 3 \"%s\"",
"( ( self.width - len( time.strftime('%T') ) ) / 2 +
1 ," + \
@@ -337,29 +338,29 @@
"menu" :
{ "title_v" : ( "scroller",
- "1 1 %d 1 h 2 \"%s\"",
- "( self.width, menu.heading )" ),
+ "1 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, menu.heading,
self.get_sepstrmscroll(menu.heading) )" ),
"item_v" : ( "scroller",
- "1 2 %d 2 h 2 \"%s\"",
- "( self.width, title )" ),
+ "1 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, title, self.get_sepstrmscroll(title)
)" ),
"type_v" : ( "scroller",
- "1 3 %d 3 h 2 \"%s\"",
- "( self.width, typeinfo )" ),
+ "1 3 %d 3 m 3 \"%s%s\"",
+ "( self.width, typeinfo,
self.get_sepstrmscroll(typeinfo) )" ),
"info_v" : ( "scroller",
- "1 4 %d 1 h 2 \"%s\"",
- "( self.width, info )" )
+ "1 4 %d 1 m 3 \"%s%s\"",
+ "( self.width, info, self.get_sepstrmscroll(info) )"
)
},
"audio_player" :
{ "music_v" : ( "scroller",
- "1 1 %d 1 h 2 \"%s\"",
- "( self.width, title )" ),
+ "1 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, title, self.get_sepstrmscroll(title)
)" ),
"album_v" : ( "scroller",
- "1 2 %d 2 h 2 \"%s\"",
- "( self.width, player.getattr('album') )" ),
+ "1 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, player.getattr('album'),
self.get_sepstrmscroll(player.getattr('album')) )" ),
"artist_v" : ( "scroller",
- "1 3 %d 3 h 2 \"%s\"",
- "( self.width, player.getattr('artist') )" ),
+ "1 3 %d 3 m 3 \"%s%s\"",
+ "( self.width, player.getattr('artist'),
self.get_sepstrmscroll(player.getattr('artist')) )" ),
"time_v1" : ( "string",
"2 4 '% 2d:%02d/'",
"( int(player.length / 60), int(player.length % 60)
)" ),
@@ -376,14 +377,14 @@
"video_player" :
{ "video_v" : ( "scroller",
- "1 1 %d 1 h 2 \"%s\"",
- "( self.width, title )" ),
+ "1 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, title, self.get_sepstrmscroll(title)
)" ),
"tag_v" : ( "scroller",
- "1 2 %d 2 h 2 \"%s\"",
- "( self.width, player.getattr('tagline') )" ),
+ "1 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, player.getattr('tagline'),
self.get_sepstrmscroll(player.getattr('tagline')) )" ),
"genre_v" : ( "scroller",
- "1 3 %d 3 h 2 \"%s\"",
- "( self.width, player.getattr('genre') )" ),
+ "1 3 %d 3 m 3 \"%s%s\"",
+ "( self.width, player.getattr('genre'),
self.get_sepstrmscroll(player.getattr('genre')) )" ),
"time_v1" : ( "string",
"3 4 '%s /'",
"( length )" ),
@@ -398,17 +399,17 @@
"tv" :
{ "chan_v" : ( "scroller",
- "1 1 %d 1 h 2 \"%s\"",
- "( self.width, tv.channel_id )" ),
+ "1 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, tv.channel_id,
self.get_sepstrmscroll(tv.channel_id) )" ),
"prog_v" : ( "scroller",
- "1 2 %d 2 h 2 \"%s\"",
- "( self.width, tv.title )" ),
+ "1 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, tv.title,
self.get_sepstrmscroll(tv.title) )" ),
"time_v" : ( "scroller",
- "1 3 %d 3 h 2 \"%s-%s\"",
- "( self.width, tv.start, tv.stop )" ),
+ "1 3 %d 3 m 3 \"%s-%s%s\"",
+ "( self.width, tv.start, tv.stop,
self.get_sepstrmscroll(tv.start+'-'+tv.stop) )" ),
"desc_v" : ( "scroller",
- "1 4 %d 4 h 2 \"%s\"",
- "( self.width, tv.desc )" )
+ "1 4 %d 4 m 3 \"%s%s\"",
+ "( self.width, tv.desc,
self.get_sepstrmscroll(tv.desc) )" )
}
} # screens
}, # chars per line
@@ -425,17 +426,17 @@
"menu" :
{ "title_v" : ( "scroller",
- "1 1 %d 1 h 2 \"%s\"",
- "( self.width, menu.heading )" ),
+ "1 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, menu.heading,
self.get_sepstrmscroll(menu.heading) )" ),
"item_v" : ( "scroller",
- "1 2 %d 2 h 2 \"%s\"",
- "( self.width, title )" )
+ "1 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, title, self.get_sepstrmscroll(title)
)" )
},
"audio_player" :
{ "music_v" : ( "scroller",
- "1 1 %d 1 h 2 \"%s\"",
- "( self.width, title )" ),
+ "1 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, title,
self.get_sepstrmscroll(title) )" ),
"time_v1" : ( "string",
"2 2 '% 2d:%02d/'",
"( int(player.length / 60), int(player.length % 60)
)" ),
@@ -450,8 +451,8 @@
"video_player" :
{ "video_v" : ( "scroller",
- "1 1 %d 1 h 2 \"%s\"" ,
- "( self.width, title )" ),
+ "1 1 %d 1 m 3 \"%s%s\"" ,
+ "( self.width, title, self.get_sepstrmscroll(title)
)" ),
"time_v2" : ( "string",
"2 2 '%s'",
"( elapsed )" ),
@@ -467,11 +468,11 @@
"tv" :
{ "chan_v" : ( "scroller",
- "1 1 %d 1 h 2 \"%s\"",
- "( self.width, tv.display_name) )" ),
+ "1 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, tv.channel_id,
self.get_sepstrmscroll(tv.channel_id) )" ),
"prog_v" : ( "scroller",
- "1 2 %d 2 h 2 \"%s\"",
- "( self.width, tv.title )" )
+ "1 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, tv.title,
self.get_sepstrmscroll(tv.title) )" )
}
},
@@ -485,17 +486,17 @@
"menu" :
{ "title_v" : ( "scroller",
- "1 1 %d 1 h 2 \"%s\"",
- "( self.width, menu.heading )" ),
+ "1 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, menu.heading,
self.get_sepstrmscroll(menu.heading) )" ),
"item_v" : ( "scroller",
- "1 2 %d 2 h 2 \"%s\"",
- "( self.width, title )" )
+ "1 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, title, self.get_sepstrmscroll(title)
)" )
},
"audio_player":
{ "music_v" : ( "scroller",
- "1 1 %d 1 h 2 \"%s\"",
- "( self.width, title )" ),
+ "1 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, title,
self.get_sepstrmscroll(title) )" ),
"time_v1" : ( "string",
"2 2 '% 2d:%02d/'",
"( int(player.length / 60), int(player.length % 60)
)" ),
@@ -513,8 +514,8 @@
"video_player" :
{ "video_v" : ( "scroller",
- "1 1 %d 1 h 2 \"%s\"",
- "( self.width, title )" ),
+ "1 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, title, self.get_sepstrmscroll(title)
)" ),
"time_v1" : ( "string",
"3 2 '%s /'",
"( length )" ),
@@ -530,11 +531,11 @@
"tv":
{ "chan_v" : ( "scroller",
- "1 1 %d 1 h 2 \"%s\"",
- "( self.width, tv.display_name) )" ),
+ "1 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, tv.channel_id,
self.get_sepstrmscroll(tv.channel_id) )" ),
"prog_v" : ( "scroller",
- "1 2 %d 2 h 2 \"%s\"",
- "( self.width, tv.title )" )
+ "1 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, tv.title,
self.get_sepstrmscroll(tv.title) )" )
}
},
@@ -554,11 +555,11 @@
"1 2 'ITEM: '",
None ),
"title_v" : ( "scroller",
- "7 1 %d 1 h 2 \"%s\"",
- "( self.width, menu.heading )" ),
+ "7 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, menu.heading,
self.get_sepstrmscroll(menu.heading) )" ),
"item_v" : ( "scroller",
- "7 2 %d 2 h 2 \"%s\"",
- "( self.width, title )" )
+ "7 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, title, self.get_sepstrmscroll(title)
)" )
},
"audio_player":
@@ -566,8 +567,8 @@
"1 1 'MUSIC: '",
None ),
"music_v" : ( "scroller",
- "8 1 %d 1 h 2 \"%s\"",
- "( self.width, title )" ),
+ "8 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, title, self.get_sepstrmscroll(title)
)" ),
"time_v1" : ( "string",
"2 2 '% 2d:%02d/'",
"( int(player.length / 60), int(player.length % 60)
)" ),
@@ -593,8 +594,8 @@
"2 1 'VIDEO: '",
None ),
"video_v" : ( "scroller",
- "9 1 %d 1 h 2 \"%s\"",
- "( self.width, title )" ),
+ "9 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, title, self.get_sepstrmscroll(title)
)" ),
"time_v1" : ( "string",
"2 2 '%s/'",
"( length )" ),
@@ -624,14 +625,14 @@
"1 2 'PROG: '",
None ),
"chan_v" : ( "scroller",
- "7 1 %d 1 h 2 \"%s\"",
- "( self.width, tv.channel_id )" ),
+ "7 1 %d 1 m 3 \"%s%s\"",
+ "( self.width, tv.channel_id,
self.get_sepstrmscroll(tv.channel_id) )" ),
"prog_v" : ( "scroller",
- "7 2 %d 2 h 2 \"%s\"",
- "( self.width, tv.title )" ),
+ "7 2 %d 2 m 3 \"%s%s\"",
+ "( self.width, tv.title,
self.get_sepstrmscroll(tv.title) )" ),
"time_v" : ( "scroller",
- "%d 1 %d 3 h 2 \"[%s-%s]\"",
- "( self.width - 13, 13, tv.start, tv.stop )" ),
+ "%d 1 %d 3 m 3 \"[%s-%s%s]\"",
+ "( self.width - 13, 13, tv.start, tv.stop,
self.get_sepstrmscroll(tv.start+'-'+tv.stop) )" ),
}
} # screens
} # chars per line
@@ -664,7 +665,6 @@
return info
-
class PluginInterface( plugin.DaemonPlugin ):
"""
Display context info in LCD using lcdproc daemon.
@@ -882,7 +882,7 @@
for w in widgets:
type, param, val = self.screens[ s ][ w ]
-
+
if val: param = param % eval( val )
try:
self.lcd.widget_set( s, w, param.encode( 'latin1' ) )
@@ -953,3 +953,13 @@
self.playitem = None
return 0
+
+ def get_sepstrmscroll( self, mscrolldata ):
+ """
+ used for marquee scroller; returns seperator if info is wider then lcd
+ """
+ if len(mscrolldata) > self.width:
+ return sep_str_mscroll
+ else:
+ return ''
+