Subversion Repositories svn.mios32

Rev

Rev 2289 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2289 Rev 2557
Line 1... Line 1...
1
// $Id: mbng_enc.c 2289 2016-02-07 21:13:49Z tk $
1
// $Id: mbng_enc.c 2557 2018-01-06 21:13:08Z tk $
2
//! \defgroup MBNG_ENC
2
//! \defgroup MBNG_ENC
3
//! Encoder access functions for MIDIbox NG
3
//! Encoder access functions for MIDIbox NG
4
//! \{
4
//! \{
5
/* ==========================================================================
5
/* ==========================================================================
6
 *
6
 *
Line 224... Line 224...
224
      item.value = event_incrementer > 0 ? 0x01 : 0x41;
224
      item.value = event_incrementer > 0 ? 0x01 : 0x41;
225
      break;
225
      break;
226
226
227
    default: { // MBNG_EVENT_ENC_MODE_ABSOLUTE
227
    default: { // MBNG_EVENT_ENC_MODE_ABSOLUTE
228
      s32 ix_updated;
228
      s32 ix_updated;
229
      s32 prev_value = item.value;
229
      s16 prev_value = item.value;
230
      if( (ix_updated=MBNG_EVENT_MapItemValueInc(item.map, &item, event_incrementer, 0)) >= 0 ) {
230
      if( (ix_updated=MBNG_EVENT_MapItemValueInc(item.map, &item, event_incrementer, 0)) >= 0 ) {
231
    dont_send = (prev_value == item.value) && !ix_updated;
231
    dont_send = (prev_value == item.value) && !ix_updated;
232
      } else {
232
      } else {
233
    s32 value = item.value;
233
    s16 value = item.value;
234
    if( item.min <= item.max ) {
234
    if( item.min <= item.max ) {
235
      value += event_incrementer;
235
      value += event_incrementer;
236
      if( value < item.min )
236
      if( value < item.min )
237
        value = item.min;
237
        value = item.min;
238
      else if( value > item.max )
238
      else if( value > item.max )
Line 240... Line 240...
240
    } else {
240
    } else {
241
      // reversed range
241
      // reversed range
242
      value -= event_incrementer;
242
      value -= event_incrementer;
243
      if( value < item.max )
243
      if( value < item.max )
244
        value = item.max;
244
        value = item.max;
245
      else if( value > item.min )
245
      else if( value > (s32)item.min )
246
        value = item.min;
246
        value = item.min;
247
    }
247
    }
248
248
249
    item.value = value;
249
    item.value = value;
250
250