summaryrefslogtreecommitdiff
path: root/tests/src/utils/test-parameter.c
blob: 073d9c3cdebc84fac55483c2b211ffba158b76ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <aubio.h>
#include "utils_tests.h"

void get_some_steps ( aubio_parameter_t * param );

void get_some_steps ( aubio_parameter_t * param )
{
  uint_t i = 0;
  uint_t steps = aubio_parameter_get_steps ( param );

  PRINT_MSG("next steps (%d) values:", steps );
  for (i = 0; i < steps; i ++ ) {
    PRINT_MSG(" %f", aubio_parameter_get_next_value (param) );
  }
  PRINT_MSG("\n");

  PRINT_MSG("next 3 values:");
  for (i = 0; i < 3; i ++ ) {
    PRINT_MSG(" %f", aubio_parameter_get_next_value (param) );
  }
  PRINT_MSG("\n");

}

int main (void)
{
  smpl_t max_value = 100.;
  smpl_t min_value = 0.;
  uint_t steps = 10;

  aubio_parameter_t * param = new_aubio_parameter ( min_value, max_value, steps );

  PRINT_MSG("initial value: %f, steps: %d\n", aubio_parameter_get_current_value
      (param) , aubio_parameter_get_steps (param) );

  PRINT_MSG("target: max_value / 2\n");
  aubio_parameter_set_target_value ( param, max_value );
  get_some_steps ( param );

  PRINT_MSG("target: max_value / 2\n");
  aubio_parameter_set_target_value ( param, max_value / 2 );
  get_some_steps ( param );

  PRINT_MSG("target: max_value * 2\n");
  aubio_parameter_set_target_value ( param, max_value * 2);
  get_some_steps ( param );

  PRINT_MSG("steps: 1, target: -max\n");
  aubio_parameter_set_steps ( param, 1);
  aubio_parameter_set_target_value ( param, - max_value);
  get_some_steps ( param );

  PRINT_MSG("steps: 30, current value: max, target: min\n");
  aubio_parameter_set_current_value ( param, max_value );
  aubio_parameter_set_target_value ( param, min_value );
  aubio_parameter_set_steps ( param, 7 );
  get_some_steps ( param );

  PRINT_MSG("steps: 30, max value: max * 2, min value: -max, current value: -max, target: max\n");
  aubio_parameter_set_min_value ( param, - max_value );
  aubio_parameter_set_max_value ( param, 2. * max_value );
  aubio_parameter_set_current_value ( param, - max_value );
  aubio_parameter_set_target_value ( param, max_value );
  aubio_parameter_set_steps ( param, 10 );
  get_some_steps ( param );

  del_aubio_parameter (param);

  return 0;
}