Changeset 914

Show
Ignore:
Timestamp:
10/19/06 23:56:17 (2 years ago)
Author:
alban
Message:

[Bug 145] fix VolumePanel? listeners

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/source/org/kolaka/freecast/node/swing/VolumePane.java

    r693 r914  
    3636import javax.swing.event.ChangeListener; 
    3737 
     38import org.apache.commons.logging.LogFactory; 
    3839import org.kolaka.freecast.player.Player; 
    3940import org.kolaka.freecast.player.PlayerSource; 
     
    4243import org.kolaka.freecast.player.PlayerSource.Listener; 
    4344import org.kolaka.freecast.service.Service; 
     45import org.kolaka.freecast.service.Startable; 
    4446import org.kolaka.freecast.swing.Resources; 
    4547import org.kolaka.freecast.swing.ResourcesException; 
     
    4850 
    4951  private static final long serialVersionUID = -6343034639160378478L; 
     52 
    5053  private VolumeControl volumeControl; 
    5154 
     
    8386     
    8487    final Player.Listener playerListener = new Player.Adapter() { 
     88      public void serviceStarted(Service service) { 
     89        VolumeControlable player = (VolumeControlable) service; 
     90         
     91        VolumeControl control = player.getVolumeControl(); 
     92        LogFactory.getLog(getClass()).debug("try to use volume control : " + control); 
     93        if (control != null && control.isEnabled()) { 
     94          volumeControl = control; 
     95           
     96          sliderModel.setValue(volumeControl.getVolume()); 
     97          volumeSlider.setEnabled(true); 
     98        } 
     99      } 
     100       
    85101      public void serviceStopped(Service service) { 
    86102        volumeControl = null; 
     
    93109      public void playerCreated(Player player) { 
    94110        if (player instanceof VolumeControlable) { 
    95           VolumeControl control = ((VolumeControlable) player).getVolumeControl(); 
    96           if (control != null && control.isEnabled()) { 
    97             volumeControl = control; 
    98              
    99             sliderModel.setValue(volumeControl.getVolume()); 
    100             volumeSlider.setEnabled(true); 
    101              
    102             player.add(playerListener); 
     111          player.add(playerListener); 
     112          if (player.getStatus().equals(Startable.Status.STARTED)) { 
     113            playerListener.serviceStarted(player); 
    103114          } 
    104115        } 
     
    116127    }); 
    117128  } 
    118    
    119129}