Add a copy of the boot animation service
Will show a app specific icon on boot.
This commit is contained in:
parent
1879e634c5
commit
3ccf1d0424
4 changed files with 551 additions and 0 deletions
106
android/bootanimation/BootAnimation.h
Normal file
106
android/bootanimation/BootAnimation.h
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef ANDROID_BOOTANIMATION_H
|
||||
#define ANDROID_BOOTANIMATION_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <androidfw/AssetManager.h>
|
||||
#include <utils/Thread.h>
|
||||
|
||||
#include <EGL/egl.h>
|
||||
#include <GLES/gl.h>
|
||||
|
||||
class SkBitmap;
|
||||
|
||||
namespace android {
|
||||
|
||||
class Surface;
|
||||
class SurfaceComposerClient;
|
||||
class SurfaceControl;
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
class BootAnimation : public Thread, public IBinder::DeathRecipient
|
||||
{
|
||||
public:
|
||||
BootAnimation();
|
||||
virtual ~BootAnimation();
|
||||
|
||||
sp<SurfaceComposerClient> session() const;
|
||||
|
||||
private:
|
||||
virtual bool threadLoop();
|
||||
virtual status_t readyToRun();
|
||||
virtual void onFirstRef();
|
||||
virtual void binderDied(const wp<IBinder>& who);
|
||||
|
||||
struct Texture {
|
||||
GLint w;
|
||||
GLint h;
|
||||
GLuint name;
|
||||
};
|
||||
|
||||
struct Animation {
|
||||
struct Frame {
|
||||
String8 name;
|
||||
FileMap* map;
|
||||
mutable GLuint tid;
|
||||
bool operator < (const Frame& rhs) const {
|
||||
return name < rhs.name;
|
||||
}
|
||||
};
|
||||
struct Part {
|
||||
int count;
|
||||
int pause;
|
||||
String8 path;
|
||||
SortedVector<Frame> frames;
|
||||
bool playUntilComplete;
|
||||
float backgroundColor[3];
|
||||
FileMap* audioFile;
|
||||
};
|
||||
int fps;
|
||||
int width;
|
||||
int height;
|
||||
Vector<Part> parts;
|
||||
};
|
||||
|
||||
status_t initTexture(Texture* texture, void *buffer, size_t size);
|
||||
bool android();
|
||||
bool movie();
|
||||
|
||||
void checkExit();
|
||||
|
||||
sp<SurfaceComposerClient> mSession;
|
||||
AssetManager mAssets;
|
||||
Texture mAndroid[2];
|
||||
int mWidth;
|
||||
int mHeight;
|
||||
EGLDisplay mDisplay;
|
||||
EGLDisplay mContext;
|
||||
EGLDisplay mSurface;
|
||||
sp<SurfaceControl> mFlingerSurfaceControl;
|
||||
sp<Surface> mFlingerSurface;
|
||||
ZipFileRO *mZip;
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
}; // namespace android
|
||||
|
||||
#endif // ANDROID_BOOTANIMATION_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue