X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ffilm_editor.h;h=52854b894436a1cc1ed876f45ced463f09c9a3bb;hb=5920000d247ab3ef7fb9ba29c6ba238b323cf909;hp=28afe7ff0f1341e6d98cb258b8556a134103a3e5;hpb=bd8fa9a370f1739952c83107352baa08c79d095e;p=dcpomatic.git diff --git a/src/wx/film_editor.h b/src/wx/film_editor.h index 28afe7ff0..52854b894 100644 --- a/src/wx/film_editor.h +++ b/src/wx/film_editor.h @@ -25,10 +25,13 @@ #include #include #include -#include "lib/trim_action.h" +#include #include "lib/film.h" +class wxNotebook; +class wxListCtrl; class Film; +class AudioDialog; /** @class FilmEditor * @brief A wx widget to edit a film's metadata, and perform various functions. @@ -36,14 +39,20 @@ class Film; class FilmEditor : public wxPanel { public: - FilmEditor (Film *, wxWindow *); + FilmEditor (boost::shared_ptr, wxWindow *); - void set_film (Film *); - void setup_visibility (); + void set_film (boost::shared_ptr); - sigc::signal1 FileChanged; + boost::signals2::signal FileChanged; private: + void make_film_panel (); + void make_content_panel (); + void make_video_panel (); + void make_audio_panel (); + void make_subtitle_panel (); + void connect_to_widgets (); + /* Handle changes to the view */ void name_changed (wxCommandEvent &); void use_dci_name_toggled (wxCommandEvent &); @@ -52,100 +61,109 @@ private: void right_crop_changed (wxCommandEvent &); void top_crop_changed (wxCommandEvent &); void bottom_crop_changed (wxCommandEvent &); - void content_changed (wxCommandEvent &); + void trust_content_header_changed (wxCommandEvent &); + void content_add_clicked (wxCommandEvent &); + void content_remove_clicked (wxCommandEvent &); + void content_earlier_clicked (wxCommandEvent &); + void content_later_clicked (wxCommandEvent &); void format_changed (wxCommandEvent &); - void dcp_range_changed (int, TrimAction); + void trim_start_changed (wxCommandEvent &); + void trim_end_changed (wxCommandEvent &); void dcp_content_type_changed (wxCommandEvent &); void dcp_ab_toggled (wxCommandEvent &); void scaler_changed (wxCommandEvent &); void audio_gain_changed (wxCommandEvent &); void audio_gain_calculate_button_clicked (wxCommandEvent &); + void show_audio_clicked (wxCommandEvent &); void audio_delay_changed (wxCommandEvent &); void with_subtitles_toggled (wxCommandEvent &); void subtitle_offset_changed (wxCommandEvent &); void subtitle_scale_changed (wxCommandEvent &); - void still_duration_changed (wxCommandEvent &); - void audio_stream_changed (wxCommandEvent &); - void subtitle_stream_changed (wxCommandEvent &); + void colour_lut_changed (wxCommandEvent &); + void j2k_bandwidth_changed (wxCommandEvent &); + void ffmpeg_audio_stream_changed (wxCommandEvent &); + void ffmpeg_subtitle_stream_changed (wxCommandEvent &); + void dcp_frame_rate_changed (wxCommandEvent &); + void best_dcp_frame_rate_clicked (wxCommandEvent &); /* Handle changes to the model */ void film_changed (Film::Property); /* Button clicks */ void edit_filters_clicked (wxCommandEvent &); - void change_dcp_range_clicked (wxCommandEvent &); void set_things_sensitive (bool); void setup_formats (); - void setup_subtitle_button (); + void setup_subtitle_control_sensitivity (); void setup_streams (); void setup_audio_details (); + void setup_dcp_name (); + void setup_show_audio_sensitivity (); + void setup_content (); - wxControl* video_control (wxControl *); - wxControl* still_control (wxControl *); - - Film::Property _ignore_changes; + void active_jobs_changed (bool); + + wxNotebook* _notebook; + wxPanel* _film_panel; + wxSizer* _film_sizer; + wxPanel* _content_panel; + wxSizer* _content_sizer; + wxPanel* _video_panel; + wxSizer* _video_sizer; + wxPanel* _audio_panel; + wxSizer* _audio_sizer; + wxPanel* _subtitle_panel; + wxSizer* _subtitle_sizer; /** The film we are editing */ - Film* _film; + boost::shared_ptr _film; /** The Film's name */ wxTextCtrl* _name; wxStaticText* _dcp_name; wxCheckBox* _use_dci_name; + wxListCtrl* _content; + wxButton* _content_add; + wxButton* _content_remove; + wxButton* _content_earlier; + wxButton* _content_later; wxButton* _edit_dci_button; - /** The Film's format */ - wxComboBox* _format; - /** The Film's content file */ - wxFilePickerCtrl* _content; - /** The Film's left crop */ + wxChoice* _format; + wxStaticText* _format_description; + wxCheckBox* _trust_content_header; wxSpinCtrl* _left_crop; - /** The Film's right crop */ wxSpinCtrl* _right_crop; - /** The Film's top crop */ wxSpinCtrl* _top_crop; - /** The Film's bottom crop */ wxSpinCtrl* _bottom_crop; - /** Currently-applied filters */ wxStaticText* _filters; - /** Button to open the filters dialogue */ wxButton* _filters_button; - /** The Film's scaler */ - wxComboBox* _scaler; - wxComboBox* _audio_stream; - /** The Film's audio gain */ + wxChoice* _scaler; wxSpinCtrl* _audio_gain; - /** A button to open the gain calculation dialogue */ wxButton* _audio_gain_calculate_button; - /** The Film's audio delay */ + wxButton* _show_audio; wxSpinCtrl* _audio_delay; wxCheckBox* _with_subtitles; - wxComboBox* _subtitle_stream; + wxChoice* _ffmpeg_subtitle_stream; wxSpinCtrl* _subtitle_offset; wxSpinCtrl* _subtitle_scale; - /** The Film's DCP content type */ - wxComboBox* _dcp_content_type; - /** The Film's frames per second */ - wxStaticText* _frames_per_second; - /** The Film's original size */ + wxChoice* _colour_lut; + wxSpinCtrl* _j2k_bandwidth; + wxChoice* _dcp_content_type; + wxStaticText* _source_frame_rate; + wxChoice* _dcp_frame_rate; + wxButton* _best_dcp_frame_rate; + wxStaticText* _frame_rate_description; wxStaticText* _original_size; - /** The Film's length */ wxStaticText* _length; /** The Film's audio details */ wxStaticText* _audio; - /** The Film's duration for still sources */ - wxSpinCtrl* _still_duration; - /** Display of the range of frames that will be used */ - wxStaticText* _dcp_range; - /** Button to change the range */ - wxButton* _change_dcp_range_button; + wxSpinCtrl* _trim_start; + wxSpinCtrl* _trim_end; /** Selector to generate an A/B comparison DCP */ wxCheckBox* _dcp_ab; - std::list _video_controls; - std::list _still_controls; - std::vector _formats; - wxSizer* _sizer; + bool _generally_sensitive; + AudioDialog* _audio_dialog; };