X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=src%2Ftim%2Fprune%2Fload%2FBabelFileFormats.java;fp=src%2Ftim%2Fprune%2Fload%2FBabelFileFormats.java;h=5c54dfb5f574cf2d33a676fec30d1c93c33c1d06;hp=0000000000000000000000000000000000000000;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465 diff --git a/src/tim/prune/load/BabelFileFormats.java b/src/tim/prune/load/BabelFileFormats.java new file mode 100644 index 0000000..5c54dfb --- /dev/null +++ b/src/tim/prune/load/BabelFileFormats.java @@ -0,0 +1,208 @@ +package tim.prune.load; + +/** + * Class to manage the list of file formats supported by Gpsbabel + * (older versions of gpsbabel might not support all of these, of course). + * Certain supported formats such as txt, csv are not included here + * as GpsPrune can already load them directly. + */ +public abstract class BabelFileFormats +{ + /** + * @return an object array for the format descriptions + */ + public static String[] getDescriptions() { + return getColumn(0); + } + + /** + * Find the (first) appropriate file format for the given file suffix + * @param inSuffix end of filename including . + * @return matching index or -1 if not found + */ + public static int getIndexForFileSuffix(String inSuffix) + { + if (inSuffix != null && inSuffix.length() > 1) + { + final String[] suffixes = getColumn(2); + for (int i=0; i= 0 && inIndex < formats.length) + return formats[inIndex]; + return null; + } + + /** + * Extract the specified column of the data array + * @param inIndex column index from 0 to 2 + * @return string array containing required data + */ + private static String[] getColumn(int inIndex) + { + final String[] allFormats = { + "Alan Map500 tracklogs", "alantrl", ".trl", + "Alan Map500 waypoints and routes", "alanwpr", ".wpr", + "Brauniger IQ Series Barograph Download", "baroiq", null, + "Bushnell GPS Trail file", "bushnell_trl", null, + "Bushnell GPS Waypoint file", "bushnell", null, + "Cambridge/Winpilot glider software", "cambridge", null, + "CarteSurTable data file", "cst", null, + "Columbus/Visiontac V900 files", "v900", ".csv", + "CompeGPS data files", "compegps", ".wpt/.trk/.rte", + "Data Logger iBlue747 csv", "iblue747", null, + "Data Logger iBlue757 csv", "iblue757", null, + "DeLorme .an1 (drawing) file", "an1", null, + "DeLorme GPL", "gpl", null, + "DeLorme PN-20/PN-30/PN-40 USB protocol", "delbin", null, + "DeLorme Street Atlas Plus", "saplus", null, + "DeLorme Street Atlas Route", "saroute", null, + "DeLorme XMap HH Native .WPT", "xmap", null, + "DeLorme XMap/SAHH 2006 Native .TXT", "xmap2006", null, + "DeLorme XMat HH Street Atlas USA .WPT (PPC)", "xmapwpt", null, + "Destinator Itineraries", "destinator_itn", ".dat", + "Destinator Points of Interest", "destinator_poi", ".dat", + "Destinator TrackLogs", "destinator_trl", ".dat", + "EasyGPS binary format", "easygps", null, + "Energym training watch", "energympro", null, + "Enigma binary waypoint file", "enigma", ".ert", + "F90G log file", "f90g", null, + "FAI/IGC Flight Recorder Data Format", "igc", null, + "FlySight", "flysight", null, + "Franson GPSGate Simulation", "gpssim", null, + "Fugawi", "fugawi", null, + "G7ToWin data files", "g7towin", ".g7t", + "Garmin 301 Custom position and heartrate", "garmin301", null, + "Garmin FIT activity file", "garmin_fit", ".fit", + "Garmin Logbook XML", "glogbook", null, + "Garmin MapSource - gdb", "gdb", null, + "Garmin MapSource - mps", "mapsource", null, + "Garmin Mobile XT Track files", "garmin_xt", null, + "Garmin PCX5", "pcx", null, + "Garmin POI database", "garmin_poi", null, + "Garmin Points of Interest", "garmin_gpi", ".gpi", + "Garmin Training Center", "gtrnctr", ".tcx", + "Geocaching.com .loc", "geo", null, + "GeocachingDB for Palm/OS", "gcdb", null, + "Geogrid-Viewer ascii overlay file", "ggv_ovl", ".ovl", + "Geogrid-Viewer tracklogs", "ggv_log", ".log", + "GEOnet Names Server (GNS)", "geonet", null, + "GlobalSat DG-100/BT-335", "dg-100", null, + "GlobalSat DG-200", "dg-200", null, + "Google Directions", "googledir", null, + "Google Maps XML", "google", null, + "Google Navigator Tracklines", "gnav_trl", ".trl", + "GoPal GPS track log", "gopal", ".trk", + "GPS TrackMaker", "gtm", null, + "GPSman", "gpsman", null, + "gpsutil", "gpsutil", null, + "GPX", "gpx", ".gpx", + "HikeTech", "hiketech", null, + "Holux (gm-100) .wpo Format", "holux", null, + "Holux M-241 (MTK based) Binary File Format", "m241-bin", null, + "Holux M-241 (MTK based) download", "m241", null, + "Honda/Acura Navigation System VP Log File Format", "vpl", null, + "Humminbird tracks", "humminbird_ht", ".ht", + "Humminbird waypoints and routes", "humminbird", ".hwr", + "IGN Rando track files", "ignrando", null, + "iGO2008 points of interest", "igo2008_poi", ".upoi", + "IGO8 .trk", "igo8", null, + "Jelbert GeoTagger data file", "jtr", null, + "Jogmap.de XML format", "jogmap", null, + "Kompass (DAV) Track", "kompass_tk", ".tk", + "Kompass (DAV) Waypoints", "kompass_wp", ".wp", + "KuDaTa PsiTrex text", "psitrex", null, + "Lowrance USR", "lowranceusr", null, + "Lowrance USR version 4", "lowranceusr4", null, + "Magellan Explorist Geocaching", "maggeo", null, + "Magellan Mapsend", "mapsend", null, + "Magellan SD files (as for eXplorist)", "magellanx", null, + "Magellan SD files (as for Meridian)", "magellan", null, + "Magellan serial protocol", "magellan", null, + "MagicMaps IK3D project file", "ik3d", ".ikt", + "Map&Guide 'TourExchangeFormat' XML", "tef", null, + "MapAsia track file", "mapasia_tr7", ".tr7", + "Mapopolis.com Mapconverter CSV", "mapconverter", null, + "MapTech Exchange Format", "mxf", null, + "MediaTek Locus", "mtk_locus", null, + "Memory-Map Navigator overlay files", "mmo", ".mmo", + "Microsoft Streets and Trips 2002-2007", "s_and_t", null, + "Motorrad Routenplaner (Map&Guide) .bcr files", "bcr", null, + "MTK Logger (iBlue 747,...) Binary File Format", "mtk-bin", null, + "MTK Logger (iBlue 747,Qstarz BT-1000,...) download", "mtk", null, + "MyNav TRC format", "mynav", null, + "National Geographic Topo .tpg (waypoints)", "tpg", null, + "National Geographic Topo 2.x .tpo", "tpo2", null, + "National Geographic Topo 3.x/4.x .tpo", "tpo3", null, + "Navicache.com XML", "navicache", null, + "Navigon Mobile Navigator .rte files", "nmn4", null, + "Navigon Waypoints", "navigonwpt", null, + "NaviGPS GT-11/BGT-11 Download", "navilink", null, + "NaviGPS GT-31/BGT-31 datalogger", "sbp", ".sbp", + "NaviGPS GT-31/BGT-31 SiRF binary logfile", "sbn", ".sbn", + "Naviguide binary route file", "naviguide", ".twl", + "Navitel binary track", "navitel_trk", ".bin", + "Navitrak DNA marker format", "dna", null, + "NetStumbler Summary File", "netstumbler", "text", + "NIMA/GNIS Geographic Names File", "nima", null, + "Nokia Landmark Exchange", "lmx", null, + "OpenStreetMap data files", "osm", ".osm", + "OziExplorer", "ozi", null, + "PocketFMS breadcrumbs", "pocketfms_bc", null, + "PocketFMS flightplan", "pocketfms_fp", ".xml", + "PocketFMS waypoints", "pocketfms_wp", ".txt", + "Quovadis", "quovadis", null, + "Raymarine Waypoint File", "raymarine", ".rwf", + "Ricoh GPS Log File", "ricoh", null, + "See You flight analysis data", "cup", null, + "Skymap / KMD150 ascii files", "skyforce", null, + "SkyTraq Venus based loggers (download)", "skytraq", null, + "SkyTraq Venus based loggers Binary File Format", "skytraq-bin", null, + "Sportsim track files (part of zipped .ssz files)", "sportsim", null, + "SubRip subtitles for video mapping", "subrip", ".srt", + "Suunto Trek Manager (STM) .sdf files", "stmsdf", null, + "Suunto Trek Manager (STM) WaypointPlus files", "stmwpp", null, + "Swiss Map 25/50/100", "xol", ".xol", + "TomTom Itineraries", "tomtom_itn", ".itn", + "TomTom Places Itineraries", "tomtom_itn_places", ".itn", + "TomTom POI file", "tomtom_asc", ".asc", + "TomTom POI file", "tomtom", ".ov2", + "TopoMapPro Places File", "tmpro", null, + "TrackLogs digital mapping", "dmtlog", ".trl", + "U.S. Census Bureau Tiger Mapping Service", "tiger", null, + "Vcard Output (for iPod)", "vcard", null, + "VidaOne GPS for Pocket PC", "vidaone", ".gpb", + "Vito Navigator II tracks", "vitosmt", null, + "Vito SmartMap tracks", "vitovtt", ".vtt", + "WiFiFoFum 2.0 for PocketPC XML", "wfff", null, + "Wintec TES file", "wintec_tes", null, + "Wintec WBT-100/200 Binary File Format", "wbt-bin", null, + "Wintec WBT-100/200 GPS Download", "wbt", null, + "Wintec WBT-201/G-Rays 2 Binary File Format", "wbt-tk1", null, + "XAiOX iTrackU Logger", "itracku", null, + "XAiOX iTrackU Logger Binary File Format", "itracku-bin", null, + "Yahoo Geocode API data", "yahoo", null, + }; + // Copy elements into new array + final int numRows = allFormats.length / 3; + String[] result = new String[numRows]; + for (int i=0; i