📄 radio.java
字号:
}
return defaultValue;
}
protected static final String parseStringArg(Vector args, String parameter, String defaultValue)
{
for (int i = 0; i < args.size(); i++)
{
String arg = ((String)args.get(i)).toLowerCase();
if (arg.equals("-" + parameter.toLowerCase()) || arg.equals("--" + parameter.toLowerCase()) || arg.equals("/" + parameter.toLowerCase())) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
{
String result = (String)args.get(i+1);
args.remove(i+1);
args.remove(i);
return result;
}
}
return defaultValue;
}
public boolean isLoggable(LogRecord record)
{
if (record.getLevel().intValue() < Level.INFO.intValue())
{
return displayDebugMessages;
}
else
{
return true;
}
}
public static String removePrefix(String url)
{
// Remove the "p2p-radio://" or "s2s://" prefix
if (url.toLowerCase().startsWith("p2p-radio:")) //$NON-NLS-1$
{
url = url.substring(10, url.length());
}
if (url.toLowerCase().startsWith("s2s:"))
url = url.substring(4, url.length());
if (url.startsWith("//")) //$NON-NLS-1$
{
url = url.substring(2, url.length());
}
else if (url.startsWith("/")) //$NON-NLS-1$
{
url = url.substring(1, url.length());
}
if (url.endsWith("/")) //$NON-NLS-1$
{
url = url.substring(0, url.length() - 1);
}
return url;
}
private void exit(String message, boolean noGUI)
{
if (message != null)
{
System.out.println(message);
if (!noGUI)
{
RadioGUI.setLookAndFeel();
javax.swing.JOptionPane.showMessageDialog(null, message, Messages.getString("GENERAL_ERROR"), javax.swing.JOptionPane.ERROR_MESSAGE, null); //$NON-NLS-1$
}
}
System.exit(1);
}
private void exitWithLogger(String message, boolean noGUI)
{
if (message != null)
{
if (!noGUI)
{
RadioGUI.setLookAndFeel();
javax.swing.JOptionPane.showMessageDialog(null, message, Messages.getString("GENERAL_ERROR"), javax.swing.JOptionPane.ERROR_MESSAGE, null); //$NON-NLS-1$
}
}
System.exit(1);
}
public void readXML()
{
//
Object[] selections = null;
//Get the settings we just read from the xml file
//If the xml file cannot be found or is invalid, defaults will be read
//LAN
/*if (isServer)
{
serverUsesVerifiedBandwidth = xml.This_Server_Uses_Verified_Bandwidth();
MinimumChildrenClientsMustServe = xml.getMinimumChildrenClientsMustServe();
}*/
LANUpload = xml.getLANUpload();
LANDownload = xml.getLANDownload();
if (LANUpload != -2)
{
String[] logInputs = {"" + LANUpload, "" + LANDownload};
Logger.info("MainFrame","MainFrame.BANDWIDTH_LIMIT_SET_TO", logInputs);
}
//INTERNET
IP = xml.getIP();
if (IP == null)
{
boolean test = xml.testBandwidth();
if (test == true)
{
doBandwidthTest();
Logger.info("Radio", "Radio.VERIFIED_BANDWIDTH_LIMIT_NOT_SET_FIRST");
}
else
{
Logger.info("Radio", "Radio.VERIFIED_BANDWIDTH_LIMIT_NOT_SET");
}
}
else
{
internetMaxUpload = xml.Get_Internet_Upload_Max();
internetMaxDownload = xml.Get_Internet_Download_Max();
internetUpload = xml.Get_Internet_Upload_Limit();
internetDownload = xml.Get_Internet_Download_Limit();
String[] logInputs = {IP, "" + internetUpload, "" + internetDownload};
Logger.info("MainFrame", "MainFrame.VERIFIED_BANDWIDTH_LIMIT_SET_TO", logInputs);
}
//HISTORY
urlToStationname = xml.getLinks();
log = xml.getLogByDate();
if (log)
{
logByDate(this);
}
Radio.startMediaPlayer = xml.startMediaPlayerAtStartup();
Radio.displayDebugMessages = xml.getDisplayDebug();
logFilename = xml.getLogAs();
if (logFilename != null && !logFilename.equals(""))
{
logAs(logFilename, this);
}
Radio.enableMonitor = xml.getEnableMonitor();
Radio.signOrVerify = xml.getSignOrVerify();
//End of getting settings
negativeLag = xml.getNegativeLagEnabled();
playerGain = xml.getPlayerGain();
}
public static void logByDate(Filter filter){
// Get A Date
GregorianCalendar calendar = new GregorianCalendar();
long year = calendar.get(Calendar.YEAR);
long month = calendar.get(Calendar.MONTH) + 1;
long day = calendar.get(Calendar.DAY_OF_MONTH);
long hour = calendar.get(Calendar.HOUR);
long min = calendar.get(Calendar.MINUTE);
long sec = calendar.get(Calendar.SECOND);
int AM_PM = calendar.get(Calendar.AM_PM);
String halfDay;
if (AM_PM == Calendar.PM)
halfDay = "PM";
else
halfDay = "AM";
String logName = month + "-" + day + "-" + year + " " + hour + ";" + min + ";" + sec + halfDay;
logAs(logName, filter);
}
public static void logAs(String logName, Filter filter)
{
try
{
Handler logfileHandler = new FileLogHandler(logName);
logfileHandler.setFilter(filter);
logfileHandler.setFormatter(new LogFormatter());
Logger.getLogger().addHandler(logfileHandler);
}
catch (IOException error)
{
//exit(Messages.getString("Radio.INVALID_LOGFILE_NAME"), noGUI); //$NON-NLS-1$
}
Logger.info("MainFrame","MainFrame.OUTPUTTING_LOG", logName);
}
public void setBandwidth(double maxUpload, double maxDownload, String IP)
{
if (isServer && (xml.getMonitorAddress() == null || xml.getMonitorAddress().equals("")))
xml.setMonitorAddress(IP);
DecimalFormat sf3 = new DecimalFormat("0.000");
String upload = new String();
String download = new String();
if (maxUpload != -1)
{
double maxUploadBandwidth = maxUpload - 1.0; //Designate 1KB/s for data messages
upload = sf3.format(maxUploadBandwidth);
}
if (maxDownload != -1)
{
double maxDownloadBandwidth = maxDownload - 1.0; //Designate 1KB/s for data messages
download = sf3.format(maxDownloadBandwidth);
}
xml.setInternetMax(upload, download, IP);
xml.Set_Internet_Download_Limit(download);
xml.Set_Internet_Upload_Limit(upload);
xml.flush();
readXML();
}
public void doBandwidthTest()
{
Tcpbw100 bTest = new Tcpbw100(this);
bTest.start();
}
private String input()
{
String temp = "";
try {
temp = commandLine.readLine().toLowerCase().trim();
} catch (Exception e) {
Logger.severe("Radio", "INTERNAL_ERROR", e); //$NON-NLS-1$ //$NON-NLS-2$
}
return temp;
}
public String getUrl()
{
return url;
}
public void setPeer(Peer peer) {
System.out.println("here");
if (isServer)
{
if (addYP)
peer.getBroadcastBuffer().addToYP(this);
metadata = peer.getBroadcastBuffer().getMetadata();
addYP = !addYP;
}
if (peer == null || peer.isDisconnected())
return;
isConnected = true;
this.peer = peer;
int port = peer.getPort();
System.out.println(Messages.getString("Radio.PORT_NUMBER", new Integer(port))); //$NON-NLS-1$
System.out.println(Messages.getString("Radio.MP3_STREAM_PORT_NUMBER", new Integer(port + Peer.PLAYER_PORT_OFFSET))); //$NON-NLS-1$
System.out.println(Messages.getString("Radio.WEB_SERVER_PORT_NUMBER", new Integer(port + Peer.WEBINTERFACE_PORT_OFFSET))); //$NON-NLS-1$
System.out.println();
uiPlayer = new UIPlayer(peer.getListenBuffer(), this);
uiPlayer.start();
}
public SettingsXML getSettingsXML() {
return xml;
}
public boolean getIsServer() {
return isServer;
}
public boolean getAddYP() {
return addYP;
}
public Metadata getMetadata() {
return metadata;
}
public void updateTime(long timestamp) {
// TODO Auto-generated method stub
}
public void setIntegratedPlaying(boolean playing)
{
}
public void updateMetadata(Metadata metadata) {
this.metadata = metadata;
if (xml.startMediaPlayerAtStartup() && xml.getUseIntegratedPlayer() && networkComponents.getIntegratedPlayer() == null)
{
setIntegratedPlaying(true);
networkComponents.launchIntegratedPlayer();
}
String newStationName = metadata.getStationName();
if (!newStationName.equals(stationName))
{
stationName = newStationName;
String[] info = {stationName, url};
Logger.info("Radio", "Radio.CONNECTED_TO", info);
}
if (urlToStationname != null && !(stationName.equals(urlToStationname.get(url)))) //If we have never connected to this station
{
xml.writeLink(stationName, url);
xml.flush();
urlToStationname.put(url, stationName);
}
}
//TODO - a console playpause command, "p"
public static void playpause(NetworkComponentsContainer networkComponents, UI ui)
{
BasicPlayer player = null;
if (networkComponents == null)
return;
player = networkComponents.getIntegratedPlayer();
if (player != null && player.getStatus() == player.PLAYING)
{
try {
ui.setIntegratedPlaying(false);
player.stop();
Logger.info("Radio", "Radio.INTEGRATED_STOPPED");
} catch (BasicPlayerException e) {
}
}
else if (player == null || player.getStatus() == player.STOPPED)
{
networkComponents.launchIntegratedPlayer();
ui.setIntegratedPlaying(true);
}
}
public double getGain()
{
return playerGain;
}
public static String getContentTransport(Metadata metadata, Peer peer)
{
String streamType;
String contentType = metadata.getContentType().toLowerCase();
if (contentType.equals("audio/mpeg")) //$NON-NLS-1$
{
streamType = Messages.getString("MainFrame.STREAM_MP3"); //$NON-NLS-1$
}
else if (contentType.equals("video/nsv")) //$NON-NLS-1$
{
streamType = Messages.getString("MainFrame.STREAM_NSV"); //$NON-NLS-1$
}
else if (contentType.equals("application/ogg")) //$NON-NLS-1$
{
streamType = Messages.getString("MainFrame.STREAM_OGG_VORBIS"); //$NON-NLS-1$
}
else if (contentType.equals("audio/aacp"))
{
streamType = Messages.getString("MainFrame.STREAM_AAC+");
}
else if (contentType.equals("audio/aac"))
{
streamType = Messages.getString("MainFrame.STREAM_AAC");
}
else
{
streamType = contentType;
}
int mode = peer.getStreamMode();
String transport = null;
if (mode == SettingsXML.TCP)
transport = Messages.getString("MainFrame.TCP_P2P");
if (mode == SettingsXML.UDP)
transport = Messages.getString("MainFrame.UDP_P2P");
if (mode == SettingsXML.MULTICAST_PLUS)
{
if (peer.isServer())
transport = Messages.getString("MainFrame.M+_SERVER");
else if (peer.getSupplier().isMulticastAddress())
transport = Messages.getString("MainFrame.M+_MCAST");
else
transport = Messages.getString("MainFrame.M+_P2P");
}
String contentTransport = streamType + " (" + transport + ")";
return contentTransport;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -