From c04af18902322cea1bd05b6f01b7860ca7bfa432 Mon Sep 17 00:00:00 2001 From: Piotr Pawlow Date: Thu, 13 Mar 2014 20:51:31 +0100 Subject: - import version 0.9.1 from upstream --- src/lingot-config-scale.h | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/lingot-config-scale.h (limited to 'src/lingot-config-scale.h') diff --git a/src/lingot-config-scale.h b/src/lingot-config-scale.h new file mode 100644 index 0000000..781d02b --- /dev/null +++ b/src/lingot-config-scale.h @@ -0,0 +1,52 @@ +/* + * lingot, a musical instrument tuner. + * + * Copyright (C) 2004-2011 Ibán Cereijo Graña, Jairo Chapela Martínez. + * + * This file is part of lingot. + * + * lingot is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * lingot is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with lingot; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef LINGOT_CONFIG_SCALE_H_ +#define LINGOT_CONFIG_SCALE_H_ + +#include "lingot-defs.h" + +typedef struct _LingotScale LingotScale; + +struct _LingotScale { + char* name; // name of the scale + unsigned short int notes; // number of notes + FLT* offset_cents; // offset in cents + short int* offset_ratios[2]; // offset in ratios (pairs of integers) + FLT base_frequency; // frequency of the first note + char** note_name; // note names + + // -- internal parameters -- + + FLT max_offset_rounded; // round version of maximum offset in cents +}; + +LingotScale* lingot_config_scale_new(); +void lingot_config_scale_allocate(LingotScale* scale, unsigned short int notes); +void lingot_config_scale_destroy(LingotScale* scale); +int lingot_config_scale_load_scl(LingotScale* scale, char* filename); +int lingot_config_scale_parse_shift(char*, double*, short int*, short int*); +void lingot_config_scale_format_shift(char*, double, short int, short int); +void lingot_config_scale_copy(LingotScale* dst, LingotScale* src); +void lingot_config_scale_restore_default_values(LingotScale* scale); + +#endif /* LINGOT_CONFIG_SCALE_H_ */ -- cgit v1.2.3