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