mphtogen.c revision b0ab2dee391dd2cb257faeaba252ee6ecccc5f03
1b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten/* 2b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten * Copyright (C) 2010 The Android Open Source Project 3b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten * 4b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten * Licensed under the Apache License, Version 2.0 (the "License"); 5b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten * you may not use this file except in compliance with the License. 6b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten * You may obtain a copy of the License at 7b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten * 8b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten * http://www.apache.org/licenses/LICENSE-2.0 9b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten * 10b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten * Unless required by applicable law or agreed to in writing, software 11b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten * distributed under the License is distributed on an "AS IS" BASIS, 12b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten * See the License for the specific language governing permissions and 14b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten * limitations under the License. 15b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten */ 16b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten 17b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten// Generate the MPH_to_*.h tables for C compilers that don't support designated initializers 18b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten 19b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten#include <assert.h> 20b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten#include <stdio.h> 21b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten#include <stdlib.h> 22b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten#include "MPH.h" 23b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten#include "MPH_to.h" 24b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten 25b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kastenstatic void convert(const signed char MPH_to[MPH_MAX], const char *filename) 26b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten{ 27b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten FILE *fp = fopen(filename, "w"); 28b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten assert(NULL != fp); 29b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten fputs("// This file is automagically generated by mphtogen, do not edit\n", fp); 30b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten unsigned i; 31b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten unsigned len = 0; 32b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten for (i = 0; i < MPH_MAX; ++i) { 33b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten if (len > 0) { 34b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten fputc(',', fp); 35b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten ++len; 36b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten } 37b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten if (len > 78) { 38b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten fputc('\n', fp); 39b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten len = 0; 40b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten } 41b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten fprintf(fp, "%3d", MPH_to[i]); 42b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten len += 3; 43b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten } 44b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten if (len > 0) { 45b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten fputc('\n', fp); 46b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten } 47b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten fclose(fp); 48b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten} 49b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten 50b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten#define _(x) convert(MPH_to_##x, "../../libopensles/MPH_to_" #x ".h"); 51b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten 52b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kastenint main(int argc, char **argv) 53b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten{ 54b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten _(3DGroup) 55b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten _(AudioPlayer) 56b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten _(AudioRecorder) 57b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten _(Engine) 58b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten _(LEDDevice) 59b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten _(Listener) 60b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten _(MetadataExtractor) 61b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten _(MidiPlayer) 62b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten _(OutputMix) 63b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten _(Vibra) 64b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten return EXIT_SUCCESS; 65b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten} 66