> Casing of all symbols apart from 'custom placeholder' were modified into > 'Title Case'. The hash helper functions had to be changed to ignore the > difference between lower and upper cases. The import had to be extended > to convert lower case names in sym to the version in the table to work > correctly.
Unfortunately not quite true :( eg: > - { "us hwy", "us_hwy", 8193, "us hwy symbol", NULL, NULL, NULL }, > + { "US hwy", "us_hwy", 8193, "us hwy symbol", NULL, NULL, NULL }, or > - { "vor/tacan", "vortac", 16396, "VOR/TACAN symbol", NULL, NULL, NULL }, > + { "VOR/TACAN", "vortac", 16396, "VOR/TACAN symbol", NULL, NULL, NULL }, +many more... Admittedly most of these are types of waypoint the hardly anyone would use and we don't have symbols for them anyway... Also I think Guilhem may have eluded to this in the past - with this patch it makes the symbol upload to *all* devices case sensitive. Thus if a (probably older) device only works with lower case symbol definitions then I think this patch would break it. I'm not quite sure how GPSBabel itself copes with this situation - presumably devices should be case insensitive - but as you've found out the 450 is sensitive to it. I can't find out any further detail about this apart from http://gnss-info.blogspot.com/p/manual-eng.html Maybe we're overly worrying about inconveniencing other device owners, but we shouldn't have to rely on them to tell us that previously fully working devices now have some functional regression. So I was thinking of a slightly different approach - which makes it only affect devices explicitly when told to do so: 1. Have files .vik & .gpx of existing supported waypoints .vik: https://github.com/rnorris/viking/commit/4335fd6d9d74a4e903980b9db16176f95bb8473b Probably need to extend to include waypoints that have can symbols on the GPS device but not in Viking. 2. Confirm actual availability of all waypoint symbols on devices one may have with current code base 3. Th different approach: Have an option to set the waypoint symbol upload casing behaviour. Then do a 'simple' automatic string Title Case conversion for the symbol . Unfortunately no glib function to do so . Use something like: http://c-programming-free.blogspot.co.uk/2010/11/accept-string-and-convert-into-proper.html But need to fix for after punctuation especially / + ( [Possibly in the global preferences for Export/External or better in the GPS layer options] 3 Test: Especially Title Case 'oddities', eg: > + { "Skull and Crossbones", "skull", 14, "white skull and crossbones symbol", &wp_skull_pixbuf, &wp_skull_large_pixbuf, NULL }, > + { "RV Park", "rv_park", 8215, "RV park symbol", &wp_rv_park_pixbuf, > &wp_rv_park_large_pixbuf, NULL }, Do we need to keep "custom begin placeholder" & "custom end placeholder" in lower case? a. If auto conversion works then Hurrah! b. Refine approach for any specific sting conversion / title case oddities. - Extend the table with a new string / some kind of function to handle it / or just an explicit hard code exceptions if only a couple cases Note other candidates with interesting casing - however these currently have no actual symbol in Viking but what happens on the device display: > + { "Circle with X", "circle_x", 179, "circle with x in the center", NULL, > NULL, NULL }, > + { "Tide/Current PRediction Station", "tide_pred_stn", 183, "Tide/Current > Prediction Station", NULL, NULL, NULL }, > + { "Bait and Tackle", "bait_tackle", 192, "U bait and tackle symbol", NULL, > NULL, NULL }, > + { "US hwy", "us_hwy", 8193, "us hwy symbol", NULL, NULL, NULL }, > + { "Intl freeway hwy", "freeway", 8201, "intl freeway hwy symbol", NULL, > NULL, NULL }, > + { "Intl national hwy", "ntl_hwy", 8202, "intl national hwy symbol", NULL, > NULL, NULL }, > + { "Ramp intersection", "ramp_int", 8222, "ramp intersection symbol", NULL, > NULL, NULL }, > + { "Elevation point", "elev_pt", 8228, "elevation point symbol", NULL, NULL, > NULL }, > + { "Exit without services", "ex_no_srvc", 8229, "exit without services > symbol", NULL, NULL, NULL }, > + { "Geographic place name, Man-made", "geo_place_mm", 8230, "Geographic > place name, man-made", NULL, NULL, NULL }, > + { "Geographic place name, water","geo_place_wtr", 8231, "Geographic place > name, water", NULL, NULL, NULL }, > + { "Geographic place name, Land", "geo_place_lnd", 8232, "Geographic place > name, land", NULL, NULL, NULL }, > + { "Large Ramp intersection", "lrg_ramp_int", 8247, "large ramp intersection > symbol", NULL, NULL, NULL }, > + { "Large exit without services", "lrg_ex_no_srvc", 8248, "large exit > without services smbl", NULL, NULL, NULL }, > + { "Gambling/casino", "cards", 8250, "gambling/casino symbol", NULL, NULL, > NULL }, > + { "Non-directional beacon", "ndb", 16386, "non-directional beacon symbol", > NULL, NULL, NULL }, > + { "VHF Omni-range", "vor", 16387, "VHF omni-range symbol", NULL, NULL, NULL > }, > + { "VOR/TACAN", "vortac", 16396, "VOR/TACAN symbol", NULL, NULL, NULL }, > + { "VOR-DME", "vordme", 16397, "VOR-DME symbol", NULL, NULL, NULL }, > + { "First approach fix", "faf", 16398, "first approach fix", NULL, NULL, > NULL }, > + { "TACAN", "tacan", 16401, "TACAN symbol", NULL, NULL, NULL }, Thank you Sven for bringing up this issue again, but I hope you can see there are some questions over the approach for general use. So sorry for being overly pedantic! Luckily the power of the source means your patch works for you and your friends usage, but hopefully we can resolve this properly for everyone in due course. Be Seeing You - Rob. If at first you don't succeed, then skydiving isn't for you. ------------------------------------------------------------------------------ How fast is your code? 3 out of 4 devs don\\\'t know how their code performs in production. Find out how slow your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219672;13503038;z? http://info.appdynamics.com/FreeJavaPerformanceDownload.html _______________________________________________ Viking-devel mailing list Viking-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/viking-devel Viking home page: http://viking.sf.net/