/[svn]/gigedit/trunk/src/gigedit/dimregionedit.h
ViewVC logotype

Diff of /gigedit/trunk/src/gigedit/dimregionedit.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1459 by schoenebeck, Sun Sep 30 18:30:52 2007 UTC revision 1460 by persson, Sat Oct 27 12:28:33 2007 UTC
# Line 28  Line 28 
28  #include <gtkmm/table.h>  #include <gtkmm/table.h>
29  #include <gtkmm/tooltips.h>  #include <gtkmm/tooltips.h>
30    
31    #include <set>
32    
33  #include "paramedit.h"  #include "paramedit.h"
34    
35  class DimRegionEdit : public Gtk::Notebook  class DimRegionEdit : public Gtk::Notebook
# Line 145  protected: Line 147  protected:
147      BoolEntry eSampleLoopInfinite;      BoolEntry eSampleLoopInfinite;
148      NumEntryTemp<uint32_t> eSampleLoopPlayCount;      NumEntryTemp<uint32_t> eSampleLoopPlayCount;
149    
     sigc::connection connection_eVCFCutoffController;  
     sigc::connection connection_eVCFVelocityCurve;  
     sigc::connection connection_eVCFVelocityScale;  
     sigc::connection connection_eVCFVelocityDynamicRange;  
     sigc::connection connection_eVelocityResponseCurve;  
     sigc::connection connection_eVelocityResponseDepth;  
     sigc::connection connection_eVelocityResponseCurveScaling;  
     sigc::connection connection_eReleaseVelocityResponseCurve;  
     sigc::connection connection_eReleaseVelocityResponseDepth;  
     sigc::connection connection_eGain;  
   
150      int rowno;      int rowno;
151      int pageno;      int pageno;
152      int firstRowInBlock;      int firstRowInBlock;
# Line 184  protected: Line 175  protected:
175      void crossfade2_changed();      void crossfade2_changed();
176      void crossfade3_changed();      void crossfade3_changed();
177      void crossfade4_changed();      void crossfade4_changed();
178      void loop_enabled_toggled();      void update_loop_elements();
179        void loop_start_changed();
180        void loop_length_changed();
181      void loop_infinite_toggled();      void loop_infinite_toggled();
182    
183      void updateLoopElements();      std::set<gig::DimensionRegion*> dimregs;
184    
185        int update_model;
186    
187        // connect a widget to a setter function in DimRegionEdit
188        template<typename C, typename T>
189        void connect(C& widget,
190                     void (DimRegionEdit::*setter)(gig::DimensionRegion*, T)) {
191            connect<C, T>(widget,
192                          sigc::mem_fun(setter));
193        }
194    
195        // connect a widget to a member variable in gig::DimensionRegion
196        template<typename C, typename T>
197        void connect(C& widget, T gig::DimensionRegion::* member) {
198            connect<C, T>(widget,
199                          sigc::bind(sigc::mem_fun(&DimRegionEdit::set_member<T>), member));
200        }
201    
202        // connect a widget to a setter function in gig::DimensionRegion
203        template<typename C, typename T>
204        void connect(C& widget,
205                     void (gig::DimensionRegion::*setter)(T)) {
206            connect<C, T>(widget,
207                          sigc::hide<0>(sigc::mem_fun(setter)));
208        }
209    
210        // helper function for the connect functions above
211        template<typename C, typename T>
212        void connect(C& widget,
213                     sigc::slot<void, DimRegionEdit*, gig::DimensionRegion*, T> setter) {
214            widget.signal_value_changed().connect(
215                sigc::compose(sigc::bind(sigc::mem_fun(*this, &DimRegionEdit::set_many<T>), setter),
216                              sigc::mem_fun(widget, &C::get_value)));
217        }
218    
219        // loop through all dimregions being edited ant set a value in
220        // each of them
221        template<typename T>
222        void set_many(T value,
223                      sigc::slot<void, DimRegionEdit*, gig::DimensionRegion*, T> setter) {
224            if (update_model == 0) {
225                for (std::set<gig::DimensionRegion*>::iterator i = dimregs.begin() ;
226                     i != dimregs.end() ; i++)
227                {
228                    dimreg_changed_signal(*i);
229                    setter(this, *i, value);
230                }
231            }
232        }
233    
234        // set a value of a member variable in the given dimregion
235        template<typename T>
236        void set_member(gig::DimensionRegion* d, T value,
237                        T gig::DimensionRegion::* member) {
238            d->*member = value;
239        }
240    
241        // setters for specific dimregion parameters
242    
243        void set_UnityNote(gig::DimensionRegion* d, uint8_t value);
244        void set_FineTune(gig::DimensionRegion* d, int16_t value);
245        void set_Crossfade_in_start(gig::DimensionRegion* d, uint8_t value);
246        void set_Crossfade_in_end(gig::DimensionRegion* d, uint8_t value);
247        void set_Crossfade_out_start(gig::DimensionRegion* d, uint8_t value);
248        void set_Crossfade_out_end(gig::DimensionRegion* d, uint8_t value);
249        void set_Gain(gig::DimensionRegion* d, int32_t value);
250        void set_LoopEnabled(gig::DimensionRegion* d, bool value);
251        void set_LoopType(gig::DimensionRegion* d, uint32_t value);
252        void set_LoopStart(gig::DimensionRegion* d, uint32_t value);
253        void set_LoopLength(gig::DimensionRegion* d, uint32_t value);
254        void set_LoopInfinite(gig::DimensionRegion* d, bool value);
255        void set_LoopPlayCount(gig::DimensionRegion* d, uint32_t value);
256  };  };
257    
258  #endif  #endif

Legend:
Removed from v.1459  
changed lines
  Added in v.1460

  ViewVC Help
Powered by ViewVC