void Tranceiver::connect(String ipAddr) { semaphore.Acquire(); //create socket socket=new Socket(); socket->Construct(NET_SOCKET_AF_IPV4, NET_SOCKET_TYPE_STREAM, NET_SOCKET_PROTOCOL_TCP); unsigned long blockingModeSocket=0; socket->Ioctl(NET_SOCKET_FIONBIO, blockingModeSocket); //Connect to TCP Server Ip4Address ipAddress(ipAddr); NetEndPoint endPoint(ipAddress, PORT); result r=socket->Connect(endPoint); if(r!=E_SUCCESS) { AppLogException("CommandCenter : Connect Error"); } //Create Packet Object packetSender=new PacketSender(socket); screenSender=new ScreenSender(socket); packetReceiver=new PacketReceiver(socket); //Start PacketReciever packetReceiver->setPacketListener(this); packetReceiver->Construct(); packetReceiver->flag=true; packetReceiver->Start(); //mServerConnectionListener->onServerConnected(ipAddr); semaphore.Release(); }
void Notification::Run(const String& command) { if(!command.IsEmpty()) { Uri commandUri; commandUri.SetUri(command); String method = commandUri.GetHost(); StringTokenizer strTok(commandUri.GetPath(), L"/"); if(strTok.GetTokenCount() < 1) { AppLogException("Not enough params"); return; } if((method == L"com.phonegap.Notification.alert" || method == L"com.phonegap.Notification.confirm")) { strTok.GetNextToken(callbackId); AppLogDebug("%S %S", method.GetPointer(), callbackId.GetPointer()); if(!callbackId.IsEmpty()) { Dialog(); } } else if(method == L"com.phonegap.Notification.vibrate") { long duration; String durationStr; strTok.GetNextToken(durationStr); AppLogDebug("%S %S", method.GetPointer(), durationStr.GetPointer()); // Parsing duration result r = Long::Parse(durationStr, duration); if(IsFailed(r)) { AppLogException("Could not parse duration"); return; } Vibrate(duration); } else if(method == L"com.phonegap.Notification.beep") { int count; String countStr; strTok.GetNextToken(countStr); AppLogDebug("%S %S", method.GetPointer(), countStr.GetPointer()); // Parsing count result r = Integer::Parse(countStr, count); if(IsFailed(r)) { AppLogException("Could not parse count"); return; } Beep(count); } } }
void DebugConsole::Log(String& statement, String& logLevel) { if(!statement.IsEmpty()) { if(logLevel == L"INFO" || logLevel == L"WARN") { AppLog("[%S] %S", logLevel.GetPointer(), statement.GetPointer()); } else if(logLevel == "DEBUG") { AppLogDebug("[%S] %S", logLevel.GetPointer(), statement.GetPointer()); } else if(logLevel == L"ERROR") { AppLogException("[%S] %S", logLevel.GetPointer(), statement.GetPointer()); } } }
void Kamera::OnAppControlCompleted (const String &appControlId, const String &operationId, const IList *pResultList) { //This method is invoked when an application control callback event occurs. String* pCaptureResult = null; if (appControlId.Equals(APPCONTROL_CAMERA) && operationId.Equals(OPERATION_CAPTURE)) { pCaptureResult = (Osp::Base::String*)pResultList->GetAt(0); if (pCaptureResult->Equals(String(APPCONTROL_RESULT_SUCCEEDED))) { String eval; AppLog("Camera capture success."); String* pCapturePath = (String*)pResultList->GetAt(1); // copying to app Home Folder String homeFilename; homeFilename.Format(128, L"/Home/%S", File::GetFileName(*pCapturePath).GetPointer()); result r = File::Copy(*pCapturePath, homeFilename, true); if(IsFailed(r)) { AppLogException("Could not copy picture"); eval.Format(512, L"PhoneGap.callbacks['%S'].fail('Could not copy picture')", callbackId.GetPointer()); AppLogDebug("%S", eval.GetPointer()); pWeb->EvaluateJavascriptN(eval); } // Uri imageUri; // imageUri.setUri(homeFilename); eval.Clear(); eval.Format(512, L"PhoneGap.callbacks['%S'].success('file://%S')", callbackId.GetPointer(), homeFilename.GetPointer()); AppLogDebug("%S", eval.GetPointer()); pWeb->EvaluateJavascriptN(eval); } else if (pCaptureResult->Equals(String(APPCONTROL_RESULT_CANCELED))) { AppLog("Camera capture canceled."); String eval; eval.Format(512, L"PhoneGap.callbacks['%S'].fail('Camera capture canceled')", callbackId.GetPointer()); pWeb->EvaluateJavascriptN(eval); } else if (pCaptureResult->Equals(String(APPCONTROL_RESULT_FAILED))) { AppLog("Camera capture failed."); String eval; eval.Format(512, L"PhoneGap.callbacks['%S'].fail('Camera capture failed')", callbackId.GetPointer()); pWeb->EvaluateJavascriptN(eval); } } }
void Kamera::Run(const String& command) { if(!command.IsEmpty()) { Uri commandUri; commandUri.SetUri(command); String method = commandUri.GetHost(); StringTokenizer strTok(commandUri.GetPath(), L"/"); if(strTok.GetTokenCount() < 1) { AppLogException("Not enough params"); return; } strTok.GetNextToken(callbackId); if(method == "com.phonegap.Camera.getPicture" && !callbackId.IsEmpty()) { GetPicture(); } } }
bool Compass::StartSensor(void) { result r = E_SUCCESS; if(__sensorMgr.IsAvailable(SENSOR_TYPE_MAGNETIC)) { r = __sensorMgr.AddSensorListener(*this, SENSOR_TYPE_MAGNETIC, 50, true); if(IsFailed(r)) { return false; } } else { AppLogException("Compass sensor is not available"); String res; res.Format(256, L"PhoneGap.callbacks['%S'].fail({message:'Magnetic sensor is not available',code:'001'});", callbackId.GetPointer()); pWeb->EvaluateJavascriptN(res); return false; } started = true; AppLogDebug("Start Watching Sensor"); return true; }
bool Accelerometer::StartSensor(void) { result r = E_SUCCESS; if(__sensorMgr.IsAvailable(SENSOR_TYPE_ACCELERATION)) { r = __sensorMgr.AddSensorListener(*this, SENSOR_TYPE_ACCELERATION, 50, true); if(IsFailed(r)) { return false; } } else { AppLogException("Acceleration sensor is not available"); String res; res.Format(256, L"PhoneGap.callbacks['%S'].fail({message:'Acceleration sensor is not available',code:'001'});"); pWeb->EvaluateJavascriptN(res); return false; } started = true; AppLogDebug("Start Watching Sensor"); return true; }
void Notification::Dialog() { MessageBox messageBox; String* title; String* message; String* styleStr; String eval; title = pWeb->EvaluateJavascriptN(L"navigator.notification.messageBox.title"); message = pWeb->EvaluateJavascriptN(L"navigator.notification.messageBox.message"); styleStr = pWeb->EvaluateJavascriptN(L"navigator.notification.messageBox.messageBoxStyle"); AppLogDebug("title %S message %S styleStr %S", title->GetPointer(), message->GetPointer(), styleStr->GetPointer()); if(!title->IsEmpty() && !message->IsEmpty() && !styleStr->IsEmpty()) { int style; int modalResult = 0; if(Integer::Parse(*styleStr, style) != E_SUCCESS) { AppLogException("Could not get dialog style"); return; } messageBox.Construct(*title, *message, (MessageBoxStyle)style, 0); messageBox.ShowAndWait(modalResult); switch(modalResult) { case MSGBOX_RESULT_CLOSE: eval.Format(128, L"PhoneGap.callbacks['%S'].success('Close')", callbackId.GetPointer()); pWeb->EvaluateJavascriptN(eval); break; case MSGBOX_RESULT_OK: eval.Format(128, L"PhoneGap.callbacks['%S'].success('OK')", callbackId.GetPointer()); pWeb->EvaluateJavascriptN(eval); break; case MSGBOX_RESULT_CANCEL: eval.Format(128, L"PhoneGap.callbacks['%S'].success('Cancel')", callbackId.GetPointer()); pWeb->EvaluateJavascriptN(eval); break; case MSGBOX_RESULT_YES: eval.Format(128, L"PhoneGap.callbacks['%S'].success('Yes')", callbackId.GetPointer()); pWeb->EvaluateJavascriptN(eval); break; case MSGBOX_RESULT_NO: eval.Format(128, L"PhoneGap.callbacks['%S'].success('No')", callbackId.GetPointer()); pWeb->EvaluateJavascriptN(eval); break; case MSGBOX_RESULT_ABORT: eval.Format(128, L"PhoneGap.callbacks['%S'].success('Abort')", callbackId.GetPointer()); pWeb->EvaluateJavascriptN(eval); break; case MSGBOX_RESULT_TRY: eval.Format(128, L"PhoneGap.callbacks['%S'].success('Try')", callbackId.GetPointer()); pWeb->EvaluateJavascriptN(eval); break; case MSGBOX_RESULT_RETRY: eval.Format(128, L"PhoneGap.callbacks['%S'].success('Retry')", callbackId.GetPointer()); pWeb->EvaluateJavascriptN(eval); break; case MSGBOX_RESULT_IGNORE: eval.Format(128, L"PhoneGap.callbacks['%S'].success('Ignore')", callbackId.GetPointer()); pWeb->EvaluateJavascriptN(eval); break; case MSGBOX_RESULT_CONTINUE: eval.Format(64, L"PhoneGap.callbacks['%S'].success('Continue')", callbackId.GetPointer()); pWeb->EvaluateJavascriptN(eval); break; } } else { AppLogException("Could not construct MessageBox"); } delete title; delete message; delete styleStr; }