Esempio n. 1
0
// 準備の描画
void CStage::FinishStringDraw(){
	if (!isFinish)return;
	m_finish_graph->Draw("Finish",
		m_finish_pos.x(), m_finish_pos.y(),
		color256(102, 51, 255));
}
Esempio n. 2
0
// レディーの描画
void CStage::ReadyStringDraw(){
	if (!isReady)return;
	m_ready_graph->Draw("Ready",
		m_ready_pos.x(), m_ready_pos.y(),
		color256(102, 51, 255));
}
Esempio n. 3
0
void VT100Parser::decodeCSI(uchar character)
{
    if (character >= 0x30 && character <= 0x3f) {
        decodeParameters(character);
    } else {
        if (character >= 0x20 && character <= 0x2f) {
            if (intermediateChar.unicode())
                qDebug() << "Warning!: double intermediate bytes found in CSI";
            intermediateChar = character;
        } else if (character >= 0x40 && character <= 0x7d) {
            if (intermediateChar.unicode()) {
                switch (character) {
                case FinalBytesSingleIntermediate::SL:
                case FinalBytesSingleIntermediate::SR:
                case FinalBytesSingleIntermediate::GSM:
                case FinalBytesSingleIntermediate::GSS:
                case FinalBytesSingleIntermediate::FNT:
                case FinalBytesSingleIntermediate::TSS:
                case FinalBytesSingleIntermediate::JFY:
                case FinalBytesSingleIntermediate::SPI:
                case FinalBytesSingleIntermediate::QUAD:
                case FinalBytesSingleIntermediate::SSU:
                case FinalBytesSingleIntermediate::PFS:
                case FinalBytesSingleIntermediate::SHS:
                case FinalBytesSingleIntermediate::SVS:
                case FinalBytesSingleIntermediate::IGS:
                case FinalBytesSingleIntermediate::IDCS:
                case FinalBytesSingleIntermediate::PPA:
                case FinalBytesSingleIntermediate::PPR:
                case FinalBytesSingleIntermediate::PPB:
                case FinalBytesSingleIntermediate::SPD:
                case FinalBytesSingleIntermediate::DTA:
                case FinalBytesSingleIntermediate::SHL:
                case FinalBytesSingleIntermediate::SLL:
                case FinalBytesSingleIntermediate::FNK:
                case FinalBytesSingleIntermediate::SPQR:
                case FinalBytesSingleIntermediate::SEF:
                case FinalBytesSingleIntermediate::PEC:
                case FinalBytesSingleIntermediate::SSW:
                case FinalBytesSingleIntermediate::SACS:
                case FinalBytesSingleIntermediate::SAPV:
                case FinalBytesSingleIntermediate::STAB:
                case FinalBytesSingleIntermediate::GCC:
                case FinalBytesSingleIntermediate::TATE:
                case FinalBytesSingleIntermediate::TALE:
                case FinalBytesSingleIntermediate::TAC:
                case FinalBytesSingleIntermediate::TCC:
                case FinalBytesSingleIntermediate::TSR:
                case FinalBytesSingleIntermediate::SCO:
                case FinalBytesSingleIntermediate::SRCS:
                case FinalBytesSingleIntermediate::SCS:
                case FinalBytesSingleIntermediate::SLS:
                case FinalBytesSingleIntermediate::SCP:
                default:
                    qDebug() << "unhandled CSI FinalBytesSingleIntermediate sequence" << character;
                    tokenFinished();
                    break;
                }
            } else {
                switch (character) {
                case FinalBytesNoIntermediate::ICH:
                    qDebug() << "ICH" << parameters;
                    tokenFinished();
                    //qDebug() << parameters[0];
                    //qDebug() << "unhandled CSI FinalBytesNoIntermediate sequence" << character;
                    break;
                case FinalBytesNoIntermediate::CUU: // Cursor Up PS Times
                    appendParameter();
                    if(parameters.size())
                        screen.moveCursorUp(parameters[0]);
                    else
                        screen.moveCursorUp();
                    tokenFinished();
                    break;
                case FinalBytesNoIntermediate::CUD:
                    tokenFinished();
                    qDebug() << "unhandled CSI FinalBytesNoIntermediate sequence" << character;
                    break;
                case FinalBytesNoIntermediate::CUF: {
                    //qDebug() << "CUF";
                    appendParameter();
                    Q_ASSERT(parameters.size() < 2);
                    int count = parameters.size() ? parameters.at(0) : 1;
                    screen.moveCursorRight(count);
                    tokenFinished();
                }
                break;
                case FinalBytesNoIntermediate::CUB:
                case FinalBytesNoIntermediate::CNL:
                case FinalBytesNoIntermediate::CPL:
                case FinalBytesNoIntermediate::CHA:
                    tokenFinished();
                    qDebug() << "unhandled CSI FinalBytesNoIntermediate sequence" << character;
                    break;
                case FinalBytesNoIntermediate::CUP:
                    appendParameter();
                    if (!parameters.size()) {
                        //screen.moveCursorUp();
                        //screen.moveCursorHome();
                        screen.moveCursorTo(QPoint(1, 1));
                    }
                    else if (parameters.size() == 2) {
                        screen.moveCursorTo(QPoint(parameters[1], parameters[0]));
                    }
                    else {
                        qDebug() << "CUP bad parameters" << parameters;
                    }


                    tokenFinished();
                    break;
                case FinalBytesNoIntermediate::CHT:
                    tokenFinished();
                    qDebug() << "unhandled CSI FinalBytesNoIntermediate sequence" << character;
                    break;
                case FinalBytesNoIntermediate::ED:
//                        qDebug() << "ED unimplemented";
                    appendParameter();
                    if (!parameters.size()) {
                        //m_screen->eraseFromCurrentLineToEndOfScreen();
                        screen.clearToEndOfScreen();
                    } else {
                        switch (parameters.at(0)) {
                        case 1:
                            //m_screen->eraseFromCurrentLineToBeginningOfScreen();

                            screen.clearToBeginningOfScreen();
                            break;
                        case 2:
                            screen.clearScreen();
                            break;
                        default:
                            qDebug() << "Invalid parameter value for FinalBytesNoIntermediate::ED";
                        }
                    }

                    tokenFinished();
                    break;
                case FinalBytesNoIntermediate::EL:
                    appendParameter();
                    if (!parameters.size() || parameters.at(0) == 0) {
                        screen.eraseFromCursor();
                    } else if (parameters.at(0) == 1) {
                        qDebug() << "Unimplemented erase cursor to position";
                        //m_screen->eraseToCursorPosition();
                    } else if (parameters.at(0) == 2) {
                        qDebug() << "Unimplemented eraseLine";
                        //m_screen->eraseLine();
                    } else {
                        qDebug() << "Fault when processing FinalBytesNoIntermediate::EL";
                    }
                    tokenFinished();
                    break;
                case FinalBytesNoIntermediate::IL: {
                    appendParameter();
                    int count = 1;
                    if (parameters.size()) {
                        count = parameters.at(0);
                    }
                    qDebug() << "Unimplemented insertLines";
                    //m_screen->insertLines(count);
                    tokenFinished();
                }
                break;
                case FinalBytesNoIntermediate::DL: {
                    appendParameter();
                    int count = 1;
                    if (parameters.size()) {
                        count = parameters.at(0);
                    }
                    qDebug() << "Unimplemented deleteLines";
                    //m_screen->deleteLines(count);
                    tokenFinished();
                }
                break;
                case FinalBytesNoIntermediate::EF:
                case FinalBytesNoIntermediate::EA:
                    qDebug() << "unhandled CSI FinalBytesNoIntermediate sequence" << character;
                    tokenFinished();
                    break;
                case FinalBytesNoIntermediate::DCH:
                {
                    appendParameter();
                    int count = 1;
                    if(parameters.size())
                        count = parameters[0];
                    screen.deleteRight(count);
                    tokenFinished();
                    break;
                }
                case FinalBytesNoIntermediate::SSE:
                case FinalBytesNoIntermediate::CPR:
                case FinalBytesNoIntermediate::SU:
                case FinalBytesNoIntermediate::SD:
                case FinalBytesNoIntermediate::NP:
                case FinalBytesNoIntermediate::PP:
                case FinalBytesNoIntermediate::CTC:
                case FinalBytesNoIntermediate::ECH:
                case FinalBytesNoIntermediate::CVT:
                case FinalBytesNoIntermediate::CBT:
                case FinalBytesNoIntermediate::SRS:
                case FinalBytesNoIntermediate::PTX:
                case FinalBytesNoIntermediate::SDS:
                case FinalBytesNoIntermediate::SIMD:
                case FinalBytesNoIntermediate::HPA:
                case FinalBytesNoIntermediate::HPR:
                case FinalBytesNoIntermediate::REP:
                    qDebug() << "unhandled CSI FinalBytesNoIntermediate sequence" << character;
                    tokenFinished();
                    break;
                case FinalBytesNoIntermediate::DA:
                    appendParameter();
                    if (parameters.size()) {
                        switch (parameters.at(0)) {
                        case -'>':
                            //m_screen->sendSecondaryDA();
                            break;
                        case -'?':
                            qDebug() << "WHAT!!!";
                            break; //ignore
                        case 0:
                        default:
                            ;//m_screen->sendPrimaryDA();
                        }
                    } else {
                        //m_screen->sendPrimaryDA();
                    }
                    tokenFinished();
                    break;
                case FinalBytesNoIntermediate::VPA:
                case FinalBytesNoIntermediate::VPR:
                case FinalBytesNoIntermediate::HVP:
                case FinalBytesNoIntermediate::TBC:
                    qDebug() << "unhandled CSI FinalBytesNoIntermediate sequence" << character;
                    tokenFinished();
                    break;
                case FinalBytesNoIntermediate::SM:
                    appendParameter();
                    if (parameters.size() && parameters.at(0) == -'?') {
                        if (parameters.size() > 1) {
                            switch (parameters.at(1)) {
                            case 1:
                                m_cursorKeyMode =  true;
                                emit cursorKeyModeChanged(true);
                                break;
                            case 12:
                                screen.setCursorBlinking(true);
                                break;
                            case 25:
                                screen.setCursorVisible(true);
                                break;
                            case 1034:
                                //I don't know what this sequence is
                                break;
                            case 1049:
                                qDebug() << "Unimplemented save cursor and save screen data";
                                //m_screen->saveCursor();
                                //m_screen->saveScreenData();
                                break;
                            default:
                                qDebug() << "unhandled CSI FinalBytesNoIntermediate::SM ? with parameter:" << parameters.at(1);
                            }
                        } else {
                            qDebug() << "unhandled CSI FinalBytesNoIntermediate::SM ?";
                        }
                    } else {
                        qDebug() << "unhandled CSI FinalBytesNoIntermediate::SM";
                    }
                    tokenFinished();
                    break;
                case FinalBytesNoIntermediate::MC:
                case FinalBytesNoIntermediate::HPB:
                case FinalBytesNoIntermediate::VPB:
                    qDebug() << "unhandled CSI FinalBytesNoIntermediate sequence" << character;
                    tokenFinished();
                    break;
                case FinalBytesNoIntermediate::RM:
                    appendParameter();
                    if (parameters.size()) {
                        qDebug() << parameters;
                        switch(parameters.at(0)) {
                        case -'?':
                            if (parameters.size() > 1) {
                                switch(parameters.at(1)) {
                                case 1:
                                    m_cursorKeyMode =  false;
                                    emit cursorKeyModeChanged(true);
                                    break;
                                case 12:
                                    screen.setCursorBlinking(false);
                                    break;
                                case 25:
                                    screen.setCursorVisible(false);
                                    break;
                                case 1049:
                                    qDebug() << "Unimplemented restore cursor and restore screen data";
                                    //m_screen->restoreCursor();
                                    //m_screen->restoreScreenData();
                                    break;
                                default:
                                    qDebug() << "unhandled CSI FinalBytesNoIntermediate::RM? with "
                                             "parameter " << parameters.at(1);
                                }
                            } else {
                                qDebug() << "unhandled CSI FinalBytesNoIntermediate::RM";
                            }
                            break;
                        case 4:
                            qDebug() << "REPLACE MODE!";
                        default:
                            qDebug() << "unhandled CSI FinalBytesNoIntermediate::RM";
                            break;
                        }
                    }
                    tokenFinished();
                    break;
                case FinalBytesNoIntermediate::SGR: {
                    appendParameter();

                    if (!parameters.size())
                        parameters << 0;

                    for (int i = 0; i < parameters.size(); i++) {
                        switch(parameters.at(i)) {
                        case 0:
                            screen.style().reset();
                            break;
                        case 1:
                            screen.style().setFlag(ScreenStyle::Bold);
                            break;
                        case 5:
                            screen.style().setFlag(ScreenStyle::Blinking);
                            break;
                        case 4:
                            qDebug() << "Set palette!!";
                            tokenFinished();
                            break;
                        case 7:
                            screen.style().setFlag(ScreenStyle::Inverse);
                            break;
                        case 8:
                        {
                            QColor c = screen.style().fgColor();
                            c.setAlpha(0);
                            screen.style().setFgColor(c);
                            break;
                        }
                        case 22:
                            screen.style().clearFlag(ScreenStyle::Bold);
                            break;
                        case 24:
                            screen.style().clearFlag(ScreenStyle::Underline);
                            break;
                        case 25:
                            screen.style().clearFlag(ScreenStyle::Blinking);
                            break;
                        case 27:
                            screen.style().clearFlag(ScreenStyle::Inverse);
                            break;
                        case 28:
                        {
                            QColor c = screen.style().fgColor();
                            c.setAlpha(255);
                            screen.style().setFgColor(c);
                            break;
                        }
                        case 39:
                            screen.style().setFlag(ScreenStyle::DefaultFg);
                            break;
                        case 49:
                            screen.style().setFlag(ScreenStyle::DefaultBg);
                            break;
                        case 30:
                        case 31:
                        case 32:
                        case 33:
                        case 34:
                        case 35:
                        case 36:
                        case 37:
                            //screen.setFgColor(palette[parameters[i] - 30]);
                            //qDebug() << "Set fg color";
                            if(screen.style().hasFlag(ScreenStyle::Bold))
                                screen.style().setFgColor(brightPalette8[parameters[i] - 30]);
                            else
                                screen.style().setFgColor(darkPalette8[parameters[i] - 30]);
                            break;
                        case 40:
                        case 41:
                        case 42:
                        case 43:
                        case 44:
                        case 45:
                        case 46:
                        case 47:
                            //m_screen->setTextStyleColor(parameters.at(i));
                            //qDebug() << "Set bg color" << parameters[i];
                            screen.style().setBgColor(darkPalette8[parameters[i] - 40]);
                            break;
                        // below is 16-colors xterm support - http://www.xfree86.org/current/ctlseqs.html
                        case 90:
                        case 91:
                        case 92:
                        case 93:
                        case 94:
                        case 95:
                        case 96:
                        case 97:
                            screen.style().setFgColor(brightPalette8[parameters[i] - 90]);
                            break;
                        case 100:
                        case 101:
                        case 102:
                        case 103:
                        case 104:
                        case 105:
                        case 106:
                        case 107:
                            screen.style().setBgColor(brightPalette8[parameters[i] - 100]);
                            break;
                        case 38:
                            appendParameter();
                            qDebug() << "256 colors support fg" << parameters;
                            screen.style().setFgColor(color256(parameters[2]));
                            i = parameters.size();
                            tokenFinished();
                            break;
                        case 48:
                            appendParameter();
                            screen.style().setBgColor(color256(parameters[2]));
                            i = parameters.size();
                            tokenFinished();
                            break;
                        default:
                            qDebug() << "Unknown SGR" << parameters.at(i);
                        }
                    }

                    tokenFinished();
                }
                break;
                case FinalBytesNoIntermediate::DSR:
                    qDebug() << "report";
                case FinalBytesNoIntermediate::DAQ:
                case FinalBytesNoIntermediate::Reserved0:
                case FinalBytesNoIntermediate::Reserved1:
                    qDebug() << "Unhandeled CSI FinalBytesNoIntermediate squence" << character;
                    tokenFinished();
                    break;
                case FinalBytesNoIntermediate::Reserved2:
                    appendParameter();
                    if (parameters.size() == 2) {
                        if (parameters.at(0) >= 0) {
                            qDebug() << "Unimplemented setScrollArea";
                            //m_screen->setScrollArea(parameters.at(0),parameters.at(1));
                        } else {
                            qDebug() << "Unknown value for scrollRegion";
                        }
                    } else {
                        qDebug() << "Unknown parameterset for scrollRegion";
                    }
                    tokenFinished();
                    break;
                case FinalBytesNoIntermediate::Reserved3:
                case FinalBytesNoIntermediate::Reserved4:
                case FinalBytesNoIntermediate::Reserved5:
                case FinalBytesNoIntermediate::Reserved6:
                case FinalBytesNoIntermediate::Reserved7:
                case FinalBytesNoIntermediate::Reserved8:
                case FinalBytesNoIntermediate::Reserved9:
                case FinalBytesNoIntermediate::Reserveda:
                case FinalBytesNoIntermediate::Reservedb:
                case FinalBytesNoIntermediate::Reservedc:
                case FinalBytesNoIntermediate::Reservedd:
                case FinalBytesNoIntermediate::Reservede:
                case FinalBytesNoIntermediate::Reservedf:
                default:
                    qDebug() << "Unhandeled CSI FinalBytesNoIntermediate squence" << character;
                    tokenFinished();
                    break;
                }
            }
        }
    }
}
Esempio n. 4
0
// スコアの文字描画
void CStage::ScoreStringDraw(){
	m_score_graph->Draw(L"SCORE",
		-CScene::WIDTH / 2, CScene::HEIGHT / 2 - m_score_graph->GetSize() / 1.5,
		color256(102, 51, 255));

}
Esempio n. 5
0
/* Change background color */
static void _set_bg(TERM_REC *term, int color)
{
	tput(tparm(term->TI_bg[color256(term, color)]));
}