chiark / gitweb /
Adjust colours early so that we don't have to keep all RGBs in RAM
[ypp-sc-tools.main.git] / pctb / convert.h
index 0dc2255ddaea9c9a1cc214e04c3487c5255a145a..1dcb8a2f5d78ee70f52aab1ac446467f72826dc1 100644 (file)
@@ -69,10 +69,21 @@ static inline Rgb ri_rgb(const RgbImage *ri, int x, int y) {
 
 /*----- from structure.c -----*/
 
-void find_structure(CanonImage *im, int *max_relevant_y_r,
+typedef struct PageStruct PageStruct;
+
+void find_structure(const CanonImage *im,
+                   PageStruct **pagestruct_r, /* caller must free() */
+                   int *max_relevant_y_r,
                    Point *commod_focus_point_r,
                    Point *commod_page_point_r,
                    Point *commod_focuslast_point_r);
+void store_current_page(CanonImage *ci /*pointer saved*/,
+                       PageStruct *pagestruct, /*freed*/
+                       RgbImage *rgb /*freed*/);
+void adjust_colours(CanonImage *ci, const RgbImage *rgb);
+
+void select_page(int page);
+
 Rect find_sunshine_widget(void);
 
 void canon_colour_prepare(void);
@@ -122,6 +133,22 @@ enum flags {
 };
 extern enum flags o_flags;
 
+enum mode {
+  mf_findwindow=      00001,
+  mf_screenshot=      00010,
+  mf_readscreenshot=  00020,
+  mf_analyse=         00100,
+  mfm_special=        07000,
+  
+  mode_findwindow=    00001,
+  mode_screenshot=    00011,
+  mode_analyse=       00120,
+  mode_showcharset=   01000,
+
+  mode_all=           00111,
+};
+extern enum mode o_mode;
+
 extern const char *o_ocean, *o_pirate;
 extern int o_quiet;
 
@@ -134,7 +161,9 @@ void take_screenshots(void);
 void take_one_screenshot(void);
 
 #define MAX_PAGES 1000
-extern CanonImage *page_images[MAX_PAGES];
+
+extern const CanonImage *page_images[MAX_PAGES];
+extern const RgbImage *page0_rgbimage;
 extern int npages;
 
 extern const char *ocean, *pirate;