19#ifndef _CHARTDB_IMPL_H_
20#define _CHARTDB_IMPL_H_
29#include "acfutils/worker.h"
38typedef cairo_surface_t *(*chart_load_cb_t)(chart_t *chart);
60 chart_load_cb_t load_cb;
63 cairo_surface_t *surf;
110 chart_prov_id_t prov;
113 bool_t normalize_non_icao;
117 bool_t disallow_caching;
118 int (*chart_sort_func)(
const void *,
const void *,
void *);
123 bool_t init_complete;
134 chart_t loader_cmd_purge;
135 chart_t loader_cmd_metar;
136 chart_t loader_cmd_taf;
141 bool_t (*init)(chartdb_t *cdb);
142 void (*fini)(chartdb_t *cdb);
143 bool_t (*get_chart)(chart_t *chart);
144 void (*watermark_chart)(chart_t *chart,
145 cairo_surface_t *surf);
146 chart_arpt_t *(*arpt_lazy_discover)(chartdb_t *cdb,
const char *icao);
147 void (*arpt_lazyload)(chart_arpt_t *arpt);
150 bool_t (*pending_ext_account_setup)(chartdb_t *cdb);
153chart_arpt_t *chartdb_add_arpt(chartdb_t *cdb,
const char *icao,
154 const char *name,
const char *city_name,
const char *state_id);
155bool_t chartdb_add_chart(chart_arpt_t *arpt, chart_t *chart);
156void chartdb_chart_destroy(chart_t *chart);
157char *chartdb_mkpath(chart_t *chart);
159char *chartdb_pdf_convert_file(
const char *pdftoppm_path,
char *old_path,
160 int page,
double zoom);
161uint8_t *chartdb_pdf_convert_direct(
const char *pdftoppm_path,
162 const uint8_t *pdf_data,
size_t len,
int page,
double zoom,
164int chartdb_pdf_count_pages_file(
const char *pdfinfo_path,
const char *path);
165int chartdb_pdf_count_pages_direct(
const char *pdfinfo_path,
166 const uint8_t *buf,
size_t len);