//----------------------------------------------
bool myDepthGenerator::setup(xn::NodeInfo const& node, int num){
    if ( thisNum == 0) bDraw[thisNum] = true;
    
    depthMAX = 8000;
    depthMIN = 0;
    
    thisNum = num;
    XnStatus result = XN_STATUS_OK;
    result = node.GetInstance(depth_generator);
    if (result != XN_STATUS_OK) {
        ofLogError("myDepthGenerator.setup()", xnGetStatusString(result));
        return false;
    } else {
        depth_generator.SetMapOutputMode(out_put_modes);
        return true;
    }
    
    for (int i = 0; i < TOTAL_PIXEL; i++) {
        bgDepth[i] = depthMAX;
        bgDepthChar[i] = 0;
    }
    bgImg.allocate(CAPTURE_WIDTH, CAPTURE_HEIGHT, OF_IMAGE_GRAYSCALE);
    
    depthBgPixel.allocate(CAPTURE_WIDTH, CAPTURE_HEIGHT, 1);
    loadBgImage();
    vboMesh.setMode(OF_PRIMITIVE_POINTS);
    vboMesh.disableNormals();
    
}
void GuiGameCarousel::setSelectedGame(int idx)
{
    if(pagesize == 0)
        return;

    if(idx < 0)
        idx = 0;
    if(idx >= pagesize)
        idx = pagesize-1;

	selectedGame = idx;
    loadBgImage(selectedGame);

    //! normalize to 360°
    currDegree = ((int)(currDegree + 0.5f)) % 360;
    if(currDegree < 0.0f)
        currDegree += 360.0f;

    destDegree = 90.0f + selectedGame * DEG_OFFSET;
//
//    f32 angleDiff = (circleTargetPosition - currDegree);
//    if(angleDiff > 180.0f)
//        circleTargetPosition -= 360.0f;
//    else if(angleDiff < -180.0f)
//        circleTargetPosition += 360.0f;

    touchClickDelay = 20;
    circleSpeedLimit = 1.8f;
    refreshDrawMap = true;
}
//-------------------------------------------------
void myDepthGenerator::checkSwitchMethods(){
    if (bCaptureBg[thisNum]) {
        bgSet();
        bCaptureBg[thisNum] = false;
    }
    if (trLoadBg[thisNum]) {
        loadBgImage();
        trLoadBg[thisNum];
    }
    if (bSaveBgAsImage[thisNum]) {
        saveBgImage();
        bSaveBgAsImage[thisNum];
    }

}
void GuiGameCarousel::OnTouchRelease(GuiButton *button, const GuiController *controller, GuiTrigger *trigger)
{
    f32 degreeAdd = lastTouchDifference * 0.04f;
    if(touchClickDelay || fabsf(degreeAdd) < 2.0f)
    {
        updateDrawMap();

        if(bWasDragging && selectedGameOnDragStart != selectedGame)
        {
            setSelectedGame(selectedGame);
            gameSelectionChanged(this, selectedGame);
        }
        return;
    }

    currDegree = ((int)(currDegree + 0.5f)) % 360;
    if(currDegree < 0.0f)
        currDegree += 360.0f;

    f32 partDegree = DEG_OFFSET;

    destDegree = currDegree - degreeAdd * partDegree;

    //! round to nearest game position at the target position
    destDegree = ((int)(destDegree / partDegree + 0.5f)) * partDegree;
    circleSpeedLimit = 10.0f;


    int iMin = 0;
    int iDegreeMin = destDegree;

    for(int i = 0; i < pagesize; i++)
    {
        f32 setDegree = (destDegree - DEG_OFFSET * i);
        int degree = labs(((int)setDegree - 90) % 360);
        if(degree < iDegreeMin)
        {
            iDegreeMin = degree;
            iMin = i;
        }
    }

    selectedGame = iMin;
    gameSelectionChanged(this, selectedGame);

    loadBgImage(selectedGame);
    refreshDrawMap = true;
}
Example #5
0
void GuiGameCarousel::refresh()
{
	for (int i = 0; i < pagesize; i++)
	{
		//------------------------
		// Index
		//------------------------
		//gameIndex[i] = GetGameIndex( i, listOffset, GameList::instance()->size() );

		//------------------------
		// Image
		//------------------------
		delete coverImg[i];

		std::string filepath;
        filepath += "sd:";
        filepath += SD_LOADIINE_PATH;
        filepath += "/apps/loadiine_gx2/covers3d/";
        filepath += GameList::instance()->at(i)->id + ".png";

		coverImg[i] = new GuiImageAsync(filepath, &noCover);

		//------------------------
		// GameButton
		//------------------------
		delete game[i];
		game[i] = new GuiButton(coverImg[i]->getWidth(), coverImg[i]->getHeight());
		game[i]->setAlignment(ALIGN_CENTER | ALIGN_MIDDLE);
		game[i]->setImage(coverImg[i]);
		game[i]->setParent(this);
		game[i]->setTrigger(&touchTrigger);
		game[i]->setSoundClick(buttonClickSound);
		game[i]->setEffectGrow();
		game[i]->clicked.connect(this, &GuiGameCarousel::OnGameButtonClick);

        drawOrder[i] = i;
	}

    currDegree = 270.0f + pagesize * 0.5f * DEG_OFFSET - 0.5f * DEG_OFFSET;
    destDegree = 90.0f + pagesize * 0.5f * DEG_OFFSET - 0.5f * DEG_OFFSET;
    selectedGame = (int)((pagesize * 0.5f) + 0.5f); // round to nearest

    loadBgImage(selectedGame);
}
void GameLauncherMenu::setHeader(const discHeader * header)
{
    this->header =  header;
    gameLauncherMenuFrame.remove(coverImg);

    std::string filepath = CSettings::getValueAsString(CSettings::GameCover3DPath) + "/" + header->id + ".png";

    if(coverImg)
    {
        coverImg->imageLoaded.disconnect_all();
        AsyncDeleter::pushForDelete(coverImg);
        coverImg = NULL;
    }

    coverImg = new GuiImageAsync(filepath, &noCover);
    coverImg->setAlignment(ALIGN_LEFT);
    coverImg->setPosition(50,0);
    coverImg->setScale((5.0/3.0) * windowScale);
    coverImg->imageLoaded.connect(this, &GameLauncherMenu::OnCoverLoadedFinished);
    gameLauncherMenuFrame.append(coverImg);
    loadBgImage();

    //Set game title
    std::string gamename = header->name;
    if(gamename.length() > 40){
        gamename = gamename.substr(0,38) + "...";
    }

    titleText.setText(gamename.c_str());

    DirList updatefolder(header->gamepath + UPDATE_PATH,NULL,DirList::Dirs);
    log_printf("Found %d update folders for %s:\n",updatefolder.GetFilecount(),header->name.c_str());
    updatePaths.clear();

    updatePaths[COMMON_UPDATE_PATH] = COMMON_UPDATE_PATH;
    for(int i = 0; i < updatefolder.GetFilecount(); i++)
    {
        updatePaths[updatefolder.GetFilename(i)] = updatefolder.GetFilename(i);
        log_printf("%s\n",updatefolder.GetFilename(i));
    }

    //gameTitle.setText(gamename.c_str());
    bool result = CSettingsGame::getInstance()->LoadGameSettings(header->id,gamesettings);
    if(result){
        log_print("Found ");
    }

    log_printf("Game Setting for: %s\n\n",header->id.c_str());
    log_printf("Update Folder: \"%s\"\n",gamesettings.updateFolder.c_str());
    log_printf("Extra Save: %d\n",gamesettings.extraSave);
    log_printf("Launch Method: %d\n",gamesettings.launch_method);
    log_printf("Save Method: %d\n",gamesettings.save_method);
    log_print("--------\n");

    //getting selected Items for selectboxes
    std::map<std::string, std::string>::iterator itr;
    int i = 0;

    int updatePathID  = 0;
    for(itr = updatePaths.begin(); itr != updatePaths.end(); itr++) {
        if(itr->second.compare(gamesettings.updateFolder) == 0){
            updatePathID = i;
            break;
        }
        i++;
    }

    int savemodeID  = 0;
    i=0;
    for(itr = saveModeNames.begin(); itr != saveModeNames.end(); itr++) {
        if(atoi(itr->second.c_str()) == gamesettings.save_method){
            savemodeID = i;
        }
        i++;
    }
    int launchmodeID  = 0;
    i = 0;
    for(itr = launchModeNames.begin(); itr != launchModeNames.end(); itr++) {
         if(atoi(itr->second.c_str()) == gamesettings.launch_method){
            launchmodeID = i;
        }
        i++;
    }


    pathSelectBox.Init(updatePaths,updatePathID);
    //TODO: change to set Value
    saveModeSelectBox.Init(saveModeNames,savemodeID);
    launchModeSelectBox.Init(launchModeNames,launchmodeID);
    extraSaveBox.setValue(gamesettings.extraSave);
    dlcEnableBox.setValue(gamesettings.EnableDLC);

    gamesettingsChanged = false;
    bChanged = true;
}