X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fdcp_panel.h;h=9da7a692989074821dacd99114e9d5071ea99b65;hb=f984990795e548e2c4160d17d0fa54a40c8b1311;hp=ab4e7f1d3cbc0cc9b033dee4955d0c9fd95c05de;hpb=d71b3fffa09263a2116b3f91981c1999b4ae873c;p=dcpomatic.git diff --git a/src/wx/dcp_panel.h b/src/wx/dcp_panel.h index ab4e7f1d3..9da7a6929 100644 --- a/src/wx/dcp_panel.h +++ b/src/wx/dcp_panel.h @@ -1,25 +1,29 @@ /* - Copyright (C) 2012-2014 Carl Hetherington + Copyright (C) 2012-2021 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ -#include -#include +#include "lib/config.h" +#include "lib/film.h" + + +class Button; class wxNotebook; class wxPanel; class wxBoxSizer; @@ -30,20 +34,29 @@ class wxChoice; class wxButton; class wxSpinCtrl; class wxSizer; +class wxGridBagSizer; class AudioDialog; - +class MarkersDialog; +class InteropMetadataDialog; +class SMPTEMetadataDialog; class Film; +class FilmViewer; +class Ratio; + -class DCPPanel : public boost::noncopyable +class DCPPanel { public: - DCPPanel (wxNotebook *, boost::shared_ptr); + DCPPanel (wxNotebook *, std::shared_ptr, std::weak_ptr viewer); + + DCPPanel (DCPPanel const&) = delete; + DCPPanel& operator= (DCPPanel const&) = delete; - void set_film (boost::shared_ptr); + void set_film (std::shared_ptr); void set_general_sensitivity (bool); - void film_changed (int); + void film_changed (Film::Property); void film_content_changed (int); wxPanel* panel () const { @@ -53,7 +66,6 @@ public: private: void name_changed (); void use_isdcf_name_toggled (); - void edit_isdcf_button_clicked (); void copy_isdcf_name_button_clicked (); void container_changed (); void dcp_content_type_changed (); @@ -66,55 +78,90 @@ private: void resolution_changed (); void three_d_changed (); void standard_changed (); - void signed_toggled (); - void burn_subtitles_toggled (); void encrypted_toggled (); - void edit_key_clicked (); void audio_processor_changed (); void show_audio_clicked (); - + void reel_type_changed (); + void reel_length_changed (); + void markers_clicked (); + void metadata_clicked (); + void reencode_j2k_changed (); + void enable_audio_language_toggled (); + void edit_audio_language_clicked (); + void setup_frame_rate_widget (); void setup_container (); void setup_dcp_name (); - void setup_audio_channels_choice (); + void add_to_grid (); + void add_video_panel_to_grid (); + void add_audio_panel_to_grid (); + void add_audio_processors (); + + int minimum_allowed_audio_channels () const; wxPanel* make_general_panel (); wxPanel* make_video_panel (); wxPanel* make_audio_panel (); - void config_changed (); + void config_changed (Config::Property p); + + void setup_sensitivity (); wxPanel* _panel; wxNotebook* _notebook; wxBoxSizer* _sizer; + wxGridBagSizer* _grid; + wxGridBagSizer* _video_grid; + wxGridBagSizer* _audio_grid; + wxStaticText* _name_label; wxTextCtrl* _name; wxStaticText* _dcp_name; wxCheckBox* _use_isdcf_name; + wxCheckBox* _enable_audio_language = nullptr; + wxStaticText* _audio_language = nullptr; + Button* _edit_audio_language = nullptr; + wxStaticText* _container_label; wxChoice* _container; wxStaticText* _container_size; - wxButton* _edit_isdcf_button; wxButton* _copy_isdcf_name_button; + wxStaticText* _j2k_bandwidth_label; + wxStaticText* _mbits_label; wxSpinCtrl* _j2k_bandwidth; + wxStaticText* _dcp_content_type_label; wxChoice* _dcp_content_type; + wxStaticText* _frame_rate_label; wxChoice* _frame_rate_choice; wxSpinCtrl* _frame_rate_spin; wxSizer* _frame_rate_sizer; + wxStaticText* _channels_label; wxChoice* _audio_channels; + wxStaticText* _processor_label; wxChoice* _audio_processor; wxButton* _show_audio; wxButton* _best_frame_rate; wxCheckBox* _three_d; + wxCheckBox* _reencode_j2k; + wxStaticText* _resolution_label; wxChoice* _resolution; + wxStaticText* _standard_label; wxChoice* _standard; - wxCheckBox* _signed; - wxCheckBox* _burn_subtitles; wxCheckBox* _encrypted; - wxStaticText* _key; - wxButton* _edit_key; - - AudioDialog* _audio_dialog; - - boost::shared_ptr _film; + wxStaticText* _reels_label; + wxChoice* _reel_type; + wxStaticText* _reel_length_label; + wxStaticText* _reel_length_gb_label; + wxSpinCtrl* _reel_length; + wxButton* _markers; + wxButton* _metadata; + wxSizer* _audio_panel_sizer; + + AudioDialog* _audio_dialog = nullptr; + MarkersDialog* _markers_dialog = nullptr; + InteropMetadataDialog* _interop_metadata_dialog = nullptr; + SMPTEMetadataDialog* _smpte_metadata_dialog = nullptr; + + std::shared_ptr _film; + std::weak_ptr _viewer; bool _generally_sensitive; };