1 Half-arsed divelog software in C.
3 I'm tired of java programs that don't work etc.
7 You need libxml2-devel, gtk2-devel, glib-2.0 and GConf2-devel to build
8 this (and libusb-1.0 if you have libdivecomputer built with it, but then
9 you obviously already have it installed)
11 You also need to have libdivecomputer installed, which goes something like this:
13 git clone git://libdivecomputer.git.sourceforge.net/gitroot/libdivecomputer/libdivecomputer
20 NOTE! You may need to tell the main Makefile where you installed
21 libdivecomputer if you didn't do it in the default /usr/local location.
22 I don't trust pkg-config for libdivecomputer, since pkg-config usually
23 doesn't work unless the project has been installed by the distro.
25 Just edit the makefile directly. autoconf and friends are the devil's
31 ./subsurface dives/*.xml
33 to see my dives (with no notes or commentary).
35 Or, if you have a dive computer supported by libdivecomputer, you can
41 and select "Import" from the File menu, tell it what dive computer you
42 have (and where it is connected if you need to), and hit "OK".
44 NOTE! There are often multiple models of dive computers that import
45 exactly the same way. If you have a Suunto Gekko, for example, the
46 import function works fine - even if you don't find the Gekko listed
47 explicitly. It has the same import engine as the older Suunto Vyper
50 So check the (incomplete?) list of supported dive computers below, and
51 see which ones show up together. If you have the "Aeris Elite T3", for
52 example, you'd notice that it's in the same group with the "Oceanic Atom
53 2", and use that choice to import.
59 * Eon, Solution Alpha and Solution Nitrox/Vario
61 * Vyper, Cobra, Vytec, Vytec DS, D3, Spyder, Gekko, Mosquito, Stinger and Zoop
63 * Vyper2, Cobra2, Cobra3, Vyper Air and HelO2
73 * Smart and Galileo (infrared)
83 Oceanic, Aeris, Sherwood, Hollis, Genesis and Tusa (Pelagic):
85 * VT Pro, Versa Pro, Pro Plus 2, Wisdom, Atmos 2, Atmos AI, Atmos
88 * Veo 250, Veo 180Nx, XR2, React Pro, DG02, Insight, ...
90 * Atom 2.0, VT3, Datamask, Geo, Geo 2.0, Veo 2.0, Veo 3.0, Pro Plus 2.1,
91 Compumask, Elite T3, Epic, Manta, IQ-900 (Zen), IQ-950 (Zen Air),
92 IQ-750 (Element II), ...
96 * Nemo, Nemo Excel, Nemo Apneist, ...
98 * Puck, Puck Air, Nemo Air, Nemo Wide, ...
104 * OSTC, OSTC Mk.2 and OSTC 2N
106 Cressi, Zeagle and Mares (Seiko):
117 Implementation details:
119 main.c - program frame
120 dive.c - creates and maintaines the internal dive list structure
124 save-xml.c - interface with dive computers and the XML files
125 profile.c - creates the data for the profile and draws it using cairo
127 A first UI has been implemented in gtk and an attempt has been made to
128 separate program logic from UI implementation.
130 gtk-gui.c - overall layout, main window of the UI
131 divelist.c - list of dives subsurface maintains
132 equipment.c - equipment / tank information for each dive
133 info.c - detailed dive info
136 WARNING! I wasn't kidding when I said that I've done this by reading
137 gtk2 tutorials as I've gone along. If somebody is more comfortable with
138 gtk, feel free to send me (signed-off) patches.
140 Just as an example of the extreme hackiness of the code, I don't even
141 bother connecting a signal for the "somebody edited the dive info"
142 cases. I just save/restore the dive info every single time you switch
143 dives. Christ! That's truly lame.
145 NOTE! Some of the dives are pretty pitiful. All the last dives are from
146 my divemaster course, so they are from following open water students
147 along (many of them the confined*water dives). There a lot of the
148 action is at the surface, so some of the "dives" are 4ft deep and 2min
153 Please either send me signed-off patches or a pull request with
154 signed-off commits. If you don't sign off on them, I will not accept
155 them. This means adding a line that says "Signed-off-by: Name <email>"
156 at the end of each commit, indicating that you wrote the code and have
157 the right to pass it on as an open source patch.
159 See: http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html
161 Also, please write good git commit messages. A good commit message
164 header line: explaining the commit in one line
166 Body of commit message is a few lines of text, explaining things
167 in more detail, possibly giving some background about the issue
168 being fixed, etc etc.
170 The body of the commit message can be several paragrahps, and
171 please do proper word-wrap and keep columns shorter than about
172 74 characters or so. That way "git log" will show things
173 nicely even when it's indented.
175 Reported-by: whoever-reported-it
176 Signed-off-by: Your Name <youremail@yourhost.com>
178 where that header line really should be meaningful, and really should be
179 just one line. That header line is what is shown by tools like gitk and
180 shortlog, and should summarize the change in one readable line of text,
181 independently of the longer explanation.