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 ''
+

Reply via email to