16eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li/*
26eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * Copyright (C) 2010 The Android Open Source Project
36eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li *
46eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * Licensed under the Apache License, Version 2.0 (the "License");
56eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * you may not use this file except in compliance with the License.
66eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * You may obtain a copy of the License at
76eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li *
86eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li *      http://www.apache.org/licenses/LICENSE-2.0
96eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li *
106eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * Unless required by applicable law or agreed to in writing, software
116eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * distributed under the License is distributed on an "AS IS" BASIS,
126eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * See the License for the specific language governing permissions and
146eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li * limitations under the License.
156eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li */
166eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li
176eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Lipackage com.android.camera;
186eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li
196eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Liimport android.util.Log;
206eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li
216eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Lipublic class CameraErrorCallback
226eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li        implements android.hardware.Camera.ErrorCallback {
236eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li    private static final String TAG = "CameraErrorCallback";
246eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li
256eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li    public void onError(int error, android.hardware.Camera camera) {
266eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li        Log.e(TAG, "Got camera error callback. error=" + error);
276eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li        if (error == android.hardware.Camera.CAMERA_ERROR_SERVER_DIED) {
286eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li            // We are not sure about the current state of the app (in preview or
296eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li            // snapshot or recording). Closing the app is better than creating a
306eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li            // new Camera object.
316eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li            throw new RuntimeException("Media server died.");
326eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li        }
336eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li    }
346eabb9b770a7c60cb92aa2e22f360754f32f39f8Wu-cheng Li}
35