X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fdcp_panel.h;h=849fe185cf836bc588428c9308dd928db014226b;hb=d5f5a9d9f5635f84a5e372181dea1c7cbb0ae732;hp=dc5e9bcbf4f25bdda64d9c66679e34410c9db462;hpb=689fa55d1529ad88449ca464e9107c4dcc54d1cb;p=dcpomatic.git diff --git a/src/wx/dcp_panel.h b/src/wx/dcp_panel.h index dc5e9bcbf..849fe185c 100644 --- a/src/wx/dcp_panel.h +++ b/src/wx/dcp_panel.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2021 Carl Hetherington + Copyright (C) 2012-2022 Carl Hetherington This file is part of DCP-o-matic. @@ -19,16 +19,18 @@ */ +#include "wx_ptr.h" #include "lib/config.h" -#include "lib/film.h" +#include "lib/film_property.h" +class Button; +class CheckBox; class wxNotebook; class wxPanel; class wxBoxSizer; class wxTextCtrl; class wxStaticText; -class wxCheckBox; class wxChoice; class wxButton; class wxSpinCtrl; @@ -36,18 +38,18 @@ class wxSizer; class wxGridBagSizer; class AudioDialog; -class MarkersDialog; -class InteropMetadataDialog; -class SMPTEMetadataDialog; +class Choice; class Film; class FilmViewer; +class InteropMetadataDialog; +class MarkersDialog; class Ratio; - +class SMPTEMetadataDialog; class DCPPanel { public: - DCPPanel (wxNotebook *, std::shared_ptr, std::weak_ptr viewer); + DCPPanel(wxNotebook *, std::shared_ptr, FilmViewer& viewer); DCPPanel (DCPPanel const&) = delete; DCPPanel& operator= (DCPPanel const&) = delete; @@ -55,7 +57,7 @@ public: void set_film (std::shared_ptr); void set_general_sensitivity (bool); - void film_changed (Film::Property); + void film_changed(FilmProperty); void film_content_changed (int); wxPanel* panel () const { @@ -85,6 +87,9 @@ private: void markers_clicked (); void metadata_clicked (); void reencode_j2k_changed (); + void enable_audio_language_toggled (); + void edit_audio_language_clicked (); + void audio_sample_rate_changed (); void setup_frame_rate_widget (); void setup_container (); @@ -93,6 +98,8 @@ private: void add_video_panel_to_grid (); void add_audio_panel_to_grid (); void add_audio_processors (); + void add_standards(); + void set_standard(); int minimum_allowed_audio_channels () const; @@ -114,35 +121,40 @@ private: wxStaticText* _name_label; wxTextCtrl* _name; wxStaticText* _dcp_name; - wxCheckBox* _use_isdcf_name; + CheckBox* _use_isdcf_name; + CheckBox* _enable_audio_language = nullptr; + wxStaticText* _audio_language = nullptr; + Button* _edit_audio_language = nullptr; wxStaticText* _container_label; - wxChoice* _container; + Choice* _container; wxStaticText* _container_size; wxButton* _copy_isdcf_name_button; wxStaticText* _j2k_bandwidth_label; wxStaticText* _mbits_label; wxSpinCtrl* _j2k_bandwidth; wxStaticText* _dcp_content_type_label; - wxChoice* _dcp_content_type; + Choice* _dcp_content_type; wxStaticText* _frame_rate_label; - wxChoice* _frame_rate_choice; + Choice* _frame_rate_choice; wxSpinCtrl* _frame_rate_spin; wxSizer* _frame_rate_sizer; wxStaticText* _channels_label; - wxChoice* _audio_channels; + Choice* _audio_channels; + wxStaticText* _audio_sample_rate_label = nullptr; + wxChoice* _audio_sample_rate = nullptr; wxStaticText* _processor_label; - wxChoice* _audio_processor; + Choice* _audio_processor; wxButton* _show_audio; wxButton* _best_frame_rate; - wxCheckBox* _three_d; - wxCheckBox* _reencode_j2k; + CheckBox* _three_d; + CheckBox* _reencode_j2k; wxStaticText* _resolution_label; - wxChoice* _resolution; + Choice* _resolution; wxStaticText* _standard_label; - wxChoice* _standard; - wxCheckBox* _encrypted; + Choice* _standard; + CheckBox* _encrypted; wxStaticText* _reels_label; - wxChoice* _reel_type; + Choice* _reel_type; wxStaticText* _reel_length_label; wxStaticText* _reel_length_gb_label; wxSpinCtrl* _reel_length; @@ -150,12 +162,12 @@ private: wxButton* _metadata; wxSizer* _audio_panel_sizer; - AudioDialog* _audio_dialog = nullptr; - MarkersDialog* _markers_dialog = nullptr; - InteropMetadataDialog* _interop_metadata_dialog = nullptr; - SMPTEMetadataDialog* _smpte_metadata_dialog = nullptr; + wx_ptr _audio_dialog; + wx_ptr _markers_dialog; + wx_ptr _interop_metadata_dialog; + wx_ptr _smpte_metadata_dialog; std::shared_ptr _film; - std::weak_ptr _viewer; + FilmViewer& _viewer; bool _generally_sensitive; };