Example #1
0
int main() {
    before_all();

    test_addNodeInTree_NullIn();
    test_addNodeInTree_TreesIn();
    test_addNodeInTree_DuplicateNode();
    test_addNodeInTree_TreeIsLeaf();

    after_all();
    return errors == 0 ? 0 : -1;
}
int main() {
    before_all();

    test_getNextInTree_NullIn();
    test_getNextInTree_RootWithoutElements();
    test_getNextInTree_RootWithOnlyDir();
    test_getNextInTree_SingleFolder_RootWithOnlyThreeDirs();
    test_getNextInTree_UriList_RootWithOnlyThreeDirs();

    after_all();
    return errors == 0 ? 0 : -1;
}
int main() {
    before_all();

    test_getChildInDirectory_FindFromRoot_FileExists();
    test_getChildInDirectory_FindFromFileAndDir_FileExists();
    test_getChildInDirectory_FindAbove_FileExists();
    test_getChildInDirectory_FileDoesNotExist();
    test_getChildInDirectory_SearchFromSubDirectoryIsEmpty();
    test_getChildInDirectory_DirectoryIsEmpty();
    test_getChildInDirectory_FindRoot();
    test_getChildInDirectory_DirectoryIsNull();

    after_all();
    return errors == 0 ? 0 : -1;
}
Example #4
0
void ProgramSystemMain::mainloop()
{

    while(1) {
        //===========================
        // すべてのイベントを処理する
        //===========================
        SDL_Event event;
        Matrix21<int> _temp;
        while (SDL_PollEvent(&event)) {
            switch (event.type)
            {
            //画面サイズ変更
            case SDL_VIDEORESIZE:
                SDL_FreeSurface(screen);
                screen = SDL_SetVideoMode(event.resize.w, event.resize.h, 32,SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RLEACCEL | SDL_HWACCEL);
                DisplayReload();
                break;
            //キー入力
            case SDL_KEYDOWN:
                if(event.key.keysym.sym == SDLK_ESCAPE) {
                    return;
                }
                if(event.key.keysym.sym == SDLK_RETURN && input[0].keyboard.ispush(SDLK_RALT)) {
                    unsigned long flags=screen->flags,w=screen->w,h=screen->h;
                    SDL_FreeSurface(screen);
                    if(flags & SDL_FULLSCREEN) screen=SDL_SetVideoMode(w,h,32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_RLEACCEL|SDL_HWACCEL);
                    else screen=SDL_SetVideoMode(w,h,32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_RLEACCEL|SDL_HWACCEL|SDL_FULLSCREEN);
                    DisplayReload();
                    break;
                }
                input[0].keyboard.pushkey(event.key.keysym.sym);
                break;
            case SDL_KEYUP:
                input[0].keyboard.pullkey(event.key.keysym.sym);
                break;
            //マウス入力
            case SDL_MOUSEMOTION:
                input[0].mouse.setpos(Matrix21<int>(
                                          event.motion.x,
                                          screen->h-event.motion.y)
                                     );
                break;
            case SDL_MOUSEBUTTONDOWN:
                _temp = Matrix21<int>(
                            event.button.x,
                            screen->h-event.button.y
                        );
                switch(event.button.button)
                {
                case SDL_BUTTON_LEFT:
                    input[0].mouse.setleft().push(_temp);
                    break;
                case SDL_BUTTON_MIDDLE:
                    input[0].mouse.setmiddle().push(_temp);
                    break;
                case SDL_BUTTON_RIGHT:
                    input[0].mouse.setright().push(_temp);
                    break;
                }
                break;
            case SDL_MOUSEBUTTONUP:
                _temp = Matrix21<int>(
                            event.button.x,
                            screen->h-event.button.y
                        );
                switch(event.button.button)
                {
                case SDL_BUTTON_LEFT:
                    input[0].mouse.setleft().pull(_temp);
                    break;
                case SDL_BUTTON_MIDDLE:
                    input[0].mouse.setmiddle().pull(_temp);
                    break;
                case SDL_BUTTON_RIGHT:
                    input[0].mouse.setright().pull(_temp);
                    break;
                }
                break;
            //ジョイスティック入力(今回は無視)
            case SDL_JOYAXISMOTION:
            case SDL_JOYBUTTONDOWN:
            case SDL_JOYBUTTONUP:
                break;
            //終わり
            case SDL_QUIT:
                return;
            //その他
            default:
                break;
            }

        }

        //=====
        //実行
        //=====
        update();

        //==========
        //描画(SDL)
        //==========
        //static int dc=0;
        //dc = (dc>=4) ? 0 : dc+1;
        //if(dc==0){
        if(!fpscontrol.onlyUpdate()) {
            draw();
            {
                char _str[30];
                sprintf(_str,"FPS::%5.2lf",fpscontrol.getFPS());
                stringRGBA(screen, screen->w-81, screen->h-9, _str, 0xff, 0xff, 0xff, 0xff);
            }
            SDL_Flip(screen);
        }
        fpscontrol.delay();

        //==========
        //全部の後。
        //==========
        after_all();

        //===============
        //いらないの削除
        //===============
        std::list<SystemState*>::iterator it=nowstates.begin();
        for(; it!=nowstates.end();)
        {
            if(!(*it)->isNeed)
            {
                delete *it;
                it = nowstates.erase(it);
            }
            else it++;
        }

    }
}