//----------------------------------------------------------------------------- // Called when the response headers have been received //----------------------------------------------------------------------------- static int32 GotHeaders(void * object, void*) { CIwHTTP * theHttpObject = (CIwHTTP*)object; if (theHttpObject->GetStatus() == S3E_RESULT_ERROR) { // Something has gone wrong g_Result = 0; g_GotResult = true; } else { // Depending on how the server is communicating the content // length, we may actually know the length of the content, or // we may know the length of the first part of it, or we may // know nothing. ContentExpected always returns the smallest // possible size of the content, so allocate that much space // for now if it's non-zero. If it is of zero size, the server // has given no indication, so we need to guess. We'll guess at 1k. int contentExpected = theHttpObject->ContentExpected(); g_ResultLen = contentExpected; if (!g_ResultLen) { g_ResultLen = 1024; } if(!IwGetHTTPQueue()->IsSizeAllowed()) return 0; g_Result = (char*)s3eMalloc(g_ResultLen + 1); g_Result[contentExpected] = 0; theHttpObject->ReadContent(g_Result, contentExpected, GotData, NULL); } return 0; }
// Camera callback. Copy the capture frame buffer into a texture ready for rendering. static int32 frameReceived(void* systemData, void* userData) { s3eCameraFrameData *data = (s3eCameraFrameData*)systemData; // If there is no texture, create one. // This is a slow operation compared to memcpy so we don't want to do it every frame. if (g_CameraTexture == NULL) { cameraStreamInit(data->m_Height, data->m_Width); g_CameraTexture = new CIwTexture(); g_CameraTexture->SetMipMapping(false); g_CameraTexture->SetModifiable(true); uint cameraRGB565BufferSize = data->m_Width * data->m_Height * 2; //Size in bytes g_pCameraTexelsRGB565 = (uint16*) s3eMalloc(cameraRGB565BufferSize); g_CameraTexture->CopyFromBuffer(data->m_Height, data->m_Width, CIwImage::RGB_565, data->m_Height*2, (uint8*)g_pCameraTexelsRGB565, NULL); g_CameraTexture->Upload(); } transpose(g_pCameraTexelsRGB565, (uint16*)data->m_Data, data->m_Height, data->m_Width); g_FrameRotation = data->m_Rotation; return 0; }
void MapBackground::CreateMapTileImage2(MapTile* pMapTile, char* szPath, bool isJpg) { if (!IsTileVisible(pMapTile)) { return; } CIwImage image; if (!isJpg) { image.LoadFromFile(szPath); if (image.GetWidth()) { pMapTile->pTexture = new CIwTexture; pMapTile->pTexture->CopyFromImage(&image); pMapTile->pTexture->Upload(); } } else { s3eFile* pFile = s3eFileOpen(szPath, "r"); if (pFile) { uint32 gResultLen = s3eFileGetSize(pFile); void* gResult = (void*)s3eMalloc(gResultLen + 1); uint32 test = s3eFileRead(gResult, sizeof(char), gResultLen, pFile); gResultLen = test; s3eFileClose(pFile); JPEGImage(gResult, gResultLen, image); pMapTile->pTexture = new CIwTexture; pMapTile->pTexture->CopyFromImage(&image); pMapTile->pTexture->Upload(); delete gResult; } } }
bool ExampleUpdate() { Button* pressed = GetSelectedButton(); if (pressed && pressed == g_MessageBox) s3eNewMessageBox("Title", "Hello world"); else if (pressed && pressed == g_NOFInitialize) { s3eNOFSettingVal *settings = (s3eNOFSettingVal*)s3eMalloc(sizeof(s3eNOFSettingVal) * 7); // Fill settings // UIOrientation value strncpy(settings[0].m_varName, "OpenFeintSettingDashboardOrientation", S3E_NOPENFEINT_SETTINGS_STRING_MAX); settings[0].m_intVal = s3eNOFUIInterfaceOrientationPortrait; // Shortdisplay name strncpy(settings[1].m_varName, "OpenFeintSettingShortDisplayName", S3E_NOPENFEINT_SETTINGS_STRING_MAX); strncpy(settings[1].m_stringVal, "FunkyRacers", S3E_NOPENFEINT_STRING_MAX); // Push Notification Setting strncpy(settings[2].m_varName, "OpenFeintSettingEnablePushNotifications", S3E_NOPENFEINT_SETTINGS_STRING_MAX); settings[2].m_intVal = 1; // TRUE/YES // Sandbox Notification Mode strncpy(settings[3].m_varName, "OpenFeintSettingUseSandboxPushNotificationServer", S3E_NOPENFEINT_SETTINGS_STRING_MAX); settings[3].m_intVal = 1; // Disable User generated content strncpy(settings[4].m_varName, "OpenFeintSettingDisableUserGeneratedContent", S3E_NOPENFEINT_SETTINGS_STRING_MAX); settings[4].m_intVal = 0; // Disable ask for approval in debug mode strncpy(settings[5].m_varName, "OpenFeintSettingAlwaysAskForApprovalInDebug", S3E_NOPENFEINT_SETTINGS_STRING_MAX); settings[5].m_intVal = 0; // Add GameId in settings as well as Android needs it strncpy(settings[1].m_varName, "GameID", S3E_NOPENFEINT_SETTINGS_STRING_MAX); strncpy(settings[1].m_stringVal, "330603", S3E_NOPENFEINT_STRING_MAX); s3eNOFArray array; array.m_count = 7; array.m_items = settings; s3eNOFinitializeWithProductKey("TD5741bq5dsEWStKk3rdMA", "HgjtDJBBRW8sBfASq9Iv6hDAfchXAHMYJvNU5gQ0", "RacingGame", &array); s3eFree(settings); AppendMessageColour(GREEN, "Called s3eNOFinitializeWithProductKey"); //g_doRender1 = false; // Lets try to give the API the token // const char* deviceToken = s3eIOSNotificationsGetRemoteNotificationToken(); // char tmp[40]; // const char *tmp1 = deviceToken; // memset(tmp,'\0', sizeof(tmp)); // // // need to get rid of spaces in middle // int i =0; // while(*tmp1) // { // if(*tmp1!=' ') // { // // not a space. we can copy // tmp[i] = *tmp1; // i++; // } // tmp1++; // } // // if (deviceToken) { // AppendMessageColour(BLUE,"Device token is %s",tmp); // s3eNOFapplicationDidRegisterForRemoteNotificationsWithDeviceToke(tmp); // } } else if (pressed && pressed == g_NOFShutdown) { s3eNOFshutdown(); AppendMessageColour(GREEN, "Called s3eNOFshutdown"); } else if (pressed && pressed == g_NOFLaunchDashboard) { // s3eNOFlaunchDashboard(); s3eNOFlaunchDashboard(); AppendMessageColour(GREEN, "Called s3eNOFlaunchDashboardWithListLeaderboardsPage"); } else if (pressed && pressed == g_NOFTestButton1) { /*const unsigned int max_achievements = 20; // whatever we think is max we need void* data = s3eMalloc(sizeof(s3eNOFAchievement) * max_achievements); if (data == NULL) { AppendMessageColour(RED, ("Couldn't allocate data")); return false; } s3eNOFArray achArray; achArray.m_items = data; achArray.m_count = max_achievements; s3eNOFachievements(&achArray); // AppendMessage("Size of achievement %d and double %d", // sizeof(s3eNOFAchievement), // sizeof(double)); for (uint i=0; i < achArray.m_count && i < max_achievements; i++) { // s3eNOFAchievement* ach = &((s3eNOFAchievement*)achArray.m_items[i]); // AppendMessage("Ach at %p", &((s3eNOFAchievement*)achArray.m_items)[i]); AppendMessage("Acheivement title %s", ((s3eNOFAchievement*)achArray.m_items)[i].title); } s3eFree(data);*/ //AppendMessage("Updating achievement 1205572"); // s3eNOFupdateAcheivementProgressionComplete("1205572", "77", true); // last param is ignored for android s3eNOFlaunchDashboardWithListLeaderboardsPage(); } else if (pressed && pressed == g_NOFTestButton2) { //s3eNOFdisplayAndSendChallenge(&g_nofChallengeDefinitions[1]); /* s3eNOFchallengeCompleteWithResult(kNOFChallengeResultRecipientLost, persistentChallengeId); AppendMessageColour(GREEN, "Called s3eNOFchallengeCompleteWithResult"); s3eNOFChallengeData chalData; const char *dd = "SCORE=5"; chalData.data = (void*)dd; chalData.length = strlen(dd); s3eNOFchallengeDisplayCompletionWithData(&chalData, "Challenge Lost", persistentChallengeId); AppendMessageColour(GREEN, "Called s3eNOFchallengeDisplayCompletionWithData"); */ /* s3eNOFAchievement *ach = (s3eNOFAchievement*)s3eMalloc(sizeof(s3eNOFAchievement)); AppendMessageColour(GREEN,"Calling s3eNOFachievement"); s3eNOFachievement(ach, "1117662"); AppendMessage("Achievement title %s", ach->title); // AppendMessage("Achievement description %s", ach->description); s3eFree(ach); */ //AppendMessage("Unlocking achievement 1117662"); // s3eNOFachievementUnlock("1117662"); // AppendMessage("User approved %d", s3eNOFhasUserApprovedFeint()); // AppendMessage("User is Online %d", s3eNOFisOnline()); // s3eNOFsubmitHighScore("844216", "50", "Beaten by Android", NULL); s3eNOFlaunchDashboardWithHighscorePage("844216"); } return true; }
void SingleTouchButtonCB(s3ePointerEvent* event) { // Don't register press events, actions will occur on release. if (event->m_Pressed) { return; } if (isPointInButton(event, startBtn)) { MATStartMobileAppTracker("877", "8c14d6bbe466b65211e781d62e301eec"); MATSetPackageName(g_package_name); MATSetSiteId(g_site_id); MATSetAge(52); MATSetGender(1); char strLat[32]; char strLong[32]; char strAlt[32]; sprintf(strLat, "%f", 123.456f); sprintf(strLong, "%f", 67.3257f); sprintf(strAlt, "%f", 258.09f); MATSetLocation(strLat, strLong, strAlt); // testing set delegate MATSetDelegate(true); sprintf(g_TouchEventMsg, "`x666666MAT SDK Started %s %s", g_package_name, g_site_id); } if (isPointInButton(event, showParmsBtn)) { MATSDKParameters(); } if (isPointInButton(event, sendInstallBtn)) { MATTrackInstall(); sprintf(g_TouchEventMsg, "`x666666MAT SDK Install sent"); } if (isPointInButton(event, setDebugBtn)) { shouldDebug = !shouldDebug; MATSetDebugMode(shouldDebug); MATSetAllowDuplicates(shouldDebug); sprintf(g_TouchEventMsg, "`x666666Debug Set to %s", (shouldDebug)?"true":"false"); } if (isPointInButton(event, sendEventRefBtn)) { char strRevenue[32]; sprintf(strRevenue, "%f", 12.34f); MATTrackAction("testDCLEventItemRef", false, strRevenue, "GBP"); sprintf(g_TouchEventMsg, "`x666666MAT SDK Event with Reference Sent"); } if (isPointInButton(event, sendEventBtn)) { MATSDKEventItem *items = (MATSDKEventItem *)s3eMalloc(sizeof(MATSDKEventItem) * 2); char strUnitPrice1[32]; sprintf(strUnitPrice1, "%f", 1.55f); char strRevenue1[32]; sprintf(strRevenue1, "%f", 1.55f); strncpy(items[0].name, "coin", S3E_MATSDK_STRING_MAX); strncpy(items[0].unitPrice, strUnitPrice1, S3E_MATSDK_STRING_MAX); items[0].quantity = 1; strncpy(items[0].revenue, strRevenue1, S3E_MATSDK_STRING_MAX); strncpy(items[0].attribute1, "attrib_1_1", S3E_MATSDK_STRING_MAX); strncpy(items[0].attribute2, "attrib_1_2", S3E_MATSDK_STRING_MAX); strncpy(items[0].attribute3, "attrib_1_3", S3E_MATSDK_STRING_MAX); strncpy(items[0].attribute4, "attrib_1_4", S3E_MATSDK_STRING_MAX); strncpy(items[0].attribute5, "attrib_1_5", S3E_MATSDK_STRING_MAX); char strUnitPrice2[32]; sprintf(strUnitPrice2, "%f", 2.10f); char strRevenue2[32]; sprintf(strRevenue2, "%f", 2.10f); strncpy(items[1].name, "sword", S3E_MATSDK_STRING_MAX); strncpy(items[1].unitPrice, strUnitPrice2, S3E_MATSDK_STRING_MAX); items[1].quantity = 1; strncpy(items[1].revenue, strRevenue2, S3E_MATSDK_STRING_MAX); strncpy(items[1].attribute1, "attrib_2_1", S3E_MATSDK_STRING_MAX); strncpy(items[1].attribute3, "attrib_2_3", S3E_MATSDK_STRING_MAX); strncpy(items[1].attribute5, "attrib_2_5", S3E_MATSDK_STRING_MAX); MATArray array; array.m_count = 2; array.m_items = items; char strRevAmount[32]; sprintf(strRevAmount, "%f", 13.67f); MATTrackActionForEventIdOrNameItems("testDCLEventItems", false, &array, "testdclitems", strRevAmount, "GBP", 0, NULL, NULL); sprintf(g_TouchEventMsg, "`x666666MAT SDK Event Sent"); } }