1bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent/*
2bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent * Copyright (C) 2014 The Android Open Source Project
3bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent *
4bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent * Licensed under the Apache License, Version 2.0 (the "License");
5bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent * you may not use this file except in compliance with the License.
6bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent * You may obtain a copy of the License at
7bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent *
8bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent *      http://www.apache.org/licenses/LICENSE-2.0
9bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent *
10bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent * Unless required by applicable law or agreed to in writing, software
11bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent * distributed under the License is distributed on an "AS IS" BASIS,
12bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent * See the License for the specific language governing permissions and
14bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent * limitations under the License.
15bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent */
16bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent
17bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent#ifndef ANDROID_MEDIA_AUDIOERRORS_H
18bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent#define ANDROID_MEDIA_AUDIOERRORS_H
19bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent
20bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent#include <utils/Errors.h>
21bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent
22bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurentnamespace android {
23bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent// status codes used by JAVA APIs. Translation from native error codes is done by
24bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent// nativeToJavaStatus()
25bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent// must be kept in sync with values in
26bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent// frameworks/base/media/java/android/media/AudioSystem.java.
27bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurentenum {
28bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    AUDIO_JAVA_SUCCESS            = 0,
29bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    AUDIO_JAVA_ERROR              = -1,
30bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    AUDIO_JAVA_BAD_VALUE          = -2,
31bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    AUDIO_JAVA_INVALID_OPERATION  = -3,
32bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    AUDIO_JAVA_PERMISSION_DENIED  = -4,
33bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    AUDIO_JAVA_NO_INIT            = -5,
34bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    AUDIO_JAVA_DEAD_OBJECT        = -6,
35bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent};
36bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent
37bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurentstatic inline jint nativeToJavaStatus(status_t status) {
38bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    switch (status) {
39bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    case NO_ERROR:
40bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent        return AUDIO_JAVA_SUCCESS;
41bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    case BAD_VALUE:
42bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent        return AUDIO_JAVA_BAD_VALUE;
43bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    case INVALID_OPERATION:
44bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent        return AUDIO_JAVA_INVALID_OPERATION;
45bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    case PERMISSION_DENIED:
46bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent        return AUDIO_JAVA_PERMISSION_DENIED;
47bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    case NO_INIT:
48bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent        return AUDIO_JAVA_NO_INIT;
49bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    case DEAD_OBJECT:
50bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent        return AUDIO_JAVA_DEAD_OBJECT;
51bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    default:
52bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent        return AUDIO_JAVA_ERROR;
53bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent    }
54bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent}
55bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent}; // namespace android
56bc11a696f6856624de532a6830d5db9dbbe2384cEric Laurent#endif // ANDROID_MEDIA_AUDIOERRORS_H
57