aubio  0.4.1
utils/parameter.h
Go to the documentation of this file.
00001 /*
00002   Copyright (C) 2003-2013 Paul Brossier <piem@aubio.org>
00003 
00004   This file is part of aubio.
00005 
00006   aubio is free software: you can redistribute it and/or modify
00007   it under the terms of the GNU General Public License as published by
00008   the Free Software Foundation, either version 3 of the License, or
00009   (at your option) any later version.
00010 
00011   aubio is distributed in the hope that it will be useful,
00012   but WITHOUT ANY WARRANTY; without even the implied warranty of
00013   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014   GNU General Public License for more details.
00015 
00016   You should have received a copy of the GNU General Public License
00017   along with aubio.  If not, see <http://www.gnu.org/licenses/>.
00018 
00019 */
00020 
00021 #ifndef _AUBIO_PARAMETER_H
00022 #define _AUBIO_PARAMETER_H
00023 
00024 /** \file
00025 
00026   Parameter with linear interpolation
00027 
00028   This object manages a parameter, with minimum and maximum values, and a
00029   number of steps to compute linear interpolation between two values.
00030 
00031   \example utils/test-parameter.c
00032 
00033 */
00034 
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038 
00039 /** parameter object */
00040 typedef struct _aubio_parameter_t aubio_parameter_t;
00041 
00042 /** create new parameter object
00043 
00044   \param min_value the minimum value of the new parameter
00045   \param max_value the maximum value of the new parameter
00046   \param steps the number of steps to interpolate from the old value to the target value
00047 
00048   \return the newly created ::aubio_parameter_t
00049 
00050 */
00051 aubio_parameter_t * new_aubio_parameter(smpl_t min_value, smpl_t max_value, uint_t steps);
00052 
00053 /** set target value of the parameter
00054 
00055   \param param parameter, created by ::new_aubio_parameter
00056   \param value new target value
00057 
00058   \return 0 if successful, 1 otherwise
00059 
00060 */
00061 uint_t aubio_parameter_set_target_value ( aubio_parameter_t * param, smpl_t value );
00062 
00063 /** get next parameter 
00064 
00065   \param param parameter, created by ::new_aubio_parameter
00066 
00067   \return new interpolated parameter value
00068 
00069 */
00070 smpl_t aubio_parameter_get_next_value ( aubio_parameter_t * param );
00071 
00072 /** get current parameter value, without interpolation
00073 
00074   \param param parameter, created by ::new_aubio_parameter
00075 
00076   \return current value
00077 
00078 */
00079 smpl_t aubio_parameter_get_current_value ( aubio_parameter_t * param );
00080 
00081 /** set current parameter value, skipping interpolation
00082 
00083   \param param parameter, created by ::new_aubio_parameter
00084   \param value new parameter value
00085 
00086   \return 0 if successful, 1 otherwise
00087 
00088 */
00089 uint_t aubio_parameter_set_current_value ( aubio_parameter_t * param, smpl_t value );
00090 
00091 /** set number of steps used for interpolation
00092 
00093   \param param parameter, created by ::new_aubio_parameter
00094   \param steps new number of steps
00095 
00096   \return 0 if successful, 1 otherwise
00097 
00098 */
00099 uint_t aubio_parameter_set_steps ( aubio_parameter_t * param, uint_t steps );
00100 
00101 /** get number of steps of this parameter
00102 
00103   \param param parameter, created by ::new_aubio_parameter
00104 
00105   \return number of steps
00106 
00107 */
00108 uint_t aubio_parameter_get_steps ( aubio_parameter_t * param);
00109 
00110 /** set minimum value of this parameter
00111 
00112   \param param parameter, created by ::new_aubio_parameter
00113   \param min_value new minimum value
00114 
00115   \return 0 if successful, 1 otherwise
00116 
00117 */
00118 uint_t aubio_parameter_set_min_value ( aubio_parameter_t * param, smpl_t min_value );
00119 
00120 /** get minimum value of this parameter
00121 
00122   \param param parameter, created by ::new_aubio_parameter
00123 
00124   \return minimum value
00125 
00126 */
00127 smpl_t aubio_parameter_get_min_value ( aubio_parameter_t * param );
00128 
00129 /** set maximum value of this parameter
00130 
00131   \param param parameter, created by ::new_aubio_parameter
00132   \param max_value new maximum value
00133 
00134   \return 0 if successful, 1 otherwise
00135 
00136 */
00137 uint_t aubio_parameter_set_max_value ( aubio_parameter_t * param, smpl_t max_value );
00138 
00139 /** get maximum value of this parameter
00140 
00141   \param param parameter, created by ::new_aubio_parameter
00142 
00143   \return maximum value
00144 
00145 */
00146 smpl_t aubio_parameter_get_max_value ( aubio_parameter_t * param );
00147 
00148 /** destroy ::aubio_parameter_t object
00149 
00150   \param param parameter, created by ::new_aubio_parameter
00151 
00152 */
00153 void del_aubio_parameter( aubio_parameter_t * param );
00154 
00155 #ifdef __cplusplus
00156 }
00157 #endif
00158 
00159 #endif /* _AUBIO_PARAMETER_H */
 All Data Structures Files Functions Variables Typedefs Defines