X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Faudio_mapping_view.h;h=4210d755493de61d39e54a8f7756e8a2cb5102e0;hb=edab06d1ccc37662c5f0c75efada11771f69a435;hp=76e20ad9a2aef424783bdc7c9e5d7f15c770638d;hpb=237a0052c60af768f4d62b00321932918b7ba4d9;p=dcpomatic.git diff --git a/src/wx/audio_mapping_view.h b/src/wx/audio_mapping_view.h index 76e20ad9a..4210d7554 100644 --- a/src/wx/audio_mapping_view.h +++ b/src/wx/audio_mapping_view.h @@ -1,7 +1,5 @@ -/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */ - /* - Copyright (C) 2013 Carl Hetherington + Copyright (C) 2013-2015 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,23 +17,62 @@ */ +/** @file src/wx/audio_mapping_view.h + * @brief AudioMappingView class. + * + */ + #include #include #include #include "lib/audio_mapping.h" +/** @class AudioMappingView + * @brief This class displays the mapping of one set of audio channels to another, + * with gain values on each node of the map. + * + * The AudioMapping passed to set() describes the actual channel mapping, + * and the names passed to set_input_channels() and set_output_channels() are + * used to label the rows and columns. + * + * The display's row count is equal to the AudioMapping's input channel count, + * and the column count is equal to the number of name passed to + * set_output_channels(). Any other output channels in the AudioMapping are + * hidden from view. Thus input channels are never hidden but output channels + * might be. + */ + class AudioMappingView : public wxPanel { public: AudioMappingView (wxWindow *); - void set_mapping (AudioMapping); + void set (AudioMapping); + void set_input_channels (std::vector const & names); + void set_output_channels (std::vector const & names); boost::signals2::signal Changed; private: void left_click (wxGridEvent &); + void right_click (wxGridEvent &); + void mouse_moved (wxMouseEvent &); + void update_cells (); + void map_values_changed (); + + void off (); + void full (); + void minus6dB (); + void edit (); wxGrid* _grid; wxSizer* _sizer; + AudioMapping _map; + + wxMenu* _menu; + int _menu_row; + int _menu_column; + + int _last_tooltip_row; + int _last_tooltip_column; };