1 #ifndef _SEQUENCE_H_ 2 #define _SEQUENCE_H_ 3 4 #include <stdint.h> 5 #include "../core/siril.h" 6 #include "../core/processing.h" 7 #include "../algos/PSF.h" 8 9 void populate_seqcombo(const gchar *realname); 10 int read_single_sequence(char *realname, image_type imagetype); 11 int seqsetnum(int image_number); 12 int check_seq(int recompute_stats); 13 int seq_check_basic_data(sequence *seq, gboolean load_ref_into_gfit); 14 int set_seq(const char *); 15 char * seq_get_image_filename(sequence *seq, int index, char *name_buf); 16 int seq_read_frame(sequence *seq, int index, fits *dest, gboolean force_float, int thread_id); 17 int seq_read_frame_part(sequence *seq, int layer, int index, fits *dest, const rectangle *area, gboolean do_photometry, int thread_id); 18 int seq_load_image(sequence *seq, int index, gboolean load_it); 19 int64_t seq_compute_size(sequence *seq, int nb_frames, data_type type); 20 gboolean check_if_seq_exist(gchar *name, gboolean name_is_base); 21 int seq_open_image(sequence *seq, int index); 22 void seq_close_image(sequence *seq, int index); 23 int seq_opened_read_region(sequence *seq, int layer, int index, void *buffer, const rectangle *area, int thread_id); 24 void set_fwhm_star_as_star_list(sequence *seq); 25 char * fit_sequence_get_image_filename(sequence *seq, int index, char *name_buffer, gboolean add_fits_ext); 26 char * fit_sequence_get_image_filename_prefixed(sequence *seq, const char *prefix, int index); 27 char * get_possible_image_filename(sequence *seq, int image_number, char *name_buffer); 28 int get_index_and_basename(const char *filename, char **basename, int *index, int *fixed); 29 void remove_prefixed_sequence_files(sequence *seq, const char *prefix); 30 void initialize_sequence(sequence *seq, gboolean is_zeroed); 31 void free_sequence(sequence *seq, gboolean free_seq_too); 32 void sequence_free_preprocessing_data(sequence *seq); 33 void close_sequence(int loading_another); 34 gboolean sequence_is_loaded(); 35 36 typedef enum { 37 ORIGINAL_FRAME, 38 FOLLOW_STAR_FRAME, 39 REGISTERED_FRAME 40 } framing_mode; 41 42 struct seqpsf_args { 43 gboolean for_registration; 44 framing_mode framing; 45 46 /* The seqpsf result for each image, list of seqpsf_data */ 47 GSList *list; 48 }; 49 50 struct seqpsf_data { 51 int image_index; 52 fitted_PSF *psf; 53 double exposure; 54 }; 55 56 int sequence_find_refimage(sequence *seq); 57 void check_or_allocate_regparam(sequence *seq, int layer); 58 void set_shifts(sequence *seq, int frame, int layer, float shiftx, float shifty, gboolean data_is_top_down); 59 sequence *create_internal_sequence(int size); 60 void internal_sequence_set(sequence *seq, int index, fits *fit); 61 int internal_sequence_find_index(sequence *seq, fits *fit); 62 fits *internal_sequence_get(sequence *seq, int index); 63 gboolean sequence_is_rgb(sequence *seq); 64 void enforce_area_in_image(rectangle *area, sequence *seq); 65 66 int seqpsf(sequence *seq, int layer, gboolean for_registration, gboolean regall, 67 framing_mode framing, gboolean run_in_thread); 68 int seqpsf_image_hook(struct generic_seq_args *args, int out_index, int index, fits *fit, rectangle *area); 69 void free_reference_image(); 70 71 /* in export.c now */ 72 void update_export_crop_label(); 73 74 int compute_nb_images_fit_memory(sequence *seq, double factor, gboolean force_float, unsigned int *MB_per_orig_image, unsigned int *MB_per_scaled_image, unsigned int *max_mem_MB); 75 76 void fix_selnum(sequence *seq, gboolean warn); 77 78 #endif 79