本文整理汇总了C++中CConsoleBase::KeyCode方法的典型用法代码示例。如果您正苦于以下问题:C++ CConsoleBase::KeyCode方法的具体用法?C++ CConsoleBase::KeyCode怎么用?C++ CConsoleBase::KeyCode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CConsoleBase
的用法示例。
在下文中一共展示了CConsoleBase::KeyCode方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RunL
// Implementation: called when read has completed.
void ConsoleUI::RunL()
{
TKeyCode kc = con_->KeyCode();
pj_bool_t reschedule = PJ_TRUE;
switch (kc) {
case 'w':
snd_stop();
CActiveScheduler::Stop();
reschedule = PJ_FALSE;
break;
case 'a':
snd_start(PJMEDIA_DIR_CAPTURE_PLAYBACK);
break;
case 't':
snd_start(PJMEDIA_DIR_CAPTURE);
break;
case 'p':
snd_start(PJMEDIA_DIR_PLAYBACK);
break;
case 'd':
snd_stop();
break;
default:
PJ_LOG(3,(THIS_FILE, "Keycode '%c' (%d) is pressed",
kc, kc));
break;
}
PrintMenu();
if (reschedule)
Run();
}
示例2: UseKernelCpuTime
void UseKernelCpuTime()
{
test.Start(_L("Create CCpuMeter"));
CCpuMeter* m = CCpuMeter::New();
test_NotNull(m);
TInt iv = 1000500; // on average 1000.5 ms
TRequestStatus s;
CConsoleBase* console = test.Console();
console->Read(s);
FOREVER
{
User::AfterHighRes(1000000);
m->Measure();
m->Display(iv);
while (s!=KRequestPending)
{
User::WaitForRequest(s);
TKeyCode k = console->KeyCode();
if (k == EKeyEscape)
{
delete m;
return;
}
if (m->iNumCpus > 1)
{
// SMP only options
if (k == EKeySpace)
m->DisplayCoreControlInfo();
else if (k>='1' && k<=('0'+m->iNumCpus))
m->ChangeNumberOfCores(k - '0');
}
console->Read(s);
}
}
}
示例3: InitConsoleL
LOCAL_C void InitConsoleL()
{
// create a full screen console object
CConsoleBase* console;
console = Console::NewL(KTxtTitle, TSize(KConsFullScreen,KConsFullScreen));
CleanupStack::PushL(console);
//Gets the size of the console
TSize screenSize = console->ScreenSize();
test.Printf(_L("Screen size %d %d\r\n"),screenSize.iWidth,screenSize.iHeight);
// Gets the cursor's x-position
TInt x = console->WhereX();
// Gets the cursor's y-position
TInt y = console->WhereY();
test_Equal(x, 0);
test_Equal(y, 0);
test.Printf(_L("**1** Cursor positions x: %d y: %d\r\n"),x, y);
// Sets the cursor's x-position
for(TInt i=0; i<4; i++)
{
console->SetPos(screenSize.iWidth + i);
x = console->WhereX();
test_Equal(x, screenSize.iWidth -3);
}
test.Printf(_L("**2** Cursor positions x: %d y: %d\r\n"),x, y);
// Clears the console and set cursor to position 0,0
console->ClearScreen();
test_Equal(console->WhereX(), 0);
test_Equal(console->WhereY(), 0);
// Sets the cursor's x-position and y-position
for(TInt j=0; j<4; j++)
{
console->SetPos(screenSize.iWidth - j, screenSize.iHeight - j);
x = console->WhereX();
y = console->WhereY();
test_Equal(x, screenSize.iWidth -3);
test_Equal(y, screenSize.iHeight -3);
}
test.Printf(_L("**3** Cursor positions x: %d y: %d\r\n"),x, y);
console->SetPos(0,0);
x = console->WhereX();
y = console->WhereY();
test_Equal(x, 0);
test_Equal(y, 0);
test.Printf(_L("**4** Cursor positions x: %d y: %d\r\n"),x, y);
console->SetPos(screenSize.iWidth/2,screenSize.iHeight/2);
x = console->WhereX();
y = console->WhereY();
test.Printf(_L("**5** Cursor positions x: %d y: %d\r\n"),x, y);
// Sets the percentage height of the cursor
console->SetCursorHeight(50);
// Gets the current cursor position relative to the console window
TPoint cursorPos = console->CursorPos();
test.Printf(_L("CursorPos iX: %d iY: %d\r\n"),cursorPos.iX, cursorPos.iY);
// Puts the cursor at the specified position relative
// to the current cursor position
TPoint relPos;
relPos.iX = screenSize.iWidth/4;
relPos.iY = screenSize.iHeight/4;
console->SetCursorPosRel(relPos);
cursorPos = console->CursorPos();
test.Printf(_L("CursorPosRel iX: %d iY: %d\r\n"),cursorPos.iX, cursorPos.iY);
// Puts the cursor at the absolute position in the window
cursorPos.iX = screenSize.iWidth/6;
cursorPos.iY = screenSize.iHeight/6;
console->SetCursorPosAbs(cursorPos);
cursorPos = console->CursorPos();
test.Printf(_L("CursorPosAbs iX: %d iY: %d\r\n"),cursorPos.iX, cursorPos.iY);
// Sets a new console title
console->SetTitle(KTxtNewTitle);
// Writes the content of the specified descriptor to the console window
console->Write(KTxtWrite);
cursorPos.iX = cursorPos.iX + 6;
console->SetCursorPosAbs(cursorPos);
// Clears the console from the current cursor position to the end of the line
console->ClearToEndOfLine();
// Clears the console and set cursor to position 0,0
console->ClearScreen();
TUint keyModifiers = console->KeyModifiers();
test.Printf(_L("keyModifiers %d"),keyModifiers);
TKeyCode keyCode = console->KeyCode();
ReadConsole(console);
SimulateKeyPress(EStdKeyEnter);
keyCode = console->Getch();
//.........这里部分代码省略.........
示例4:
TInt GetNumberEntry
(
const TInt aMaxDigits, // max numbers of digits
const TInt aMin, // min value allowed
const TInt aMax, // max value allowed
const TInt aInputWait, // (s) how long to wait for each user key entry
const TInt aDefaultVal, // default value if timed out
const TDesC &aPrompt // string prompt
)
/**
* This method gets numeric user entry from the console. It checks that the key entered
* is between 0 to 9 inclusive. This method exits by user hitting the
* Enter key or timing out.
*
* @param aMaxNumbers integer for max numbers of digits
* @param aMin integer for min value allowed
* @param aMax integer for max value allowed
* @param aInputWait integer for number of seconds to wait for each user key entry
* @param aDefaultVal integer for default value if time-out occurs without
* @param aPrompt string prompt
* @return KErrNone.
*/
{
TInt keyFolded; // actual digit entered, not TKeyCode
TRequestStatus stat1,stat2;
RTimer timer;
TBool bCorrectEntry = EFalse;
TInt userNum = -1;
TInt limit;
TKeyCode key;
TTimeIntervalMicroSeconds32 anInterval = aInputWait * 1000000;
CConsoleBase *pConsole = test.Console();
timer.CreateLocal();
while (!bCorrectEntry)
{
userNum = -1;
limit = aMaxDigits;
key = EKeyNull;
INFO_PRINTF1(aPrompt); // print prompt
INFO_PRINTF1(_L(" (range %d-%d) or <CR> for default of %d: "), aMin, aMax, aDefaultVal);
// exits loop when Enter keyed or limit reached (by decrement to 0)
while ((key != EKeyEnter) && limit)
{
pConsole->Read(stat1); // set read
timer.After(stat2, anInterval); // set wait for this period
User::WaitForRequest(stat1,stat2); // whatever comes first
if(stat1 == KErrNone) // user entered key
{
timer.Cancel();
User::WaitForRequest(stat2);
key = pConsole->KeyCode();
if((key >= '0') && (key <= '9'))
{
// valid digit
keyFolded = (TKeyCode)(key - '0'); // convert to digit
INFO_PRINTF1(_L("%d"), keyFolded); // echo
limit--; // tracks number of digits
// "append" to number
if (-1 == userNum) // ie first char entered
{
userNum = keyFolded;
}
else // next char entered
{
userNum = userNum * 10 + keyFolded; // shift
}
}
}
else // timer went off, use default unless valid key entered before timer expired
{
pConsole->ReadCancel();
User::WaitForRequest(stat1);
if (-1 == userNum)
{
// no value entered before timer went off
userNum = aDefaultVal;
}
break;
}
} // endwhile
test.Printf (_L("\n"));
if ((userNum >= aMin) && (userNum <= aMax))
{
bCorrectEntry = ETrue; // exit loop
}
else // return to loop
{
if (userNum == -1)
{
// <CR> was entered before any numbers, so use default
userNum = aDefaultVal;
break;
}
//.........这里部分代码省略.........