/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #define LOG_TAG "BootAnimation" #include #include #include #include #include #include #include #include #include #include "BootAnimation.h" #include "BootAnimationUtil.h" #include "audioplay.h" using namespace android; int main() { //HUANGLONG begin //support bootvide||bootanimation char bootop[PROPERTY_VALUE_MAX]; property_get("service.bootop.type", bootop, "bootanim"); if(strncmp(bootop, "bootanim", strlen("bootanim")) != 0) { ALOGV("bootop %s enabled", bootop); return 0; } //HUANGLONG end setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_DISPLAY); bool noBootAnimation = bootAnimationDisabled(); ALOGI_IF(noBootAnimation, "boot animation disabled"); if (!noBootAnimation) { sp proc(ProcessState::self()); ProcessState::self()->startThreadPool(); // create the boot animation object (may take up to 200ms for 2MB zip) sp boot = new BootAnimation(audioplay::createAnimationCallbacks()); waitForSurfaceFlinger(); boot->run("BootAnimation", PRIORITY_DISPLAY); ALOGV("Boot animation set up. Joining pool."); IPCThreadState::self()->joinThreadPool(); } return 0; }