aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2011-08-11 03:02:42 -0500
committerDenis Kenzior <denkenz@gmail.com>2011-08-11 04:20:45 -0500
commit11d7df82fef8eb51d4c773a5ddb172e52cb306cd (patch)
treeef98bff1c93657adce71b067e561b9b3635abf99
parentdb5ea99c8d7b38b2e3a4915e808587f26e90298a (diff)
downloadphonesim-11d7df82fef8eb51d4c773a5ddb172e52cb306cd.tar.gz
simapp: Add 'Modem Handled' commands
-rw-r--r--src/simapplication.cpp72
-rw-r--r--src/simapplication.h2
2 files changed, 74 insertions, 0 deletions
diff --git a/src/simapplication.cpp b/src/simapplication.cpp
index e0adf6b..bede410 100644
--- a/src/simapplication.cpp
+++ b/src/simapplication.cpp
@@ -315,6 +315,7 @@ const QString DemoSimApplication::getName()
#define MainMenu_Refresh 17
#define MainMenu_LocalInfo 18
#define MainMenu_BIP 19
+#define MainMenu_Handled 20
#define SportsMenu_Chess 1
#define SportsMenu_Painting 2
@@ -381,6 +382,8 @@ const QString DemoSimApplication::getName()
#define BIPMenu_SendData_Store 6
#define BIPMenu_GetChannelStatus 7
+#define Handled_SendSMS 1
+
enum SendSMSMenuItems {
SendSMS_Unpacked = 1,
SendSMS_Packed,
@@ -485,6 +488,10 @@ void DemoSimApplication::mainMenu()
item.setLabel( "BIP commands" );
items += item;
+ item.setIdentifier( MainMenu_Handled );
+ item.setLabel( "Modem-Handled commands" );
+ items += item;
+
cmd.setMenuItems( items );
command( cmd, 0, 0 );
@@ -633,6 +640,12 @@ void DemoSimApplication::mainMenuSelection( int id )
}
break;
+ case MainMenu_Handled:
+ {
+ sendHandledMenu();
+ }
+ break;
+
default:
{
// Don't know what this item is, so just re-display the main menu.
@@ -2616,3 +2629,62 @@ void DemoSimApplication::sendBIPMenu()
command( cmd, this, SLOT(BIPMenu(QSimTerminalResponse)) );
}
+
+void DemoSimApplication::sendHandledMenu()
+{
+ QSimCommand cmd;
+ QSimMenuItem item;
+ QList<QSimMenuItem> items;
+
+ cmd.setType( QSimCommand::SelectItem );
+ cmd.setTitle( "Modem-Handled Commands Menu" );
+
+ item.setIdentifier( Handled_SendSMS );
+ item.setLabel( "Send Modem-Handled SMS" );
+ items += item;
+
+ cmd.setMenuItems( items );
+
+ command( cmd, this, SLOT(handledMenuResp(QSimTerminalResponse)) );
+}
+
+void DemoSimApplication::handledMenuResp( const QSimTerminalResponse& resp )
+{
+ QSimCommand cmd;
+
+ if ( resp.result() != QSimTerminalResponse::Success ) {
+ /* Unknown response - just go back to the main menu. */
+ endSession();
+
+ return;
+ }
+
+ /* Item selected. */
+ switch ( resp.menuItem() ) {
+ case Handled_SendSMS:
+ {
+ QSMSMessage sms;
+ sms.setValidityPeriod( -1 );
+ sms.setMessageClass( 2 );
+ sms.setProtocol( 0 );
+ sms.setRecipient( "12345" );
+ sms.setText( smsText );
+ sms.setForceGsm( false );
+ sms.setBestScheme( QSMS_8BitAlphabet );
+ sms.setDataCodingScheme( 0xf6 );
+
+ cmd.setType( QSimCommand::SendSMS );
+ cmd.setText( "Sending an SMS to our friends at 12345" );
+ cmd.setNumber( "123" );
+ cmd.addExtensionField( 0x8b, sms.toPdu().mid( 1 ) );
+ cmd.setDestinationDevice( QSimCommand::Network );
+
+ modemHandledCommand(cmd, 6000);
+ break;
+ }
+
+ default:
+ endSession();
+ break;
+ }
+}
diff --git a/src/simapplication.h b/src/simapplication.h
index 6134e2d..54ef103 100644
--- a/src/simapplication.h
+++ b/src/simapplication.h
@@ -133,6 +133,8 @@ protected slots:
void localInfoMenu( const QSimTerminalResponse& resp );
void sendBIPMenu();
void BIPMenu( const QSimTerminalResponse& resp );
+ void sendHandledMenu();
+ void handledMenuResp( const QSimTerminalResponse& resp );
private:
int sticksLeft;