in str/apps/src/UserInterface.cpp [9:73]
void UserInterface::inputFirstCode() {
char firstCodeText[32];
int digit = 0;
bool isChangedFirstCode = false;
// 初期位置コードを入力してください
msg_f( "Please set first code", 4 );
// 初期位置コードの初期値と操作している桁数の初期位置を表示する
sprintf( firstCodeText, "%05ld", firstCode.getFirstCode() );
msg_f( firstCodeText, 5 );
digit = firstCode.getDigit();
msg_f( getCurrentDigitText( digit ), 6 );
ev3_speaker_set_volume( 20 );
ev3_speaker_play_tone( 200, 500 );
// 初期位置コードを入力
while( 1 ) {
// ENTERボタンが押されたらループを抜ける
if( ev3_button_is_pressed( ENTER_BUTTON ) ) {
isChangedFirstCode = true;
break;
}
if( ev3_button_is_pressed( UP_BUTTON ) ) {
firstCode.upDigit( digit );
isChangedFirstCode = true;
}
if( ev3_button_is_pressed( DOWN_BUTTON ) ) {
firstCode.downDigit( digit );
isChangedFirstCode = true;
}
if( ev3_button_is_pressed( RIGHT_BUTTON ) ) {
firstCode.changeRightDigit();
isChangedFirstCode = true;
}
if( ev3_button_is_pressed( LEFT_BUTTON ) ) {
firstCode.changeLeftDigit();
isChangedFirstCode = true;
}
digit = firstCode.getDigit();
// ボタンが押された時に限り画面表示を変更する
if( isChangedFirstCode ) {
ev3_speaker_play_tone( 1000, 100 );
sprintf( firstCodeText, "%05ld", firstCode.getFirstCode() );
msg_f( firstCodeText, 5 );
msg_f( getCurrentDigitText( digit ), 6 );
tslp_tsk( 500 );
}
isChangedFirstCode = false;
tslp_tsk( 4 );
}
// 終了
sprintf( firstCodeText, "Input first code for <%05ld>.", firstCode.getFirstCode() );
msg_f( firstCodeText, 4 );
ev3_speaker_play_tone( 1500, 50 );
tslp_tsk( 100 );
ev3_speaker_play_tone( 1500, 50 );
}