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, |
298 |
void (DimRegionEdit::*setter)(gig::DimensionRegion*, T)) { |
void (DimRegionEdit::*setter)(gig::DimensionRegion&, T)) { |
299 |
connect<C, T>(widget, |
connect<C, T>(widget, |
300 |
sigc::mem_fun(setter)); |
sigc::mem_fun(setter)); |
301 |
} |
} |
325 |
// helper function for the connect functions above |
// helper function for the connect functions above |
326 |
template<typename C, typename T> |
template<typename C, typename T> |
327 |
void connect(C& widget, |
void connect(C& widget, |
328 |
sigc::slot<void, DimRegionEdit*, gig::DimensionRegion*, T> setter) { |
sigc::slot<void, DimRegionEdit&, gig::DimensionRegion&, T> setter) { |
329 |
widget.signal_value_changed().connect( |
widget.signal_value_changed().connect( |
330 |
sigc::compose(sigc::bind(sigc::mem_fun(*this, &DimRegionEdit::set_many<T>), setter), |
sigc::compose(sigc::bind(sigc::mem_fun(*this, &DimRegionEdit::set_many<T>), setter), |
331 |
sigc::mem_fun(widget, &C::get_value))); |
sigc::mem_fun(widget, &C::get_value))); |
335 |
// each of them |
// each of them |
336 |
template<typename T> |
template<typename T> |
337 |
void set_many(T value, |
void set_many(T value, |
338 |
sigc::slot<void, DimRegionEdit*, gig::DimensionRegion*, T> setter) { |
sigc::slot<void, DimRegionEdit&, gig::DimensionRegion&, T> setter) { |
339 |
if (update_model == 0) { |
if (update_model == 0) { |
340 |
for (std::set<gig::DimensionRegion*>::iterator i = dimregs.begin() ; |
for (std::set<gig::DimensionRegion*>::iterator i = dimregs.begin() ; |
341 |
i != dimregs.end() ; ++i) |
i != dimregs.end() ; ++i) |
342 |
{ |
{ |
343 |
DimRegionChangeGuard(this, *i); |
DimRegionChangeGuard(this, *i); |
344 |
setter(this, *i, value); |
setter(*this, **i, value); |
345 |
} |
} |
346 |
} |
} |
347 |
} |
} |
348 |
|
|
349 |
// set a value of a member variable in the given dimregion |
// set a value of a member variable in the given dimregion |
350 |
template<typename T> |
template<typename T> |
351 |
void set_member(gig::DimensionRegion* d, T value, |
void set_member(gig::DimensionRegion& d, T value, |
352 |
T gig::DimensionRegion::* member) { |
T gig::DimensionRegion::* member) { |
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 |
// set a value of a member of a struct member variable in the given dimregion |
357 |
template<typename T, typename S> |
template<typename T, typename S> |
358 |
void set_sub_member(gig::DimensionRegion* d, T value, |
void set_sub_member(gig::DimensionRegion& d, T value, |
359 |
S gig::DimensionRegion::* member, T S::* member2) { |
S gig::DimensionRegion::* member, T S::* member2) { |
360 |
d->*member.*member2 = value; |
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); |
366 |
void set_FineTune(gig::DimensionRegion* d, int16_t value); |
void set_FineTune(gig::DimensionRegion& d, int16_t value); |
367 |
void set_Crossfade_in_start(gig::DimensionRegion* d, uint8_t value); |
void set_Crossfade_in_start(gig::DimensionRegion& d, uint8_t value); |
368 |
void set_Crossfade_in_end(gig::DimensionRegion* d, uint8_t value); |
void set_Crossfade_in_end(gig::DimensionRegion& d, uint8_t value); |
369 |
void set_Crossfade_out_start(gig::DimensionRegion* d, uint8_t value); |
void set_Crossfade_out_start(gig::DimensionRegion& d, uint8_t value); |
370 |
void set_Crossfade_out_end(gig::DimensionRegion* d, uint8_t value); |
void set_Crossfade_out_end(gig::DimensionRegion& d, uint8_t value); |
371 |
void set_Gain(gig::DimensionRegion* d, int32_t value); |
void set_Gain(gig::DimensionRegion& d, int32_t value); |
372 |
void set_LoopEnabled(gig::DimensionRegion* d, bool value); |
void set_LoopEnabled(gig::DimensionRegion& d, bool value); |
373 |
void set_LoopType(gig::DimensionRegion* d, uint32_t value); |
void set_LoopType(gig::DimensionRegion& d, uint32_t value); |
374 |
void set_LoopStart(gig::DimensionRegion* d, uint32_t value); |
void set_LoopStart(gig::DimensionRegion& d, uint32_t value); |
375 |
void set_LoopLength(gig::DimensionRegion* d, uint32_t value); |
void set_LoopLength(gig::DimensionRegion& d, uint32_t value); |
376 |
void set_LoopInfinite(gig::DimensionRegion* d, bool value); |
void set_LoopInfinite(gig::DimensionRegion& d, bool value); |
377 |
void set_LoopPlayCount(gig::DimensionRegion* d, uint32_t value); |
void set_LoopPlayCount(gig::DimensionRegion& d, uint32_t value); |
378 |
|
|
379 |
void onButtonSelectSamplePressed(); |
void onButtonSelectSamplePressed(); |
380 |
}; |
}; |