mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-13 09:07:27 -05:00
Compare commits
3 Commits
v0.3.2-bet
...
v0.3.2-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cebd2da89f | ||
|
|
73b6ef164f | ||
|
|
b2c7ac8c66 |
10
CHANGELOG
10
CHANGELOG
@@ -1,13 +1,5 @@
|
|||||||
0.3.2 20171105
|
|
||||||
- Resolves issue with tuner frequency adjustments that was causing channel processing
|
|
||||||
to lockup and show persistent 'overflow' state in each channel status
|
|
||||||
- Resolves issue with broadcastify 'mountpoint-in-use' error handling and updates
|
|
||||||
memory usage logging
|
|
||||||
|
|
||||||
0.3.1 20171009
|
0.3.0-beta1 20170129
|
||||||
- Resolves Java 9 incompatibility issues
|
|
||||||
|
|
||||||
0.3.0 20170922
|
|
||||||
- REQUIRES: Java 8 (or newer) for compatibility and eventual changeover to JavaFX
|
- REQUIRES: Java 8 (or newer) for compatibility and eventual changeover to JavaFX
|
||||||
- FEATURE: audio streaming - adds capability to stream to multiple remote broadcast
|
- FEATURE: audio streaming - adds capability to stream to multiple remote broadcast
|
||||||
servers (Broadcastify, Icecast v2.3 and v2.4+, and Shoutcast V1 and V2). Each
|
servers (Broadcastify, Icecast v2.3 and v2.4+, and Shoutcast V1 and V2). Each
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
<!-- version properties -->
|
<!-- version properties -->
|
||||||
<property name="major" value="0"/>
|
<property name="major" value="0"/>
|
||||||
<property name="minor" value="3"/>
|
<property name="minor" value="3"/>
|
||||||
<property name="patch" value="1"/>
|
<property name="patch" value="2"/>
|
||||||
<property name="release" value=""/> <!-- Use dash (-) prefix (e.g. -beta1) -->
|
<property name="release" value="-beta1"/>
|
||||||
<property name="filename" value="sdrtrunk_${major}.${minor}.${patch}${release}"/>
|
<property name="filename" value="sdrtrunk_${major}.${minor}.${patch}${release}"/>
|
||||||
|
|
||||||
<!-- Build properties -->
|
<!-- Build properties -->
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
<mkdir dir="${output.classes}"/>
|
<mkdir dir="${output.classes}"/>
|
||||||
|
|
||||||
<!-- Create version file -->
|
<!-- Create version file -->
|
||||||
<echo message="${major}.${minor}.${patch}${release}" file="${output.classes}/sdrtrunk-version"/>
|
<echo message="${major}.${minor}.${patch}-${release}" file="${output.classes}/sdrtrunk-version"/>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="compile" depends="clean,init,compile-java-8,compile-java-9"
|
<target name="compile" depends="clean,init,compile-java-8,compile-java-9"
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
<configuration>
|
<configuration>
|
||||||
<conversionRule conversionWord="memory_usage" converterClass="util.MemoryUsageLogger" />
|
|
||||||
|
|
||||||
<timestamp key="appstart" datePattern="HHmmss"/>
|
<timestamp key="appstart" datePattern="HHmmss"/>
|
||||||
|
|
||||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
@@ -11,7 +9,7 @@
|
|||||||
<maxHistory>10</maxHistory>
|
<maxHistory>10</maxHistory>
|
||||||
</rollingPolicy>
|
</rollingPolicy>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%-25(%d{yyyyMMdd HHmmss.SSS} [%thread]) %-5level %logger{30} - %msg %memory_usage%n</pattern>
|
<pattern>%-25(%d{yyyyMMdd HHmmss.SSS} [%thread]) %-5level %logger{30} - %msg%n</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
@@ -21,7 +19,7 @@
|
|||||||
|
|
||||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%-12(%d{HH:mm:ss.SSS}) %-5level %logger{25} - %msg %memory_usage%n</pattern>
|
<pattern>%-12(%d{HH:mm:ss.SSS}) %-5level %logger{25} - %msg%n</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ public enum BroadcastState
|
|||||||
/**
|
/**
|
||||||
* Specified mount point is already in use
|
* Specified mount point is already in use
|
||||||
*/
|
*/
|
||||||
MOUNT_POINT_IN_USE("Mount Point In Use", false),
|
MOUNT_POINT_IN_USE("Mount Point In Use", true),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Server is not known or reachable
|
* Server is not known or reachable
|
||||||
|
|||||||
@@ -325,10 +325,6 @@ public class IcecastTCPAudioBroadcaster extends IcecastAudioBroadcaster
|
|||||||
{
|
{
|
||||||
setBroadcastState(BroadcastState.MOUNT_POINT_IN_USE);
|
setBroadcastState(BroadcastState.MOUNT_POINT_IN_USE);
|
||||||
}
|
}
|
||||||
else if(message.contains("Content-Type: text/html"))
|
|
||||||
{
|
|
||||||
//Disregard ... this normally follows the mount point in use error
|
|
||||||
}
|
|
||||||
else if(message.contains("Invalid Password") ||
|
else if(message.contains("Invalid Password") ||
|
||||||
message.contains("Authentication Required"))
|
message.contains("Authentication Required"))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ import icon.IconManager;
|
|||||||
import map.MapService;
|
import map.MapService;
|
||||||
import module.log.EventLogManager;
|
import module.log.EventLogManager;
|
||||||
import net.miginfocom.swing.MigLayout;
|
import net.miginfocom.swing.MigLayout;
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import playlist.PlaylistManager;
|
import playlist.PlaylistManager;
|
||||||
@@ -81,16 +80,16 @@ public class SDRTrunk implements Listener<TunerEvent>
|
|||||||
|
|
||||||
public SDRTrunk()
|
public SDRTrunk()
|
||||||
{
|
{
|
||||||
|
mLog.info("");
|
||||||
mLog.info("*******************************************************************");
|
mLog.info("*******************************************************************");
|
||||||
mLog.info("**** sdrtrunk: a trunked radio and digital decoding application ***");
|
mLog.info("**** sdrtrunk: a trunked radio and digital decoding application ***");
|
||||||
mLog.info("**** website: https://github.com/dsheirer/sdrtrunk ***");
|
mLog.info("**** website: https://github.com/dsheirer/sdrtrunk ***");
|
||||||
mLog.info("*******************************************************************");
|
mLog.info("*******************************************************************");
|
||||||
mLog.info("Memory Logging Format: [Used/Allocated PercentUsed%]");
|
mLog.info("");
|
||||||
mLog.info("Host CPU Cores: " + Runtime.getRuntime().availableProcessors());
|
mLog.info("Host CPU Cores: " + Runtime.getRuntime().availableProcessors());
|
||||||
mLog.info("Host OS Name: " + System.getProperty("os.name"));
|
mLog.info("Host Memory Total: " + Runtime.getRuntime().totalMemory());
|
||||||
mLog.info("Host OS Arch: " + System.getProperty("os.arch"));
|
mLog.info("Host Memory Max: " + Runtime.getRuntime().maxMemory());
|
||||||
mLog.info("Host OS Version: " + System.getProperty("os.version"));
|
mLog.info("Host Memory Free: " + Runtime.getRuntime().freeMemory());
|
||||||
mLog.info("Host Max Java Memory: " + FileUtils.byteCountToDisplaySize(Runtime.getRuntime().maxMemory()));
|
|
||||||
|
|
||||||
//Setup the application home directory
|
//Setup the application home directory
|
||||||
Path home = getHomePath();
|
Path home = getHomePath();
|
||||||
|
|||||||
@@ -1,54 +0,0 @@
|
|||||||
/*******************************************************************************
|
|
||||||
* sdrtrunk
|
|
||||||
* Copyright (C) 2014-2017 Dennis Sheirer
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
|
||||||
*
|
|
||||||
******************************************************************************/
|
|
||||||
package util;
|
|
||||||
|
|
||||||
import ch.qos.logback.classic.pattern.ClassicConverter;
|
|
||||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Custom logging plugin for logging memory usage with logback
|
|
||||||
*
|
|
||||||
* Add the following to the logback.xml configuration file to use this custom converter:
|
|
||||||
*
|
|
||||||
* <conversionRule conversionWord="memory_usage" converterClass="util.MemoryUsageLogger" />
|
|
||||||
*
|
|
||||||
* Update the encoder pattern to include %memory_usage within the pattern
|
|
||||||
*/
|
|
||||||
public class MemoryUsageLogger extends ClassicConverter
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public String convert(ILoggingEvent iLoggingEvent)
|
|
||||||
{
|
|
||||||
//Method argument is ignored - we simply return memory usage statistics
|
|
||||||
long allocated = Runtime.getRuntime().totalMemory();
|
|
||||||
long free = Runtime.getRuntime().freeMemory();
|
|
||||||
long used = allocated - free;
|
|
||||||
|
|
||||||
int usedPercentage = (int)((double)(used) / (double)allocated * 100.0);
|
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
|
|
||||||
sb.append("[").append(FileUtils.byteCountToDisplaySize(used).replace(" ", ""));
|
|
||||||
sb.append("/").append(FileUtils.byteCountToDisplaySize(allocated).replace(" ", ""));
|
|
||||||
sb.append(" ").append(usedPercentage).append("%]");
|
|
||||||
|
|
||||||
return sb.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user