/[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 3409 by schoenebeck, Tue Jan 23 16:30:56 2018 UTC revision 3458 by persson, Thu Jan 31 18:43:09 2019 UTC
# Line 1  Line 1 
1  /*                                                         -*- c++ -*-  /*                                                         -*- c++ -*-
2   * Copyright (C) 2006-2017 Andreas Persson   * Copyright (C) 2006-2019 Andreas Persson
3   *   *
4   * This program is free software; you can redistribute it and/or   * This program is free software; you can redistribute it and/or
5   * modify it under the terms of the GNU General Public License as   * modify it under the terms of the GNU General Public License as
# Line 220  protected: Line 220  protected:
220      NumEntryTemp<uint8_t> eCrossfade_out_start;      NumEntryTemp<uint8_t> eCrossfade_out_start;
221      NumEntryTemp<uint8_t> eCrossfade_out_end;      NumEntryTemp<uint8_t> eCrossfade_out_end;
222      BoolEntry ePitchTrack;      BoolEntry ePitchTrack;
223        ChoiceEntry<gig::sust_rel_trg_t> eSustainReleaseTrigger;
224        BoolEntry eNoNoteOffReleaseTrigger;
225      ChoiceEntry<gig::dim_bypass_ctrl_t> eDimensionBypass;      ChoiceEntry<gig::dim_bypass_ctrl_t> eDimensionBypass;
226      NumEntryTemp<int8_t> ePan;      NumEntryTemp<int8_t> ePan;
227      BoolEntry eSelfMask;      BoolEntry eSelfMask;
# Line 290  protected: Line 292  protected:
292    
293      int update_model;      int update_model;
294    
     /**  
      * Workaround for the circumstance that C++ does not allow to cast to  
      * member pointers.  
      */  
     template<typename classT, typename memberT>  
     union ClassMemberPtr {  
         memberT classT::*pmember;  
         void* pvoid;  
   
         ClassMemberPtr(size_t s) : pvoid((void*)s) {}  
         ClassMemberPtr(void* p) : pvoid(p) {}  
     };  
   
295      // connect a widget to a setter function in DimRegionEdit      // connect a widget to a setter function in DimRegionEdit
296      template<typename C, typename T>      template<typename C, typename T>
297      void connect(C& widget,      void connect(C& widget,
# Line 318  protected: Line 307  protected:
307                        sigc::bind(sigc::mem_fun(&DimRegionEdit::set_member<T>), member));                        sigc::bind(sigc::mem_fun(&DimRegionEdit::set_member<T>), member));
308      }      }
309    
310        // connect a widget to a member of a struct member in gig::DimensionRegion
311        template<typename C, typename T, typename S>
312        void connect(C& widget, S gig::DimensionRegion::* member, T S::* member2) {
313            connect<C, T>(widget,
314                          sigc::bind(sigc::mem_fun(&DimRegionEdit::set_member<T, S>), member, member2));
315        }
316    
317      // connect a widget to a setter function in gig::DimensionRegion      // connect a widget to a setter function in gig::DimensionRegion
318      template<typename C, typename T>      template<typename C, typename T>
319      void connect(C& widget,      void connect(C& widget,
# Line 357  protected: Line 353  protected:
353          d->*member = value;          d->*member = value;
354      }      }
355    
356        // set a value of a member of a struct member variable in the given dimregion
357        template<typename T, typename S>
358        void set_member(gig::DimensionRegion* d, T value,
359                        S gig::DimensionRegion::* member, T S::* member2) {
360            d->*member.*member2 = value;
361        }
362    
363      // setters for specific dimregion parameters      // setters for specific dimregion parameters
364    
365      void set_UnityNote(gig::DimensionRegion* d, uint8_t value);      void set_UnityNote(gig::DimensionRegion* d, uint8_t value);

Legend:
Removed from v.3409  
changed lines
  Added in v.3458

  ViewVC Help
Powered by ViewVC