diff options
Diffstat (limited to 'micropeak')
| -rw-r--r-- | micropeak/.gitignore | 2 | ||||
| -rw-r--r-- | micropeak/Info.plist.in | 17 | ||||
| -rw-r--r-- | micropeak/Makefile.am | 61 | ||||
| -rw-r--r-- | micropeak/MicroData.java | 30 | ||||
| -rw-r--r-- | micropeak/MicroDataPoint.java | 2 | ||||
| -rw-r--r-- | micropeak/MicroDeviceDialog.java | 2 | ||||
| -rw-r--r-- | micropeak/MicroDownload.java | 4 | ||||
| -rw-r--r-- | micropeak/MicroExport.java | 4 | ||||
| -rw-r--r-- | micropeak/MicroFile.java | 4 | ||||
| -rw-r--r-- | micropeak/MicroFileChooser.java | 4 | ||||
| -rw-r--r-- | micropeak/MicroFrame.java | 14 | ||||
| -rw-r--r-- | micropeak/MicroGraph.java | 4 | ||||
| -rw-r--r-- | micropeak/MicroPeak.app/Contents/Resources/MicroPeak.icns | bin | 133711 -> 0 bytes | |||
| -rw-r--r-- | micropeak/MicroPeak.java | 23 | ||||
| -rw-r--r-- | micropeak/MicroRaw.java | 4 | ||||
| -rw-r--r-- | micropeak/MicroSave.java | 4 | ||||
| -rw-r--r-- | micropeak/MicroSerial.java | 2 | ||||
| -rw-r--r-- | micropeak/MicroSerialLog.java | 2 | ||||
| -rw-r--r-- | micropeak/MicroStats.java | 4 | ||||
| -rw-r--r-- | micropeak/MicroStatsTable.java | 4 | ||||
| -rw-r--r-- | micropeak/MicroUSB.java | 2 | ||||
| -rw-r--r-- | micropeak/altusmetrum-micropeak.desktop.in (renamed from micropeak/micropeak.desktop.in) | 6 | ||||
| -rw-r--r-- | micropeak/micropeak-windows.nsi.in | 127 | 
23 files changed, 226 insertions, 100 deletions
diff --git a/micropeak/.gitignore b/micropeak/.gitignore index f9a61359..2cf940a6 100644 --- a/micropeak/.gitignore +++ b/micropeak/.gitignore @@ -11,7 +11,7 @@ micropeak-windows.nsi  MicroPeak-Linux-*  MicroPeak-Mac-*  MicroPeak-Windows-* -micropeak.desktop +*.desktop  *.dll  *.dylib  *.so diff --git a/micropeak/Info.plist.in b/micropeak/Info.plist.in index 40984c5a..b1dc6cea 100644 --- a/micropeak/Info.plist.in +++ b/micropeak/Info.plist.in @@ -23,7 +23,22 @@  	<key>CFBundleInfoDictionaryVersion</key>  	<string>6.0</string>  	<key>CFBundleIconFile</key> -	<string>MicroPeak.icns</string> +	<string>altusmetrum-micropeak.icns</string> +	<key>CFBundleDocumentTypes</key> +	<array> +	  <dict> +	    <key>CFBundleTypeName</key> +	    <string>MicroPeak data file</string> +	    <key>CFBundleTypeIconFile</key> +	    <string>application-vnd.altusmetrum.micropeak.icns</string> +	    <key>CFBundleTypeExtensions</key> +	    <array> +	      <string>mpd</string> +	    </array> +	    <key>CFBundleTypeRole</key> +	    <string>Editor</string> +	  </dict> +	</array>  	<key>Java</key>  	<dict>  		<key>MainClass</key> diff --git a/micropeak/Makefile.am b/micropeak/Makefile.am index 39ebc43a..15865606 100644 --- a/micropeak/Makefile.am +++ b/micropeak/Makefile.am @@ -56,26 +56,41 @@ ALTOSUILIB_CLASS=\  ICONDIR=$(top_srcdir)/icon  JAVA_ICONS=\ -	$(ICONDIR)/micropeak-16.png \ -	$(ICONDIR)/micropeak-32.png \ -	$(ICONDIR)/micropeak-48.png \ -	$(ICONDIR)/micropeak-64.png \ -	$(ICONDIR)/micropeak-128.png \ -	$(ICONDIR)/micropeak-256.png +	$(ICONDIR)/altusmetrum-micropeak-16.png \ +	$(ICONDIR)/altusmetrum-micropeak-32.png \ +	$(ICONDIR)/altusmetrum-micropeak-48.png \ +	$(ICONDIR)/altusmetrum-micropeak-64.png \ +	$(ICONDIR)/altusmetrum-micropeak-128.png\ +	$(ICONDIR)/altusmetrum-micropeak-256.png  # icon base names for jar -ICONJAR= -C $(ICONDIR) micropeak-16.png \ -	-C $(ICONDIR) micropeak-32.png \ -	-C $(ICONDIR) micropeak-48.png \ -	-C $(ICONDIR) micropeak-64.png \ -	-C $(ICONDIR) micropeak-128.png \ -	-C $(ICONDIR) micropeak-256.png - -WINDOWS_ICON=$(ICONDIR)/micro-peak.ico -MACOSX_ICON=$(ICONDIR)/MicroPeak.icns +ICONJAR= \ +	-C $(ICONDIR) altusmetrum-micropeak-16.png \ +	-C $(ICONDIR) altusmetrum-micropeak-32.png \ +	-C $(ICONDIR) altusmetrum-micropeak-48.png \ +	-C $(ICONDIR) altusmetrum-micropeak-64.png \ +	-C $(ICONDIR) altusmetrum-micropeak-128.png\ +	-C $(ICONDIR) altusmetrum-micropeak-256.png + +WINDOWS_ICONS	=\ +	../icon/altusmetrum-micropeak.ico \ +	../icon/altusmetrum-micropeak.exe +	../icon/application-vnd.altusmetrum.micropeak.ico \ +	../icon/application-vnd.altusmetrum.micropeak.ico + +MACOSX_ICONS	=\ +	../icon/altusmetrum-micropeak.icns \ +	../icon/application-vnd.altusmetrum.micropeak.icns + +LINUX_ICONS	=\ +	$(ICONDIR)/altusmetrum-micropeak.svg \ +	$(ICONDIR)/application-vnd.altusmetrum.micropeak.svg + +LINUX_MIMETYPE	=\ +	$(ICONDIR)/org-altusmetrum-mimetypes.xml  desktopdir = $(datadir)/applications -desktop_file = micropeak.desktop +desktop_file = altusmetrum-micropeak.desktop  desktop_SCRIPTS = $(desktop_file)  all-local: micropeak-test micropeak-jdb $(JAR) @@ -87,12 +102,12 @@ clean-local:  		$(ALTOSUILIB_CLASS) \  		$(JFREECHART_CLASS) $(JCOMMON_CLASS) $(LIBALTOS) Manifest.txt Manifest-fat.txt \  		micropeak micropeak-test micropeak-jdb macosx linux windows micropeak-windows.log \ -		micropeak-windows.nsi +		micropeak-windows.nsi *.desktop  EXTRA_DIST = $(desktop_file).in  $(desktop_file): $(desktop_file).in -	sed -e 's#%bindir%#@bindir@#' -e 's#%icondir%#$(datadir)/icons/hicolor/scalable/apps#' ${srcdir}/micropeak.desktop.in > $@ +	sed -e 's#%bindir%#@bindir@#' -e 's#%icondir%#$(datadir)/icons/hicolor/scalable/apps#' ${srcdir}/$(desktop_file).in > $@  	chmod +x $@  LINUX_DIST=MicroPeak-Linux-$(VERSION).tar.bz2 @@ -106,14 +121,14 @@ DOC=$(MICROPEAK_DOC)  FAT_FILES=$(FATJAR) $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS) $(FREETTS_CLASS) $(JFREECHART_CLASS) $(JCOMMON_CLASS) -LINUX_FILES=$(FAT_FILES) libaltos.so $(FIRMWARE) $(DOC) micropeak.desktop.in ../icon/micropeak.svg -LINUX_EXTRA=micropeak-fat micropeak.desktop.in +LINUX_FILES=$(FAT_FILES) libaltos.so $(FIRMWARE) $(DOC) $(desktop_file).in $(LINUX_ICONS) $(LINUX_MIMETYPE) +LINUX_EXTRA=micropeak-fat $(desktop_file).in  MACOSX_DRIVER_URL=http://www.ftdichip.com/Drivers/VCP/MacOSX/FTDIUSBSerialDriver_v2_2_18.dmg  MACOSX_DRIVER=FTDIUSBSerialDriver_v2_2_18.dmg  MACOSX_INFO_PLIST=Info.plist  MACOSX_README=ReadMe-Mac.rtf -MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) $(MACOSX_DRIVER) $(MACOSX_README) $(DOC) $(MACOSX_ICON) +MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) $(MACOSX_DRIVER) $(MACOSX_README) $(DOC) $(MACOSX_ICONS)  $(MACOSX_DRIVER):  	wget $(MACOSX_DRIVER_URL) @@ -124,7 +139,7 @@ WINDOWS_DRIVER=CDM20824_Setup.exe  $(WINDOWS_DRIVER):  	wget $(WINDOWS_DRIVER_URL) -WINDOWS_FILES=$(FAT_FILES) altos.dll altos64.dll $(DOC) $(WINDOWS_ICON) $(WINDOWS_DRIVER) +WINDOWS_FILES=$(FAT_FILES) altos.dll altos64.dll $(DOC) $(WINDOWS_ICONS) $(WINDOWS_DRIVER)  if FATINSTALL @@ -261,7 +276,7 @@ $(MACOSX_DIST): $(MACOSX_FILES)  	cp -p Info.plist macosx/MicroPeak.app/Contents  	cp -p $(MACOSX_DRIVER) macosx  	mkdir -p macosx/MicroPeak.app/Contents/Resources/Java -	cp -p $(MACOSX_ICON) macosx/MicroPeak.app/Contents/Resources +	cp -p $(MACOSX_ICONS) macosx/MicroPeak.app/Contents/Resources  	cp -p $(FATJAR) macosx/MicroPeak.app/Contents/Resources/Java/micropeak.jar  	cp -p libaltos.dylib macosx/MicroPeak.app/Contents/Resources/Java  	cp -p $(ALTOSLIB_CLASS) macosx/MicroPeak.app/Contents/Resources/Java diff --git a/micropeak/MicroData.java b/micropeak/MicroData.java index ca211f16..c38ada91 100644 --- a/micropeak/MicroData.java +++ b/micropeak/MicroData.java @@ -20,8 +20,8 @@ package org.altusmetrum.micropeak;  import java.lang.*;  import java.io.*;  import java.util.*; -import org.altusmetrum.altoslib_4.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_5.*; +import org.altusmetrum.altosuilib_3.*;  class MicroIterator implements Iterator<MicroDataPoint> {  	int		i; @@ -97,9 +97,15 @@ public class MicroData implements AltosUIDataSet {  	private double		time_step;  	private double		ground_altitude;  	private ArrayList<Integer>	bytes; +	public int		log_id;  	String			name;  	MicroStats		stats; -	 + +	public static final int LOG_ID_MICROPEAK = 0; +	public static final int LOG_ID_MICROKITE = 1; + +	public static final double CLOCK = 0.096; +  	public class FileEndedException extends Exception {  	} @@ -172,7 +178,7 @@ public class MicroData implements AltosUIDataSet {  			if (get_nonwhite(f) == 'M' && get_nonwhite(f) == 'P')  				return true;  		} -	}  +	}  	private int get_32(InputStream f)  throws IOException, FileEndedException, NonHexcharException {  		int	v = 0; @@ -345,6 +351,9 @@ public class MicroData implements AltosUIDataSet {  			ground_pressure = get_32(f);  			min_pressure = get_32(f);  			int nsamples = get_16(f); + +			log_id = nsamples >> 12; +			nsamples &= 0xfff;  			pressures = new int[nsamples + 1];  			ground_altitude = AltosConvert.pressure_to_altitude(ground_pressure); @@ -367,7 +376,7 @@ public class MicroData implements AltosUIDataSet {  					else  						cur = down;  				} -				 +  				pressures[i+1] = cur;  			} @@ -376,7 +385,14 @@ public class MicroData implements AltosUIDataSet {  			crc_valid = crc == current_crc; -			time_step = 0.192; +			switch (log_id) { +			case LOG_ID_MICROPEAK: +				time_step = 2 * CLOCK; +				break; +			case LOG_ID_MICROKITE: +				time_step = 200 * CLOCK; +				break; +			}  			stats = new MicroStats(this);  		} catch (FileEndedException fe) {  			throw new IOException("File Ended Unexpectedly"); @@ -389,5 +405,5 @@ public class MicroData implements AltosUIDataSet {  		pressures = new int[1];  		pressures[0] = 101000;  	} -	 +  } diff --git a/micropeak/MicroDataPoint.java b/micropeak/MicroDataPoint.java index 5a5e8c37..849ae536 100644 --- a/micropeak/MicroDataPoint.java +++ b/micropeak/MicroDataPoint.java @@ -17,7 +17,7 @@  package org.altusmetrum.micropeak; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroDataPoint implements AltosUIDataPoint {  	public double		time; diff --git a/micropeak/MicroDeviceDialog.java b/micropeak/MicroDeviceDialog.java index 305421a7..304eac7d 100644 --- a/micropeak/MicroDeviceDialog.java +++ b/micropeak/MicroDeviceDialog.java @@ -21,7 +21,7 @@ import javax.swing.*;  import java.awt.*;  import java.awt.event.*;  import java.util.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroDeviceDialog extends AltosDeviceDialog { diff --git a/micropeak/MicroDownload.java b/micropeak/MicroDownload.java index 1c70e1d1..32dd0450 100644 --- a/micropeak/MicroDownload.java +++ b/micropeak/MicroDownload.java @@ -23,8 +23,8 @@ import javax.swing.*;  import java.io.*;  import java.util.concurrent.*;  import java.util.*; -import org.altusmetrum.altoslib_4.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_5.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroDownload extends AltosUIDialog implements Runnable, ActionListener, MicroSerialLog, WindowListener {  	MicroPeak	owner; diff --git a/micropeak/MicroExport.java b/micropeak/MicroExport.java index 87d5499b..8d62ace6 100644 --- a/micropeak/MicroExport.java +++ b/micropeak/MicroExport.java @@ -23,8 +23,8 @@ import java.util.ArrayList;  import java.awt.*;  import javax.swing.*;  import javax.swing.filechooser.FileNameExtensionFilter; -import org.altusmetrum.altoslib_4.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_5.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroExport extends JFileChooser { diff --git a/micropeak/MicroFile.java b/micropeak/MicroFile.java index 019346ae..d6abfcb7 100644 --- a/micropeak/MicroFile.java +++ b/micropeak/MicroFile.java @@ -19,8 +19,8 @@ package org.altusmetrum.micropeak;  import java.io.*;  import java.util.*; -import org.altusmetrum.altoslib_4.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_5.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroFile { diff --git a/micropeak/MicroFileChooser.java b/micropeak/MicroFileChooser.java index 00b6690a..371c22d0 100644 --- a/micropeak/MicroFileChooser.java +++ b/micropeak/MicroFileChooser.java @@ -20,8 +20,8 @@ package org.altusmetrum.micropeak;  import javax.swing.*;  import javax.swing.filechooser.FileNameExtensionFilter;  import java.io.*; -import org.altusmetrum.altoslib_4.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_5.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroFileChooser extends JFileChooser {  	JFrame	frame; diff --git a/micropeak/MicroFrame.java b/micropeak/MicroFrame.java index 5bfe5bf7..8b3d49b5 100644 --- a/micropeak/MicroFrame.java +++ b/micropeak/MicroFrame.java @@ -21,16 +21,16 @@ import java.awt.*;  import java.awt.event.*;  import javax.swing.*;  import java.util.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroFrame extends AltosUIFrame {  	static String[] micro_icon_names = { -		"/micropeak-16.png", -		"/micropeak-32.png", -		"/micropeak-48.png", -		"/micropeak-64.png", -		"/micropeak-128.png", -		"/micropeak-256.png" +		"/altusmetrum-micropeak-16.png", +		"/altusmetrum-micropeak-32.png", +		"/altusmetrum-micropeak-48.png", +		"/altusmetrum-micropeak-64.png", +		"/altusmetrum-micropeak-128.png", +		"/altusmetrum-micropeak-256.png"  	};  	static { set_icon_names(micro_icon_names); } diff --git a/micropeak/MicroGraph.java b/micropeak/MicroGraph.java index f9968919..811b1e7c 100644 --- a/micropeak/MicroGraph.java +++ b/micropeak/MicroGraph.java @@ -22,8 +22,8 @@ import java.util.ArrayList;  import java.awt.*;  import javax.swing.*; -import org.altusmetrum.altoslib_4.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_5.*; +import org.altusmetrum.altosuilib_3.*;  import org.jfree.ui.*;  import org.jfree.chart.*; diff --git a/micropeak/MicroPeak.app/Contents/Resources/MicroPeak.icns b/micropeak/MicroPeak.app/Contents/Resources/MicroPeak.icns Binary files differdeleted file mode 100644 index 9ba83bf5..00000000 --- a/micropeak/MicroPeak.app/Contents/Resources/MicroPeak.icns +++ /dev/null diff --git a/micropeak/MicroPeak.java b/micropeak/MicroPeak.java index 19e91660..1744e803 100644 --- a/micropeak/MicroPeak.java +++ b/micropeak/MicroPeak.java @@ -23,8 +23,8 @@ import javax.swing.*;  import java.io.*;  import java.util.concurrent.*;  import java.util.*; -import org.altusmetrum.altoslib_4.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_5.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroPeak extends MicroFrame implements ActionListener, ItemListener { @@ -107,7 +107,7 @@ public class MicroPeak extends MicroFrame implements ActionListener, ItemListene  	private void DownloadData() {  		AltosDevice	device = MicroDeviceDialog.show(this); -		 +  		if (device != null)  			new MicroDownload(this, device);  	} @@ -128,7 +128,7 @@ public class MicroPeak extends MicroFrame implements ActionListener, ItemListene  		if (save.runDialog())  			SetName(data.name);  	} -	 +  	private void Export() {  		if (data == null) {  			no_data(); @@ -190,10 +190,25 @@ public class MicroPeak extends MicroFrame implements ActionListener, ItemListene  	public void itemStateChanged(ItemEvent e) {  	} +	/* OSXAdapter interfaces */ +	public void macosx_file_handler(String path) { +		CommandGraph(new File(path)); +	} + +	public void macosx_quit_handler() { +		System.exit(0); +	} + +	public void macosx_preferences_handler() { +		Preferences(); +	} +  	public MicroPeak() {  		++number_of_windows; +		register_for_macosx_events(); +  		AltosUIPreferences.set_component(this);  		container = getContentPane(); diff --git a/micropeak/MicroRaw.java b/micropeak/MicroRaw.java index 26d62012..7a225dcb 100644 --- a/micropeak/MicroRaw.java +++ b/micropeak/MicroRaw.java @@ -20,8 +20,8 @@ package org.altusmetrum.micropeak;  import java.awt.*;  import java.io.*;  import javax.swing.*; -import org.altusmetrum.altoslib_4.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_5.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroRaw extends JTextArea { diff --git a/micropeak/MicroSave.java b/micropeak/MicroSave.java index 7c5d6abe..9497fb33 100644 --- a/micropeak/MicroSave.java +++ b/micropeak/MicroSave.java @@ -24,8 +24,8 @@ import javax.swing.filechooser.FileNameExtensionFilter;  import java.io.*;  import java.util.concurrent.*;  import java.util.*; -import org.altusmetrum.altoslib_4.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_5.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroSave extends JFileChooser { diff --git a/micropeak/MicroSerial.java b/micropeak/MicroSerial.java index 37b68636..f5108c22 100644 --- a/micropeak/MicroSerial.java +++ b/micropeak/MicroSerial.java @@ -20,7 +20,7 @@ package org.altusmetrum.micropeak;  import java.util.*;  import java.io.*;  import libaltosJNI.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroSerial extends InputStream {  	SWIGTYPE_p_altos_file	file; diff --git a/micropeak/MicroSerialLog.java b/micropeak/MicroSerialLog.java index 7300f06d..c49b69ab 100644 --- a/micropeak/MicroSerialLog.java +++ b/micropeak/MicroSerialLog.java @@ -20,7 +20,7 @@ package org.altusmetrum.micropeak;  import java.util.*;  import java.io.*;  import libaltosJNI.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altosuilib_3.*;  public interface MicroSerialLog { diff --git a/micropeak/MicroStats.java b/micropeak/MicroStats.java index 45c9f225..3fc05bd6 100644 --- a/micropeak/MicroStats.java +++ b/micropeak/MicroStats.java @@ -18,8 +18,8 @@  package org.altusmetrum.micropeak;  import java.io.*; -import org.altusmetrum.altoslib_4.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_5.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroStats {  	double		coast_height; diff --git a/micropeak/MicroStatsTable.java b/micropeak/MicroStatsTable.java index 3b17e731..d6265fe8 100644 --- a/micropeak/MicroStatsTable.java +++ b/micropeak/MicroStatsTable.java @@ -19,8 +19,8 @@ package org.altusmetrum.micropeak;  import java.awt.*;  import javax.swing.*; -import org.altusmetrum.altoslib_4.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_5.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroStatsTable extends JComponent implements AltosFontListener {  	GridBagLayout	layout; diff --git a/micropeak/MicroUSB.java b/micropeak/MicroUSB.java index 437fa0bc..24f6722b 100644 --- a/micropeak/MicroUSB.java +++ b/micropeak/MicroUSB.java @@ -19,7 +19,7 @@ package org.altusmetrum.micropeak;  import java.util.*;  import libaltosJNI.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altosuilib_3.*;  public class MicroUSB extends altos_device implements AltosDevice { diff --git a/micropeak/micropeak.desktop.in b/micropeak/altusmetrum-micropeak.desktop.in index abdf286f..782b4704 100644 --- a/micropeak/micropeak.desktop.in +++ b/micropeak/altusmetrum-micropeak.desktop.in @@ -1,10 +1,10 @@  [Desktop Entry]  Type=Application  Name=MicroPeak -GenericName=MicroPeak download and analysis +GenericName=MicroPeak Download and Analysis  Comment=View and log data from MicroPeak altimeters -Icon=%icondir%/micropeak.svg +Icon=%icondir%/altusmetrum-micropeak.svg  Exec=%bindir%/micropeak %f  Terminal=false -MimeType=text/plain; +MimeType=application/vnd.altusmetrum.micropeak  Categories=Education;Electronics;Science; diff --git a/micropeak/micropeak-windows.nsi.in b/micropeak/micropeak-windows.nsi.in index bb5da1bb..848523b0 100644 --- a/micropeak/micropeak-windows.nsi.in +++ b/micropeak/micropeak-windows.nsi.in @@ -1,15 +1,24 @@ -!addplugindir Instdrv/NSIS/Plugins +!addplugindir ../altosui/Instdrv/NSIS/Plugins  !addincludedir ../altosui/Instdrv/NSIS/Includes  !include x64.nsh  !include java.nsh +!include refresh-sh.nsh -Name "Altus Metrum MicroPeak Installer" +!define REG_NAME	"MicroPeak" +!define PROG_ID		"org.altusmetrum.micropeak.1" +!define PROG_ID_MPD	"org.altusmetrum.micropeak.mpd.1" +!define FAT_NAME	"micropeak-fat.jar" +!define WIN_APP_ICON	"altusmetrum-micropeak.ico" +!define WIN_APP_EXE	"altusmetrum-micropeak.exe" +!define WIN_MPD_EXE	"application-vnd.altusmetrum.micropeak.exe" + +Name "${REG_NAME} Installer"  ; Default install directory  InstallDir "$PROGRAMFILES\AltusMetrum"  ; Tell the installer where to re-install a new version -InstallDirRegKey HKLM "Software\AltusMetrum" "Install_Dir" +InstallDirRegKey HKLM "Software\${REG_NAME}" "Install_Dir"  LicenseText "GNU General Public License Version 2"  LicenseData "../COPYING" @@ -19,7 +28,7 @@ RequestExecutionLevel admin  ShowInstDetails Show -ComponentText "Altus Metrum MicroPeak Software Installer" +ComponentText "${REG_NAME} Software and Driver Installer"  Function .onInit  	DetailPrint "Checking host operating system" @@ -31,6 +40,16 @@ Function .onInit  	${EndIf}  FunctionEnd +Function un.onInit +	DetailPrint "Checking host operating system" +	${If} ${RunningX64} +		DetailPrint "Installer running on 64-bit host" +		SetRegView 64 +		StrCpy $INSTDIR "$PROGRAMFILES64\AltusMetrum" +		${DisableX64FSRedirection} +	${EndIf} +FunctionEnd +  ; Pages to present  Page license @@ -43,12 +62,21 @@ UninstPage instfiles  ; And the stuff to install -Section "MicroPeak Application" +Section "FTDI USB Driver" +	SetOutPath $INSTDIR + +	File "CDM20824_Setup.exe" + +	StrCpy $2 "$INSTDIR\CDM20824_Setup.exe" +	ExecWait $2 +SectionEnd + +Section "${REG_NAME} Application"  	Call DetectJRE  	SetOutPath $INSTDIR -	File "micropeak-fat.jar" +	File "${FAT_NAME}"  	File "altoslib_@ALTOSLIB_VERSION@.jar"  	File "altosuilib_@ALTOSUILIB_VERSION@.jar"  	File "jfreechart.jar" @@ -56,22 +84,13 @@ Section "MicroPeak Application"  	File "*.dll" -	File "../icon/*.ico" - -	CreateShortCut "$SMPROGRAMS\MicroPeak.lnk" "$SYSDIR\javaw.exe" "-jar micropeak-fat.jar" "$INSTDIR\micro-peak.ico" -SectionEnd - -Section "FTDI USB Driver" -	SetOutPath $INSTDIR - -	File "CDM20824_Setup.exe" +	File "../icon/${WIN_APP_ICON}" -	StrCpy $2 "$INSTDIR\CDM20824_Setup.exe" -	ExecWait $2 +	CreateShortCut "$SMPROGRAMS\${REG_NAME}.lnk" "$SYSDIR\javaw.exe" "-jar ${FAT_NAME}" "$INSTDIR\${WIN_APP_ICON}"  SectionEnd -Section "MicroPeak Desktop Shortcut" -	CreateShortCut "$DESKTOP\MicroPeak.lnk" "$INSTDIR\micropeak-fat.jar"  "" "$INSTDIR\micro-peak.ico" +Section "${REG_NAME} Desktop Shortcut" +	CreateShortCut "$DESKTOP\${REG_NAME}.lnk" "$INSTDIR\${FAT_NAME}"  "" "$INSTDIR\${WIN_APP_ICON}"  SectionEnd  Section "Documentation" @@ -81,33 +100,79 @@ Section "Documentation"  	File "../doc/micropeak.pdf"  SectionEnd +Section "File Associations" + +	SetOutPath $INSTDIR + +	File "../icon/${WIN_APP_EXE}" +	File "../icon/${WIN_MPD_EXE}" + +	; application elements +	 +	DeleteRegKey HKCR "${PROG_ID}" +	DeleteRegKey HKCR "${PROG_ID_MPD}" + +	WriteRegStr HKCR "${PROG_ID_MPD}"		""				"MicroPeak Data File" +	WriteRegStr HKCR "${PROG_ID_MPD}"		"FriendlyTypeName"		"MicroPeak Data File" +	WriteRegStr HKCR "${PROG_ID_MPD}\CurVer"	""				"${PROG_ID_MPD}" +	WriteRegStr HKCR "${PROG_ID_MPD}\DefaultIcon"	""				'"$INSTDIR\${WIN_MPD_EXE}",-101' +  WriteRegExpandStr HKCR "${PROG_ID_MPD}\shell\play\command" ""				'"%SYSTEMROOT%\System32\javaw.exe" -Djava.library.path="$INSTDIR" -jar "$INSTDIR\${FAT_NAME}" "%1"' + +	; .mpd elements + +	WriteRegStr HKCR ".mpd"				""				"${PROG_ID_MPD}" +	WriteRegStr HKCR ".mpd"				"PerceivedType"			"MicroPeak Data File" +	WriteRegStr HKCR ".mpd"				"Content Type"			"application/vnd.altusmetrum.micropeak" + +	WriteRegStr HKCR ".mpd\OpenWithProgids"		"${PROG_ID_MPD}"			"" +	WriteRegStr HKCR ".mpd\${PROG_ID_MPD}"		""				"${REG_NAME}" + +	Call RefreshShellIcons +SectionEnd +	  Section "Uninstaller"  	; Deal with the uninstaller +	${DisableX64FSRedirection}  	SetOutPath $INSTDIR  	; Write the install path to the registry -	WriteRegStr HKLM SOFTWARE\AltusMetrum "Install_Dir" "$INSTDIR" +	WriteRegStr HKLM "SOFTWARE\${REG_NAME}" "Install_Dir" "$INSTDIR"  	; Write the uninstall keys for windows -	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "DisplayName" "Altus Metrum" -	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "UninstallString" '"$INSTDIR\uninstall.exe"' -	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "NoModify" "1" -	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "NoRepair" "1" +	WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${REG_NAME}" "DisplayName" "${REG_NAME}" +	WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${REG_NAME}" "UninstallString" '"$INSTDIR\uninstall-${REG_NAME}.exe"' +	WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${REG_NAME}" "NoModify" "1" +	WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${REG_NAME}" "NoRepair" "1" -	WriteUninstaller "uninstall.exe" +	WriteUninstaller "uninstall-${REG_NAME}.exe"  SectionEnd  Section "Uninstall" -	DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" -	DeleteRegKey HKLM "Software\AltusMetrum" -	Delete "$INSTDIR\*.*" -	RMDir "$INSTDIR" +	${DisableX64FSRedirection} + +	DeleteRegKey   HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${REG_NAME}" +	DeleteRegKey   HKLM "SOFTWARE\${REG_NAME}" + +	DetailPrint "Delete uninstall reg entries" + +	DeleteRegKey   HKCR "${PROG_ID}" +	DeleteRegKey   HKCR "${PROG_ID_MPD}" + +	DeleteRegKey   HKCR ".mpd\${PROG_ID_MPD}" +	DeleteRegValue HKCR ".mpd\OpenWithProgids" "${PROG_ID_MPD}" + +	Delete "$INSTDIR\${FAT_NAME}" +	Delete "$INSTDIR\uninstall-${REG_NAME}.exe" + +	Delete "$INSTDIR\${WIN_APP_ICON}" +	Delete "$INSTDIR\${WIN_APP_EXE}"  	; Remove shortcuts, if any -	Delete "$SMPROGRAMS\MicroPeak.lnk" -	Delete "$DESKTOP\MicroPeak.lnk" +	Delete "$SMPROGRAMS\${REG_NAME}.lnk" +	Delete "$DESKTOP\${REG_NAME}.lnk" +	Call un.RefreshShellIcons  SectionEnd  | 
