//-----------------------------------------------------------------------------
// 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;
}
Beispiel #2
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;
}
Beispiel #3
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");
    }

}