Example #1
0
Sample*
sample_dup(Sample* s)
{
	Sample* r = g_new0(Sample, 1);

	r->id           = s->id;
	r->ref_count    = 0;
	r->sample_rate  = s->sample_rate;
	r->length       = s->length;
	r->frames       = s->frames;
	r->channels     = s->channels;
	r->bit_depth    = s->bit_depth;
	r->bit_rate     = s->bit_rate;
	r->peaklevel    = s->peaklevel;
	r->colour_index = s->colour_index;
	r->online       = s->online;
	r->mtime        = s->mtime;
#define DUPSTR(P) if (s->P) r->P = strdup(s->P);
	DUPSTR(sample_dir)
	DUPSTR(name)
	DUPSTR(full_path)
	DUPSTR(keywords)
	DUPSTR(ebur)
	DUPSTR(notes)
	DUPSTR(mimetype)
	r->meta_data = s->meta_data ? g_ptr_array_ref(s->meta_data) : NULL;

	if (s->overview) r->overview = gdk_pixbuf_copy(s->overview);
	sample_ref(r);
	return r;
}
Example #2
0
static void
parse_track_header(void)
{
    char *str;
    int column = -1;
    route_head *trk;

    bind_fields(track_header);
    trk = route_head_alloc();
    while ((str = csv_lineparse(NULL, "\t", "", column++))) {
        int field_no = header_fields[track_header][column];
        switch(field_no) {
        case 1:
            trk->rte_name = DUPSTR(str);
            break;
        case 6:
            trk->rte_url = DUPSTR(str);
            break;
        }
    }
    track_add_head(trk);
    current_trk = trk;
}
Example #3
0
static void
parse_route_header(void)
{
    char *str;
    int column = -1;
    route_head *rte;

    rte = route_head_alloc();

    bind_fields(route_header);
    while ((str = csv_lineparse(NULL, "\t", "", column++))) {
        int field_no = header_fields[route_header][column];
        switch(field_no) {
        case 1:
            rte->rte_name = DUPSTR(str);
            break;
        case 5:
            rte->rte_url = DUPSTR(str);
            break;
        }
    }
    route_add_head(rte);
    current_rte = rte;
}
Example #4
0
static void
parse_waypoint(void)
{
    char *str;
    int column = -1;
    waypoint *wpt;
    garmin_fs_p gmsd = NULL;

    bind_fields(waypt_header);

    wpt = waypt_new();
    gmsd = garmin_fs_alloc(-1);
    fs_chain_add(&wpt->fs, (format_specific_data *) gmsd);

    while ((str = csv_lineparse(NULL, "\t", "", column++)))
    {
        int i, dynamic;
        double d;
        int field_no = header_fields[waypt_header][column];

        switch(field_no) {
        case  1:
            wpt->shortname = DUPSTR(str);
            break;
        case  2:
            wpt->notes = DUPSTR(str);
            break;
        case  3:
            for (i = 0; i <= gt_waypt_class_map_line; i++) {
                if (case_ignore_strcmp(str, gt_waypt_class_names[i]) == 0) {
                    GMSD_SET(wpt_class, i);
                    break;
                }
            }
            break;
        case  4:
            parse_coordinates(str, datum_index, grid_index,
                              &wpt->latitude, &wpt->longitude, MYNAME);
            break;
        case  5:
            if (parse_distance(str, &d, 1, MYNAME)) wpt->altitude = d;
            break;
        case  6:
            if (parse_distance(str, &d, 1, MYNAME)) WAYPT_SET(wpt, depth, d);
            break;
        case  7:
            if (parse_distance(str, &d, 1, MYNAME)) WAYPT_SET(wpt, proximity, d);
            break;
        case  8:
            if (parse_temperature(str, &d)) WAYPT_SET(wpt, temperature, d);
            break;
        case  9:
            if (parse_display(str, &i)) GMSD_SET(display, i);
            break;
        case 10:
            break;	/* skip color */
        case 11:
            i = gt_find_icon_number_from_desc(str, GDB);
            GMSD_SET(icon, i);
            wpt->icon_descr = gt_find_desc_from_icon_number(i, GDB, &dynamic);
            wpt->wpt_flags.icon_descr_is_dynamic = dynamic;
            break;
        case 12:
            GMSD_SETSTR(facility, str);
            break;
        case 13:
            GMSD_SETSTR(city, str);
            break;
        case 14:
            GMSD_SETSTR(state, str);
            break;
        case 15:
            GMSD_SETSTR(country, str);
            GMSD_SETSTR(cc, gt_get_icao_cc(str, wpt->shortname));
            break;
        case 16:
            parse_date_and_time(str, &wpt->creation_time);
            break;
        case 17:
            wpt->url = DUPSTR(str);
            break;
        case 18:
            GMSD_SET(category, parse_categories(str));
            break;
        default:
            break;
        }
    }
    waypt_add(wpt);
}