Add new glue code for writing native apps.

This factors out the boiler-plate code from the sample
app to a common glue code that can be used for everyone
writing this style of app: a dedicated app thread that
takes care of waiting for events and processing them.

As part of doing this, ALooper has a new facility to allow
registration of fds that cause ALooper_pollOnce() to return
the fd that has data, allowing the app to drive the loop
without callbacks.  Hopefully this makes some people feel better. :)

Also do some other cleanup of the ALooper API, plus some
actual documentation.

Change-Id: Ic53bd56bdf627e3ba28a3c093faa06a92be522b8
This commit is contained in:
Dianne Hackborn
2010-07-07 14:27:31 -07:00
parent f7d2b4a2e0
commit 85448bbecd
12 changed files with 757 additions and 97 deletions

View File

@@ -186,9 +186,9 @@ float AMotionEvent_getHistoricalSize(AInputEvent* motion_event, size_t pointer_i
}
void AInputQueue_attachLooper(AInputQueue* queue, ALooper* looper,
ALooper_callbackFunc callback, void* data) {
ALooper_callbackFunc* callback, void* data) {
queue->setPollLoop(static_cast<android::PollLoop*>(looper));
ALooper_setCallback(looper, queue->getConsumer().getChannel()->getReceivePipeFd(),
ALooper_addFd(looper, queue->getConsumer().getChannel()->getReceivePipeFd(),
POLLIN, callback, data);
}