Changeset 883
- Timestamp:
- 10/02/06 22:21:13 (2 years ago)
- Files:
-
- trunk/.classpath (modified) (2 diffs)
- trunk/ivy.xml (modified) (1 diff)
- trunk/source/org/kolaka/freecast/Application.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/NodeConfigurator.java (modified) (6 diffs)
- trunk/source/org/kolaka/freecast/Version.java (modified) (3 diffs)
- trunk/source/org/kolaka/freecast/config/InetSocketAddressConfigurator.java (added)
- trunk/source/org/kolaka/freecast/manager/http/DescriptorServlet.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/setup/DocumentValidator.java (added)
- trunk/source/org/kolaka/freecast/setup/FileExtensionFilter.java (added)
- trunk/source/org/kolaka/freecast/setup/Main.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/setup/ReceiverPlaylistStep.java (added)
- trunk/source/org/kolaka/freecast/setup/ReceiverShoutClientStep.java (added)
- trunk/source/org/kolaka/freecast/setup/ReceiverShoutServerStep.java (added)
- trunk/source/org/kolaka/freecast/setup/ReceiverShowPanel.java (added)
- trunk/source/org/kolaka/freecast/setup/ReceiverShowStep.java (added)
- trunk/source/org/kolaka/freecast/setup/ReceiverTypeStep.java (added)
- trunk/source/org/kolaka/freecast/setup/ReceiverWizardModel.java (added)
- trunk/source/org/kolaka/freecast/setup/ReceiverWizardStep.java (added)
- trunk/source/org/kolaka/freecast/setup/SetupAction.java (modified) (3 diffs)
- trunk/source/org/kolaka/freecast/setup/SetupDialog.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/setup/URIFormatter.java (added)
- trunk/source/org/kolaka/freecast/setup/URLFormatter.java (added)
- trunk/source/org/kolaka/freecast/setup/resources/ReceiverPlaylistStep.properties (added)
- trunk/source/org/kolaka/freecast/setup/resources/ReceiverShoutClientStep.properties (added)
- trunk/source/org/kolaka/freecast/setup/resources/ReceiverShoutServerStep.properties (added)
- trunk/source/org/kolaka/freecast/setup/resources/ReceiverTypeStep.properties (added)
- trunk/source/org/kolaka/freecast/swing/AboutDialog.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/swing/ResourceBundles.java (added)
- trunk/source/org/kolaka/freecast/transport/receiver/EncoderFormat.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/OggSourceFactoryReceiver.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/OggSourceReceiver.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/PlaylistEncoderOggSourceFactory.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/transport/receiver/PlaylistEncoderReceiver.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/PlaylistEncoderReceiverConfiguration.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/transport/receiver/PlaylistEncoderReceiverConfigurator.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/PlaylistOggSourceFactory.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/transport/receiver/PlaylistReceiver.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/transport/receiver/PlaylistReceiverConfiguration.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/PlaylistReceiverConfigurator.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/ReceiverConfigurationLoader.java (added)
- trunk/source/org/kolaka/freecast/transport/receiver/ReceiverConfigurations.java (added)
- trunk/source/org/kolaka/freecast/transport/receiver/ReceiverConfigurator.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/transport/receiver/ShoutClientOggSourceFactory.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/ShoutClientReceiver.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/ShoutClientReceiverConfiguration.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/ShoutClientReceiverConfigurator.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/ShoutServerOggSourceFactory.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/ShoutServerReceiver.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/transport/receiver/ShoutServerReceiverConfiguration.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/ShoutServerReceiverConfigurator.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/SourceReceiverConfiguration.java (added)
- trunk/source/org/kolaka/freecast/transport/receiver/SourceReceiverControler.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/StaticBandwidthControler.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/transport/receiver/StaticReceiverControler.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/transport/receiver/TestReceiverConfiguration.java (added)
- trunk/source/org/kolaka/freecast/transport/receiver/test/TestReceiverConfigurationTest.java (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/.classpath
r831 r883 2 2 <classpath> 3 3 <classpathentry kind="src" path="source"/> 4 <classpathentry kind="lib" path="track/tritonus/patches/0.3.6/tritonus-vorbis.jar"/>5 4 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 6 5 <classpathentry kind="lib" path="lib/core/commons-cli.jar"/> … … 31 30 <classpathentry kind="lib" path="lib/test/mockobjects-core.jar"/> 32 31 <classpathentry kind="lib" path="lib/test/junit.jar"/> 32 <classpathentry kind="lib" path="lib/core/wizard.jar"/> 33 <classpathentry kind="lib" path="lib/core/commons-digester.jar"/> 34 <classpathentry kind="lib" path="lib/core/commons-beanutils.jar"/> 33 35 <classpathentry kind="output" path=".eclipse"/> 34 36 </classpath> trunk/ivy.xml
r829 r883 41 41 </dependency> 42 42 <dependency org="javazoom" name="vorbisspi" rev="1.0.2" conf="core->*"/> 43 <dependency org="pietschy" name="wizard-framework" rev="0.1.12" conf="core->*"/> 43 44 44 45 <dependency org="docbook" name="docbook-xsl" rev="1.69.1" conf="build-docbook->*"/> trunk/source/org/kolaka/freecast/Application.java
r865 r883 182 182 try { 183 183 LogFactory.getLog(getClass()).info( 184 "version " + Version.getI nstance().getName());184 "version " + Version.getINSTANCE().getName()); 185 185 LogFactory.getLog(getClass()).debug("runtime version " + SystemUtils.JAVA_RUNTIME_VERSION); 186 186 LogFactory.getLog(getClass()).debug("init"); trunk/source/org/kolaka/freecast/NodeConfigurator.java
r830 r883 27 27 import java.net.InetAddress; 28 28 import java.net.InetSocketAddress; 29 import java.net.URI;30 import java.net.URISyntaxException;31 29 import java.text.ParseException; 32 30 import java.util.Iterator; … … 38 36 import org.apache.commons.configuration.ConfigurationException; 39 37 import org.apache.commons.configuration.DataConfiguration; 40 import org.apache.commons.io.FileUtils;41 38 import org.apache.commons.lang.Validate; 42 39 import org.apache.commons.logging.LogFactory; 40 import org.kolaka.freecast.config.InetSocketAddressConfigurator; 43 41 import org.kolaka.freecast.net.InetSocketAddressSpecification; 44 42 import org.kolaka.freecast.net.InetSocketAddressSpecificationParser; … … 70 68 import org.kolaka.freecast.transport.MinaPeerSendingConnectionFactory; 71 69 import org.kolaka.freecast.transport.cas.ConnectionAssistantClient; 72 import org.kolaka.freecast.transport.receiver.BandwidthControler; 73 import org.kolaka.freecast.transport.receiver.EncoderFormat; 70 import org.kolaka.freecast.transport.receiver.PeerReceiverConfiguration; 74 71 import org.kolaka.freecast.transport.receiver.PeerReceiverControler; 75 import org.kolaka.freecast.transport.receiver.Playlist;76 import org.kolaka.freecast.transport.receiver.PlaylistEncoderReceiver;77 import org.kolaka.freecast.transport.receiver.PlaylistReceiver;78 72 import org.kolaka.freecast.transport.receiver.Receiver; 73 import org.kolaka.freecast.transport.receiver.ReceiverConfiguration; 74 import org.kolaka.freecast.transport.receiver.ReceiverConfigurationLoader; 75 import org.kolaka.freecast.transport.receiver.ReceiverConfigurator; 79 76 import org.kolaka.freecast.transport.receiver.ReceiverControler; 80 import org.kolaka.freecast.transport.receiver.ResourcePlaylist;81 import org.kolaka.freecast.transport.receiver.ShoutClientReceiver;82 import org.kolaka.freecast.transport.receiver.ShoutServerReceiver;83 77 import org.kolaka.freecast.transport.receiver.SourceReceiver; 78 import org.kolaka.freecast.transport.receiver.SourceReceiverConfiguration; 84 79 import org.kolaka.freecast.transport.receiver.SourceReceiverControler; 85 import org.kolaka.freecast.transport.receiver.StaticBandwidthControler;86 80 import org.kolaka.freecast.transport.sender.PeerSenderControler; 87 81 … … 200 194 } 201 195 202 DataConfiguration receiverConfiguration = new DataConfiguration( 203 configuration.subset("receiver")); 196 DataConfiguration receiverConfiguration = new DataConfiguration( 197 configuration.subset("receiver")); 198 199 ReceiverConfiguration receiverBeanConfiguration = new ReceiverConfigurationLoader().load(receiverConfiguration); 204 200 205 201 ReceiverControler receiverControler = null; 206 202 Receiver receiver = null; 207 203 208 String receiverClass = receiverConfiguration.getString("class"); 209 if (receiverClass.equals("shoutclient")) { 210 receiver = new ShoutClientReceiver(receiverConfiguration 211 .getURL("url")); 212 } else if (receiverClass.equals("playlist") 213 || receiverClass.equals("encoder-playlist")) { 214 String playlistURIString = receiverConfiguration.getString("url"); 215 URI playlistURI = null; 216 try { 217 playlistURI = new URI(playlistURIString); 218 } catch (URISyntaxException e) { 219 throw new ConfigurationException("invalid playlist url: '" 220 + playlistURIString, e); 221 } 222 223 Playlist playlist = ResourcePlaylist.getInstance(resourceLocator, 224 playlistURI); 225 226 if (receiverClass.equals("playlist")) { 227 receiver = new PlaylistReceiver(playlist); 228 int bandwidth = receiverConfiguration.getInt("bandwidth", 35); 229 LogFactory.getLog(getClass()).warn( 230 "the playlist receiver uses a static bandwidth controler at " 231 + bandwidth); 232 BandwidthControler bandwidthControler = new StaticBandwidthControler( 233 (int) (bandwidth * FileUtils.ONE_KB)); 234 ((PlaylistReceiver) receiver) 235 .setBandwidthControler(bandwidthControler); 236 } else { 237 int channels = receiverConfiguration.getInt("channels", 2); 238 int sampleRate = receiverConfiguration.getInt("sampleRate", 239 44100); 240 float quality = receiverConfiguration.getFloat("quality", 0); 241 EncoderFormat format = new EncoderFormat(channels, sampleRate, 242 quality); 243 receiver = new PlaylistEncoderReceiver(playlist, format); 244 } 245 } else if (receiverClass.equals("shoutserver")) { 246 InetSocketAddress listenAddress = loadInetSocketAddress(receiverConfiguration 247 .subset("listenaddress")); 248 receiver = new ShoutServerReceiver(listenAddress); 249 } else if (receiverClass.equals("peer")) { 204 if (receiverBeanConfiguration instanceof SourceReceiverConfiguration) { 205 ReceiverConfigurator configurator = ReceiverConfigurator.getInstance((SourceReceiverConfiguration) receiverBeanConfiguration); 206 receiver = configurator.configure(receiverBeanConfiguration); 207 } else if (receiverBeanConfiguration instanceof PeerReceiverConfiguration) { 250 208 MinaPeerReceivingConnectionFactory connectionFactory = new MinaPeerReceivingConnectionFactory(); 251 209 peerControler.register(connectionFactory); … … 256 214 receiverControler = new PeerReceiverControler(peerControler, connectionFactory); 257 215 } else { 258 throw new ConfigurationException("Unknown receiver c lass: '"259 + receiver Class+ "'");216 throw new ConfigurationException("Unknown receiver configuration: '" 217 + receiverBeanConfiguration + "'"); 260 218 } 261 219 … … 377 335 378 336 private InetSocketAddress loadInetSocketAddress(Configuration configuration) { 379 return new InetSocketAddress( 380 configuration.getString("host", "0.0.0.0"), configuration 381 .getInt("port")); 337 return new InetSocketAddressConfigurator().load(configuration); 382 338 } 383 339 trunk/source/org/kolaka/freecast/Version.java
r405 r883 28 28 import java.util.Properties; 29 29 30 import org.apache.commons.logging.LogFactory; 31 30 32 /** 31 33 * @author <a href="mailto:alban.peignier@free.fr">Alban Peignier </a> … … 33 35 public class Version { 34 36 37 private static final Version UNDEFINED = new Version("undefined"); 38 35 39 private final String name; 36 40 37 private Version() { 38 Properties properties = new Properties(); 39 InputStream resource = getClass().getResourceAsStream( 40 "resources/version.properties"); 41 try { 42 if (resource == null) { 43 throw new IOException("can't find the version resources"); 44 } 45 properties.load(resource); 46 } catch (IOException e) { 47 IllegalStateException exception = new IllegalStateException( 48 "can't load version information"); 49 exception.initCause(e); 50 throw exception; 51 } 41 private Version(String name) { 42 this.name = name; 43 } 52 44 53 name = properties.getProperty("name"); 54 if (name == null) { 55 throw new IllegalStateException("no version name found"); 56 } 57 } 45 private static Version load() { 46 Properties properties = new Properties(); 47 InputStream resource = Version.class.getResourceAsStream( 48 "resources/version.properties"); 49 try { 50 if (resource == null) { 51 throw new IOException("can't find the version resources"); 52 } 53 properties.load(resource); 54 } catch (IOException e) { 55 LogFactory.getLog(Version.class).warn("can't load version information", e); 56 return UNDEFINED; 57 } 58 59 String name = properties.getProperty("name"); 60 if (name == null) { 61 LogFactory.getLog(Version.class).warn("no version name found"); 62 return UNDEFINED; 63 } 64 return new Version(name); 65 } 66 58 67 59 68 public String getName() { … … 61 70 } 62 71 63 private static final Version instance = new Version();72 private static final Version INSTANCE = load(); 64 73 65 public static Version getI nstance() {66 return instance;74 public static Version getINSTANCE() { 75 return INSTANCE; 67 76 } 68 77 trunk/source/org/kolaka/freecast/manager/http/DescriptorServlet.java
r405 r883 73 73 transformer.setParameter("homepage", "http://" + host + ":" 74 74 + httpServletRequest.getServerPort()); 75 transformer.setParameter("version", Version.getI nstance().getName());75 transformer.setParameter("version", Version.getINSTANCE().getName()); 76 76 77 77 try { trunk/source/org/kolaka/freecast/setup/Main.java
r405 r883 24 24 package org.kolaka.freecast.setup; 25 25 26 import java.util.Observable;27 import java.util.Observer;28 29 26 import org.apache.commons.configuration.Configuration; 30 import org.kolaka.freecast.lang.mutable.ObservableValue;31 27 import org.kolaka.freecast.swing.ConfigurableResources; 32 28 import org.kolaka.freecast.swing.Resources; 33 29 import org.kolaka.freecast.swing.SwingApplication; 30 import org.kolaka.freecast.transport.receiver.TestReceiverConfiguration; 31 import org.pietschy.wizard.Wizard; 32 import org.pietschy.wizard.WizardEvent; 33 import org.pietschy.wizard.WizardListener; 34 34 35 35 public class Main extends SwingApplication { 36 37 private SetupDialog dialog;38 36 39 public Main() { 40 super("setup"); 41 } 42 43 protected void postInit(Configuration configuration) throws Exception { 44 super.postInit(configuration); 45 Resources resources = new ConfigurableResources(configuration.subset("gui.setup")); 46 dialog = new SetupDialog(resources, null); 47 } 48 49 protected void run() throws Exception { 50 dialog.setVisible(true); 51 52 ObservableValue configuration = dialog.getReceiverConfiguration(); 53 54 configuration.addObserver(new Observer() { 55 public void update(Observable o, Object arg) { 56 System.out.println(arg); 57 exit(); 58 } 59 }); 60 61 Object lock = new Object(); 37 public Main() { 38 super("setup"); 39 } 62 40 63 synchronized (lock) { 64 lock.wait(); 65 } 66 } 67 68 protected void exitImpl() throws Exception { 69 70 } 71 72 public static void main(String[] args) throws Exception { 73 new Main().run(args); 74 } 41 protected void postInit(Configuration configuration) throws Exception { 42 super.postInit(configuration); 43 Resources resources = new ConfigurableResources(configuration 44 .subset("gui.setup")); 45 } 46 47 protected void run() throws Exception { 48 final ReceiverWizardModel model = new ReceiverWizardModel(); 49 model.setReceiverConfiguration(new TestReceiverConfiguration()); 50 51 Wizard wizard = new Wizard(model); 52 wizard.setDefaultExitMode(Wizard.EXIT_ON_FINISH); 53 54 wizard.addWizardListener(new WizardListener() { 55 public void wizardCancelled(WizardEvent event) { 56 exit(); 57 } 58 public void wizardClosed(WizardEvent event) { 59 System.out.println(model.getConfiguration()); 60 exit(); 61 } 62 }); 63 64 wizard.showInDialog("FreeCast Setup", null, false); 65 66 Object lock = new Object(); 67 68 synchronized (lock) { 69 lock.wait(); 70 } 71 } 72 73 protected void exitImpl() throws Exception { 74 75 } 76 77 public static void main(String[] args) throws Exception { 78 new Main().run(args); 79 } 75 80 76 81 } trunk/source/org/kolaka/freecast/setup/SetupAction.java
r405 r883 25 25 26 26 import java.awt.event.ActionEvent; 27 import java.util.Observable;28 import java.util.Observer;29 27 30 28 import javax.swing.JFrame; … … 36 34 import org.kolaka.freecast.swing.Resources; 37 35 import org.kolaka.freecast.swing.ResourcesException; 38 import org.kolaka.freecast.transport.receiver.Receiver ;39 import org.kolaka.freecast.transport.receiver. ReceiverConfiguration;40 import org. kolaka.freecast.transport.receiver.ReceiverConfigurator;41 import org. kolaka.freecast.transport.receiver.ReceiverControler;42 import org. kolaka.freecast.transport.receiver.StaticReceiverControler;36 import org.kolaka.freecast.transport.receiver.ReceiverConfigurations; 37 import org.kolaka.freecast.transport.receiver.SourceReceiverConfiguration; 38 import org.pietschy.wizard.Wizard; 39 import org.pietschy.wizard.WizardEvent; 40 import org.pietschy.wizard.WizardListener; 43 41 44 42 public class SetupAction extends BaseAction { … … 60 58 } 61 59 62 private SetupDialog dialog; 60 public void actionPerformed(ActionEvent event) { 61 final ReceiverWizardModel model = new ReceiverWizardModel(); 62 63 SourceReceiverConfiguration configuration = (SourceReceiverConfiguration) node.getReceiverControler().getReceiverConfiguration(); 64 model.setReceiverConfiguration(configuration); 63 65 64 public void actionPerformed(ActionEvent event) { 65 if (dialog != null && dialog.isVisible()) { 66 dialog.toFront(); 67 return; 68 } 69 70 try { 71 dialog = new SetupDialog(resources, parent); 72 } catch (ResourcesException exception) { 73 LogFactory.getLog(getClass()).error("Can't create setup dialog",exception); 74 return; 75 } 76 77 dialog.setReceiverConfiguration(node.getReceiverControler().getReceiverConfiguration()); 78 79 dialog.getReceiverConfiguration().addObserver(new Observer() { 80 public void update(Observable o, Object arg) { 81 ReceiverConfiguration configuration = (ReceiverConfiguration) arg; 82 LogFactory.getLog(getClass()).debug("configuration returns by setup dialog: " + configuration); 83 84 if (configuration == null) { 85 return; 86 } 87 88 if (configuration.equals(node.getReceiverControler().getReceiverConfiguration())) { 89 LogFactory.getLog(getClass()).debug("configuration not changed"); 90 return; 91 } 92 93 try { 94 ReceiverControler receiverControler = node.getReceiverControler(); 95 receiverControler.stop(); 66 Wizard wizard = new Wizard(model); 67 wizard.setDefaultExitMode(Wizard.EXIT_ON_FINISH); 68 69 wizard.addWizardListener(new WizardListener() { 70 public void wizardCancelled(WizardEvent event) { 71 } 72 73 public void wizardClosed(WizardEvent event) { 74 SourceReceiverConfiguration configuration = model.getConfiguration(); 75 LogFactory.getLog(getClass()).debug("configuration returns by setup dialog: " + configuration); 96 76 97 ReceiverConfigurator configurator = ReceiverConfigurator.getInstance(configuration); 98 Receiver receiver = configurator.configure(configuration); 99 100 LogFactory.getLog(getClass()).debug("new receiver: " + receiver); 101 102 receiverControler = new StaticReceiverControler(receiver); 103 104 node.setReceiverControler(receiverControler); 105 106 receiverControler.start(); 107 } catch (Throwable cause) { 108 new ErrorPane(parent).show("Can't change FreeCast setup", cause); 109 } 110 } 111 }); 112 113 dialog.setVisible(true); 77 if (configuration.equals(node.getReceiverControler().getReceiverConfiguration())) { 78 LogFactory.getLog(getClass()).debug("configuration not changed"); 79 return; 80 } 81 82 try { 83 ReceiverConfigurations.changeReceiver(node, configuration); 84 } catch (Throwable cause) { 85 new ErrorPane(parent).show("Can't change FreeCast setup", cause); 86 } 87 } 88 }); 89 90 wizard.showInDialog("FreeCast Setup", null, false); 114 91 } 115 92 trunk/source/org/kolaka/freecast/setup/SetupDialog.java
r865 r883 63 63 64 64 import org.apache.commons.lang.ObjectUtils; 65 import org.apache.commons.lang.StringUtils;66 65 import org.apache.commons.lang.UnhandledException; 67 66 import org.apache.commons.logging.LogFactory; … … 452 451 } 453 452 454 JFormattedTextField.AbstractFormatter urlFormatter = new JFormattedTextField.AbstractFormatter() { 455 456 /** 457 * 458 */ 459 private static final long serialVersionUID = 470473741669841009L; 460 461 public Object stringToValue(String text) throws ParseException { 462 if (StringUtils.isEmpty(text)) { 463 return null; 464 } 465 466 try { 467 return new URL(text); 468 } catch (MalformedURLException e) { 469 throw new ParseException("Can't parse the specified URL '" + text + "'", 0); 470 } 471 } 472 473 public String valueToString(Object value) throws ParseException { 474 if (value == null) { 475 return ""; 476 } 477 478 return value.toString(); 479 } 480 }; 453 JFormattedTextField.AbstractFormatter urlFormatter = new URLFormatter(); 481 454 final JFormattedTextField shoutClientURLField = new JFormattedTextField( 482 455 urlFormatter); trunk/source/org/kolaka/freecast/swing/AboutDialog.java
r405 r883 65 65 String urlText = "<html><center><p>Visit the website<br><b>http://www.freecast.org</b></p> " 66 66 + "<p>Free software under the GNU GPL<br>version " 67 + Version.getI nstance().getName()67 + Version.getINSTANCE().getName() 68 68 + "<br>Copyright 2004 - Alban Peignier</p></center>"; 69 69 JLabel urlLabel = new JLabel(urlText); trunk/source/org/kolaka/freecast/transport/receiver/EncoderFormat.java
r405 r883 31 31 32 32 private final float quality; 33 34 public static final EncoderFormat DEFAULT = new EncoderFormat(2, 44100, 0); 33 35 34 36 /** trunk/source/org/kolaka/freecast/transport/receiver/OggSourceFactoryReceiver.java
r405 r883 42 42 * @author <a href="mailto:alban.peignier@free.fr">Alban Peignier</a> 43 43 */ 44 public class OggSourceFactoryReceiver extends OggSourceReceiver {44 public abstract class OggSourceFactoryReceiver extends OggSourceReceiver { 45 45 46 46 private final OggSourceFactory factory; 47 48 protected OggSourceFactory getFactory() { 49 return factory; 50 } 47 51 48 private final ReceiverConfiguration configuration; 49 50 public ReceiverConfiguration getReceiverConfiguration() { 51 return configuration; 52 } 53 54 public OggSourceFactoryReceiver(OggSourceFactory factory, ReceiverConfiguration configuration) { 52 public OggSourceFactoryReceiver(OggSourceFactory factory) { 55 53 Validate.notNull(factory, "No specified OggSourceFactory"); 56 54 this.factory = factory; 57 Validate.notNull(configuration, "No specified ReceiverConfiguration");58 this.configuration = configuration;59 55 } 60 56 trunk/source/org/kolaka/freecast/transport/receiver/OggSourceReceiver.java
r405 r883 61 61 62 62 private BandwidthControler bandwidthControler = new TimestampBandwidthControler(); 63 64 protected BandwidthControler getBandwidthControler() { 65 return bandwidthControler; 66 } 63 67 64 68 public void setPacketChecksummer(PacketChecksummer checksummer) { trunk/source/org/kolaka/freecast/transport/receiver/PlaylistEncoderOggSourceFactory.java
r405 r883 25 25 26 26 import java.io.IOException; 27 import java.net.URI; 27 28 import java.net.URL; 28 29 … … 94 95 .getQuality()), format.getSampleRate()); 95 96 } 97 98 public EncoderFormat getFormat() { 99 return format; 100 } 101 102 public URI getPlaylistURI() { 103 return playlist.getDefinitionURI(); 104 } 96 105 97 106 } trunk/source/org/kolaka/freecast/transport/receiver/PlaylistEncoderReceiver.java
r405 r883 31 31 public PlaylistEncoderReceiver(URL playlist, EncoderFormat format) 32 32 throws IOException { 33 super(new PlaylistEncoderOggSourceFactory(playlist, format) , PlaylistEncoderReceiverConfiguration.getInstance(playlist));33 super(new PlaylistEncoderOggSourceFactory(playlist, format)); 34 34 } 35 35 36 36 public PlaylistEncoderReceiver(Playlist playlist, EncoderFormat format) 37 37 throws IOException { 38 super(new PlaylistEncoderOggSourceFactory(playlist, format) , PlaylistEncoderReceiverConfiguration.getInstance(playlist));38 super(new PlaylistEncoderOggSourceFactory(playlist, format)); 39 39 } 40 41 public ReceiverConfiguration getReceiverConfiguration() { 42 PlaylistEncoderReceiverConfiguration configuration = new PlaylistEncoderReceiverConfiguration(); 43 44 PlaylistEncoderOggSourceFactory factory = (PlaylistEncoderOggSourceFactory) getFactory(); 45 configuration.setEncoderFormat(factory.getFormat()); 46 configuration.setUri(factory.getPlaylistURI()); 47 48 return configuration; 49 } 40 50 41 51 } trunk/source/org/kolaka/freecast/transport/receiver/PlaylistEncoderReceiverConfiguration.java
r405 r883 30 30 import org.kolaka.freecast.resource.URIs; 31 31 32 public class PlaylistEncoderReceiverConfiguration extends ReceiverConfiguration {32 public class PlaylistEncoderReceiverConfiguration extends SourceReceiverConfiguration { 33 33 34 34 private URI uri; … … 41 41 this.uri = uri; 42 42 } 43 44 private EncoderFormat encoderFormat = EncoderFormat.DEFAULT; 43 45 46 public EncoderFormat getEncoderFormat() { 47 return encoderFormat; 48 } 49 50 public void setEncoderFormat(EncoderFormat encoderFormat) { 51 this.encoderFormat = encoderFormat; 52 } 53 44 54 public PlaylistEncoderReceiverConfiguration(URI uri) { 45 55 Validate.notNull(uri, "No specified URI"); trunk/source/org/kolaka/freecast/transport/receiver/PlaylistEncoderReceiverConfigurator.java
r405 r883 28 28 public class PlaylistEncoderReceiverConfigurator extends ReceiverConfigurator { 29 29 30 public Receiver configure(ReceiverConfiguration configuration) throws IOException {30 public SourceReceiver configure(ReceiverConfiguration configuration) throws IOException { 31 31 return configure((PlaylistEncoderReceiverConfiguration) configuration); 32 32 } 33 33 34 public Receiver configure(PlaylistEncoderReceiverConfiguration configuration)34 public SourceReceiver configure(PlaylistEncoderReceiverConfiguration configuration) 35 35 throws IOException 36 36 { trunk/source/org/kolaka/freecast/transport/receiver/PlaylistOggSourceFactory.java
r405 r883 27 27 import java.io.IOException; 28 28 import java.io.InputStream; 29 import java.net.URI; 29 30 import java.net.URL; 30 31 … … 59 60 .getDescription()); 60 61 } 62 63 public URI getPlaylistURI() { 64 return playlist.getDefinitionURI(); 65 } 61 66 62 67 } trunk/source/org/kolaka/freecast/transport/receiver/PlaylistReceiver.java
r405 r883 27 27 import java.net.URL; 28 28 29 import org.apache.commons.io.FileUtils; 30 29 31 /** 30 32 * … … 35 37 36 38 public PlaylistReceiver(URL playlist) throws IOException { 37 super(new PlaylistOggSourceFactory(playlist) , PlaylistReceiverConfiguration.getInstance(playlist));39 super(new PlaylistOggSourceFactory(playlist)); 38 40 } 39 41 40 42 public PlaylistReceiver(Playlist playlist) { 41 super(new PlaylistOggSourceFactory(playlist) , PlaylistReceiverConfiguration.getInstance(playlist));43 super(new PlaylistOggSourceFactory(playlist)); 42 44 } 45 46 public ReceiverConfiguration getReceiverConfiguration() { 47 PlaylistReceiverConfiguration configuration = new PlaylistReceiverConfiguration(); 48 49 PlaylistOggSourceFactory factory = (PlaylistOggSourceFactory) getFactory(); 50 configuration.setUri(factory.getPlaylistURI()); 51 52<
