X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=equipment.c;h=023db75d4a256d1cd6ae0bc4dd7f679abed5894c;hb=269b5c02864d26722669bc47d779f72dbccf2fc7;hp=6f09602d83e88ca08b8d5c7f0b1d23fb690b2c03;hpb=50d026230fa7303b33821da1346875b30f5ab00d;p=ext%2Fsubsurface.git diff --git a/equipment.c b/equipment.c index 6f09602..023db75 100644 --- a/equipment.c +++ b/equipment.c @@ -450,35 +450,45 @@ static void record_cylinder_changes(cylinder_t *cyl, struct cylinder_widget *cyl */ static struct tank_info { const char *name; - int size; /* cuft if < 1000, otherwise mliter */ - int psi; /* If zero, size is in mliter */ + int cuft, ml, psi, bar; } tank_info[100] = { /* Need an empty entry for the no-cylinder case */ - { "", 0, 0 }, + { "", }, /* Size-only metric cylinders */ - { "10.0 l", 10000 }, - { "11.1 l", 11100 }, + { "10.0 l", .ml = 10000 }, + { "11.1 l", .ml = 11100 }, /* Most common AL cylinders */ - { "AL50", 50, 3000 }, - { "AL63", 63, 3000 }, - { "AL72", 72, 3000 }, - { "AL80", 80, 3000 }, - { "AL100", 100, 3300 }, + { "AL50", .cuft = 50, .psi = 3000 }, + { "AL63", .cuft = 63, .psi = 3000 }, + { "AL72", .cuft = 72, .psi = 3000 }, + { "AL80", .cuft = 80, .psi = 3000 }, + { "AL100", .cuft = 100, .psi = 3300 }, /* Somewhat common LP steel cylinders */ - { "LP85", 85, 2640 }, - { "LP95", 95, 2640 }, - { "LP108", 108, 2640 }, - { "LP121", 121, 2640 }, + { "LP85", .cuft = 85, 2640 }, + { "LP95", .cuft = 95, 2640 }, + { "LP108", .cuft = 108, 2640 }, + { "LP121", .cuft = 121, 2640 }, /* Somewhat common HP steel cylinders */ - { "HP65", 65, 3442 }, - { "HP80", 80, 3442 }, - { "HP100", 100, 3442 }, - { "HP119", 119, 3442 }, - { "HP130", 130, 3442 }, + { "HP65", .cuft = 65, .psi = 3442 }, + { "HP80", .cuft = 80, .psi = 3442 }, + { "HP100", .cuft = 100, .psi = 3442 }, + { "HP119", .cuft = 119, .psi = 3442 }, + { "HP130", .cuft = 130, .psi = 3442 }, + + /* Common European steel cylinders */ + { "10L 300 bar", .ml = 10000, .bar = 300 }, + { "12L 200 bar", .ml = 12000, .bar = 200 }, + { "12L 232 bar", .ml = 12000, .bar = 232 }, + { "12L 300 bar", .ml = 12000, .bar = 300 }, + { "15L 200 bar", .ml = 15000, .bar = 200 }, + { "15L 232 bar", .ml = 15000, .bar = 232 }, + { "D7 300 bar", .ml = 14000, .bar = 300 }, + { "D8.5 232 bar", .ml = 17000, .bar = 232 }, + { "D12 232 bar", .ml = 24000, .bar = 232 }, /* We'll fill in more from the dive log dynamically */ { NULL, } @@ -490,20 +500,26 @@ static void fill_tank_list(GtkListStore *store) struct tank_info *info = tank_info; while (info->name) { - int size = info->size; + int ml = info->ml; + int cuft = info->cuft; int psi = info->psi; - int mbar = 0, ml = size; + int mbar; + double bar = info->bar; /* Is it in cuft and psi? */ if (psi) { - double bar = psi_to_bar(psi); - double airvolume = cuft_to_l(size) * 1000.0; - double atm = bar_to_atm(bar); + bar = psi_to_bar(psi); - ml = airvolume / atm + 0.5; - mbar = bar*1000 + 0.5; + if (cuft) { + double airvolume = cuft_to_l(cuft) * 1000.0; + double atm = bar_to_atm(bar); + + ml = airvolume / atm + 0.5; + } } + mbar = bar * 1000 + 0.5; + gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, info->name, @@ -897,13 +913,13 @@ GtkWidget *cylinder_list_widget(void) "enable-grid-lines", GTK_TREE_VIEW_GRID_LINES_BOTH, NULL); - tree_view_column(tree_view, CYL_DESC, "Type", NULL, PANGO_ALIGN_LEFT, TRUE); - tree_view_column(tree_view, CYL_SIZE, "Size", size_data_func, PANGO_ALIGN_RIGHT, TRUE); - tree_view_column(tree_view, CYL_WORKP, "MaxPress", pressure_data_func, PANGO_ALIGN_RIGHT, TRUE); - tree_view_column(tree_view, CYL_STARTP, "Start", pressure_data_func, PANGO_ALIGN_RIGHT, TRUE); - tree_view_column(tree_view, CYL_ENDP, "End", pressure_data_func, PANGO_ALIGN_RIGHT, TRUE); - tree_view_column(tree_view, CYL_O2, "O" UTF8_SUBSCRIPT_2 "%", percentage_data_func, PANGO_ALIGN_RIGHT, TRUE); - tree_view_column(tree_view, CYL_HE, "He%", percentage_data_func, PANGO_ALIGN_RIGHT, TRUE); + tree_view_column(tree_view, CYL_DESC, "Type", NULL, ALIGN_LEFT | UNSORTABLE); + tree_view_column(tree_view, CYL_SIZE, "Size", size_data_func, ALIGN_RIGHT | UNSORTABLE); + tree_view_column(tree_view, CYL_WORKP, "MaxPress", pressure_data_func, ALIGN_RIGHT | UNSORTABLE); + tree_view_column(tree_view, CYL_STARTP, "Start", pressure_data_func, ALIGN_RIGHT | UNSORTABLE); + tree_view_column(tree_view, CYL_ENDP, "End", pressure_data_func, ALIGN_RIGHT | UNSORTABLE); + tree_view_column(tree_view, CYL_O2, "O" UTF8_SUBSCRIPT_2 "%", percentage_data_func, ALIGN_RIGHT | UNSORTABLE); + tree_view_column(tree_view, CYL_HE, "He%", percentage_data_func, ALIGN_RIGHT | UNSORTABLE); return tree_view; }