1 #include <binder/IPCThreadState.h> 2 #include <binder/IServiceManager.h> 3 #include <binder/ProcessState.h> 4 #include <log/log.h> 5 6 #include "VirtualTouchpadEvdev.h" 7 #include "VirtualTouchpadService.h" 8 main()9int main() { 10 ALOGI("Starting"); 11 android::sp<android::dvr::VirtualTouchpadService> touchpad_service = 12 new android::dvr::VirtualTouchpadService( 13 android::dvr::VirtualTouchpadEvdev::Create()); 14 15 signal(SIGPIPE, SIG_IGN); 16 android::sp<android::ProcessState> ps(android::ProcessState::self()); 17 ps->setThreadPoolMaxThreadCount(4); 18 ps->startThreadPool(); 19 ps->giveThreadPoolName(); 20 21 android::sp<android::IServiceManager> sm(android::defaultServiceManager()); 22 const android::status_t service_status = 23 sm->addService(android::String16(touchpad_service->SERVICE_NAME()), 24 touchpad_service, false /*allowIsolated*/); 25 if (service_status != android::OK) { 26 ALOGE("virtual touchpad service not added: %d", 27 static_cast<int>(service_status)); 28 exit(2); 29 } 30 31 android::IPCThreadState::self()->joinThreadPool(); 32 return 0; 33 } 34