Please find attached unified DIFF for ivtv_xine_tv.py to fix channel change 
regression from 1.7.3.  This DIFF also handles disabling the ivtv_xine_tv.py's 
internal MixerControl for use with sixmixer.py and adding a "mixer.reset()" 
call to over ride xine's default audio settings on start up.


TV Tuning Regression:

TV tuning behaviour in 1.7.3: Entering numbers into the remote while watching 
TV selects the chosen channel number.

TV tuning behaviour in 1.7.4: Entering numbers into the remote while watching 
TV  selects channel by index from the TV_CHANNELS list.

Expected TV tuning behaviour: Entering numbers into the remote should give the 
chosen channel by number.

Cause of unexpected behaviour:  Some users may remove channels from their 
TV_CHANNELS list in local_conf.py, throwing the indexes out of sync with the 
actual channel numbers.  In my case, selecting "48" gives channel "53."




      
____________________________________________________________________________________
Never miss a thing.  Make Yahoo your home page. 
http://www.yahoo.com/r/hs
--- /san/freevo-1.7.4/src/tv/plugins/ivtv_xine_tv.py	2007-11-11 00:07:45.000000000 -0500
+++ /san/freevo-1.7.4_MODIFIED/src/tv/plugins/ivtv_xine_tv.py	2007-12-07 14:16:42.000000000 -0500
@@ -298,7 +298,7 @@
 
         self.tuner = TunerControl()
         self.tuner.setParent(self)
-        self.mixer = MixerControl()
+        #self.mixer = MixerControl()
 
         self.app_mode = "tv"
         self.app = None
@@ -330,13 +330,18 @@
         self.prev_app = rc.app()
         rc.app(self)
 
-        self.mixer.prepare()
+        #self.mixer.prepare()
         self.tuner.SetChannel(channel, True)
         self.xine.play()
 
         # Suppress annoying audio clicks
         time.sleep(0.6)
-        self.mixer.start()
+        #self.mixer.start()
+
+	# Added the lines below to over ride XINE's annoying habit of
+	# using it's default or remembering it's last set volume
+	if plugin.getbyname('MIXER'):
+            plugin.getbyname('MIXER').reset()
 
         _debug_("IVTV_XINE_TV: Started '%s' app" % self.mode, DDEBUG)
 
@@ -354,7 +359,7 @@
             self.ShowMessage("Please repeat to stop\n")
             self.confirmstop_time = confirmstop_time
         else:
-            self.mixer.stop()
+            #self.mixer.stop()
             self.xine.stop()
             rc.app(self.prev_app)
             rc.post_event(PLAY_END)
@@ -457,7 +462,7 @@
 
                     self.lastinput_value = newinput_value
                     self.lastinput_time = newinput_time
-                    self.tuner.TuneChannelByIndex(newinput_value)
+                    self.tuner.TuneChannelByNumber(newinput_value)
 
                     if newinput_value > 9:
                         # cancel intermediate channels
@@ -719,6 +724,19 @@
 
 
     #========================================================================
+    # TuneChannelByNumber
+    # tune to a channel by explicit number from the TV_CHANNELS list
+    #========================================================================
+
+    def TuneChannelByNumber(self, channel):
+
+        # tune channel by number
+
+        self.PushChannel()
+        self.SetVideoGroup(str(channel))
+
+
+    #========================================================================
     # NextChannel
     # jump to the next channel in the TV_CHANNELS list
     #========================================================================
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Freevo-devel mailing list
Freevo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to