/*
        Frank Lyonnet 1993
        Settings defs
*/


typedef enum { FYEO_SCAL_1 , FYEO_SCAL_4 , FYEO_SCAL_8 , FYEO_SCAL_CUSTOM , FYEO_SCAL_FIT , FYEO_SCAL_FILL } FYEO_which_scal;

typedef enum { DITHER_NONE,DITHER_SIMPLE,DITHER_FLOYD } FYEO_which_dither;

typedef struct INPUT_SETTINGS {
   int XDpi;
   int YDpi;
} input_settings;

typedef struct OUTPUT_SETTINGS {
   int Bpp;
   int XDpi;
   int YDpi;
   BOOL UseCurrent;
   int ColorSpace;
   FYEO_which_scal Scaling;
   int CustomXMul;
   int CustomXDiv;
   int CustomYMul;
   int CustomYDiv;
   int FillX;
   int FillY;
   FYEO_which_dither Dither;
} output_settings;

typedef struct MISC_SETTINGS {
   BOOL AutoFiletype;
} misc_settings;

typedef struct FYEO_SETTINGS {
   output_settings Output;
   input_settings Input;
   misc_settings Misc;
} FYEO_settings;

extern void output_settings_default(output_settings * Output);
extern void input_settings_default(input_settings * Input);
extern void misc_settings_default(misc_settings * Misc);

extern BOOL output_settings_load(output_settings * Output);
extern BOOL input_settings_load(input_settings * Input);
extern BOOL misc_settings_load(misc_settings * Misc);
extern BOOL settings_load(FYEO_settings * Settings);

extern void output_settings_save(output_settings * Output);
extern void input_settings_save(input_settings * Input);
extern void misc_settings_save(misc_settings * Misc);
extern void settings_save(FYEO_settings * Settings);

extern void output_settings_mode_change_dependencies(output_settings * Output);



