mmserv/radioutility/radioserver/Session/Src/RadioRequest.cpp
branchRCL_3
changeset 46 0ac9a5310753
parent 45 095bea5f582e
equal deleted inserted replaced
45:095bea5f582e 46:0ac9a5310753
    19 
    19 
    20 
    20 
    21 // INCLUDE FILES
    21 // INCLUDE FILES
    22 #include    "RadioRequest.h"
    22 #include    "RadioRequest.h"
    23 #include    "RadioDebug.h"
    23 #include    "RadioDebug.h"
    24 #include    "trace.h"
       
    25 
    24 
    26 // ============================ MEMBER FUNCTIONS ===============================
    25 // ============================ MEMBER FUNCTIONS ===============================
    27 
    26 
    28 // -----------------------------------------------------------------------------
    27 // -----------------------------------------------------------------------------
    29 // CRadioRequest::CRadioRequest
    28 // CRadioRequest::CRadioRequest
    42 		iBool(EFalse),
    41 		iBool(EFalse),
    43 		iBoolPckg(iBool),
    42 		iBoolPckg(iBool),
    44 		iInt(0),
    43 		iInt(0),
    45 		iIntPckg(iInt)
    44 		iIntPckg(iInt)
    46     {
    45     {
    47     FUNC_LOG;
       
    48     }
    46     }
    49 
    47 
    50 // -----------------------------------------------------------------------------
    48 // -----------------------------------------------------------------------------
    51 // CRadioRequest::ConstructL
    49 // CRadioRequest::ConstructL
    52 // Symbian 2nd phase constructor can leave.
    50 // Symbian 2nd phase constructor can leave.
    53 // -----------------------------------------------------------------------------
    51 // -----------------------------------------------------------------------------
    54 //
    52 //
    55 void CRadioRequest::ConstructL()
    53 void CRadioRequest::ConstructL()
    56     {
    54     {
    57     FUNC_LOG;
    55 	RADIO_RDEBUG(_L("[RADIO-SESS] CRadioRequest::ConstructL()"));
    58 	CActiveScheduler::Add(this);
    56 	CActiveScheduler::Add(this);
    59     }
    57     }
    60 
    58 
    61 // -----------------------------------------------------------------------------
    59 // -----------------------------------------------------------------------------
    62 // CRadioRequest::NewLC
    60 // CRadioRequest::NewLC
    66 CRadioRequest* CRadioRequest::NewLC(
    64 CRadioRequest* CRadioRequest::NewLC(
    67 	RRadioSession& aSession,
    65 	RRadioSession& aSession,
    68 	MRadioObserver& aObserver,
    66 	MRadioObserver& aObserver,
    69 	TRadioServerRequest aRequest )
    67 	TRadioServerRequest aRequest )
    70     {
    68     {
    71     FUNC_LOG;
       
    72     CRadioRequest* self = new( ELeave ) CRadioRequest(aSession, aObserver, aRequest);
    69     CRadioRequest* self = new( ELeave ) CRadioRequest(aSession, aObserver, aRequest);
    73     CleanupStack::PushL( self );
    70     CleanupStack::PushL( self );
    74     self->ConstructL();
    71     self->ConstructL();
    75     return self;
    72     return self;
    76     }
    73     }
    77 
    74 
    78 // Destructor
    75 // Destructor
    79 CRadioRequest::~CRadioRequest()
    76 CRadioRequest::~CRadioRequest()
    80     {
    77     {
    81     FUNC_LOG;
       
    82     INFO_1("My pointer: 0x%x", this );
       
    83 	if ( IsActive() )
    78 	if ( IsActive() )
    84 		{
    79 		{
    85 		Cancel();
    80 		Cancel();
    86 		}
    81 		}
    87     }
    82     }
    94 //
    89 //
    95 void CRadioRequest::CompleteRequest(
    90 void CRadioRequest::CompleteRequest(
    96 	TRadioServerRequest aRequest,
    91 	TRadioServerRequest aRequest,
    97 	TInt aError )
    92 	TInt aError )
    98     {
    93     {
    99     FUNC_LOG;
       
   100 	iRequest = aRequest;
    94 	iRequest = aRequest;
   101 
    95 
   102 	TRequestStatus* stat = &iStatus;
    96 	TRequestStatus* stat = &iStatus;
   103     User::RequestComplete(stat, aError);
    97     User::RequestComplete(stat, aError);
   104 	SetActive();
    98 	SetActive();
   108 // CRadioRequest::DoCancel
   102 // CRadioRequest::DoCancel
   109 // -----------------------------------------------------------------------------
   103 // -----------------------------------------------------------------------------
   110 //
   104 //
   111 void CRadioRequest::DoCancel()
   105 void CRadioRequest::DoCancel()
   112     {
   106     {
   113     FUNC_LOG;
       
   114 	iSession.CancelRequest(iRequest);
   107 	iSession.CancelRequest(iRequest);
   115     }
   108     }
   116 
   109 
   117 // -----------------------------------------------------------------------------
   110 // -----------------------------------------------------------------------------
   118 // CRadioRequest::RunL
   111 // CRadioRequest::RunL
   119 // -----------------------------------------------------------------------------
   112 // -----------------------------------------------------------------------------
   120 //
   113 //
   121 void CRadioRequest::RunL()
   114 void CRadioRequest::RunL()
   122     {
   115     {
   123     FUNC_LOG;
       
   124 	TInt err = iStatus.Int();
   116 	TInt err = iStatus.Int();
   125 	if ( err == KErrCancel )
   117 	if ( err == KErrCancel )
   126 		{
   118 		{
   127 		// Ignore the cancelled request
   119 		// Ignore the cancelled request
   128 		INFO_1("cancelled iRequest [%d]", iRequest);
   120 		RADIO_RDEBUG_INT(_L("[RADIO-SESS] CRadioRequest::RunL():cancelled [%d]"), iRequest);
   129 		return;
   121 		return;
   130 		}
   122 		}
   131 
   123 
   132 	switch( iRequest )
   124 	switch( iRequest )
   133 		{
   125 		{
   134 		// Place the most frequent ones on top
   126 		// Place the most frequent ones on top
   135 		case ERadioServStationSeek:
   127 		case ERadioServStationSeek:
   136 			{
   128 			{
   137 			iInt = iIntPckg();
   129 			iInt = iIntPckg();
   138 			INFO_1("ERadioServStationSeek [%d]", iInt);
   130 			RADIO_RDEBUG_INT(_L("[RADIO-SESS] CRadioRequest::RunL(): ERadioServStationSeek [%d]"), iInt);
   139 			iObserver.StationSeekComplete(err, iInt);
   131 			iObserver.StationSeekComplete(err, iInt);
   140 			}
   132 			}
   141 			break;
   133 			break;
   142 		case ERadioServSetFrequency:
   134 		case ERadioServSetFrequency:
   143 			{
   135 			{
   144 			INFO("ERadioServSetFrequency");
   136 			RADIO_RDEBUG(_L("[RADIO-SESS] CRadioRequest::RunL(): ERadioServSetFrequency"));
   145 			iObserver.SetFrequencyComplete(err);
   137 			iObserver.SetFrequencyComplete(err);
   146 			}
   138 			}
   147 			break;
   139 			break;
   148 		case ERadioServRequestTunerControl:
   140 		case ERadioServRequestTunerControl:
   149 			{
   141 			{
   150 			INFO("ERadioServRequestTunerControl");
   142 			RADIO_RDEBUG(_L("[RADIO-SESS] CRadioRequest::RunL(): ERadioServRequestTunerControl"));
   151 			iObserver.RequestTunerControlComplete(err);
   143 			iObserver.RequestTunerControlComplete(err);
   152 			}
   144 			}
   153 			break;
   145 			break;
   154 		case ERadioServSetFrequencyRange:
   146 		case ERadioServSetFrequencyRange:
   155 			{
   147 			{
   156 			INFO("ERadioServSetFrequencyRange");
   148 			RADIO_RDEBUG(_L("[RADIO-SESS] CRadioRequest::RunL(): ERadioServSetFrequencyRange"));
   157 			iObserver.SetFrequencyRangeComplete(err);
   149 			iObserver.SetFrequencyRangeComplete(err);
   158 			}
   150 			}
   159 			break;
   151 			break;
   160 		case ERadioServPlay:
   152 		case ERadioServPlay:
   161 			{
   153 			{
   162 			INFO("INFOERadioServPlay");
   154 			RADIO_RDEBUG(_L("[RADIO-SESS] CRadioRequest::RunL(): ERadioServPlay"));
   163 			if ( err != KErrNone )
   155 			if ( err != KErrNone )
   164 				{
   156 				{
   165 				iObserver.RadioEventStateChange(EFalse, err);
   157 				iObserver.RadioEventStateChange(EFalse, err);
   166 				}
   158 				}
   167 			}
   159 			}
   168 			break;
   160 			break;
   169 		case ERadioServStationSeekByPTY:
   161 		case ERadioServStationSeekByPTY:
   170 			{
   162 			{
   171 			iInt = iIntPckg();
   163 			iInt = iIntPckg();
   172 			INFO_1("ERadioServStationSeekByPTY [%d]", iInt);
   164 			RADIO_RDEBUG_INT(_L("[RADIO-SESS] CRadioRequest::RunL(): ERadioServStationSeekByPTY [%d]"), iInt);
   173 			iObserver.StationSeekByPTYComplete(err, iInt);
   165 			iObserver.StationSeekByPTYComplete(err, iInt);
   174 			}
   166 			}
   175 			break;
   167 			break;
   176 		case ERadioServStationSeekByTA:
   168 		case ERadioServStationSeekByTA:
   177 			{
   169 			{
   178 			iInt = iIntPckg();
   170 			iInt = iIntPckg();
   179 			INFO_1("ERadioServStationSeekByTA [%d]", iInt);
   171 			RADIO_RDEBUG_INT(_L("[RADIO-SESS] CRadioRequest::RunL(): ERadioServStationSeekByTA [%d]"), iInt);
   180 			iObserver.StationSeekByTAComplete(err, iInt);
   172 			iObserver.StationSeekByTAComplete(err, iInt);
   181 			}
   173 			}
   182 			break;
   174 			break;
   183 		case ERadioServStationSeekByTP:
   175 		case ERadioServStationSeekByTP:
   184 			{
   176 			{
   185 			iInt = iIntPckg();
   177 			iInt = iIntPckg();
   186 			INFO_1("ERadioServStationSeekByTP [%d]", iInt);
   178 			RADIO_RDEBUG_INT(_L("[RADIO-SESS] CRadioRequest::RunL(): ERadioServStationSeekByTP [%d]"), iInt);
   187 			iObserver.StationSeekByTPComplete(err, iInt);
   179 			iObserver.StationSeekByTPComplete(err, iInt);
   188 			}
   180 			}
   189 			break;
   181 			break;
   190 		case ERadioServGetFreqByPTY:
   182 		case ERadioServGetFreqByPTY:
   191 			{
   183 			{
   211 			iObserver.GetPSByTAComplete(err, psList);
   203 			iObserver.GetPSByTAComplete(err, psList);
   212 			}
   204 			}
   213 			break;
   205 			break;
   214 		default:
   206 		default:
   215 			{
   207 			{
   216 			INFO("ERROR case default !!!");
   208 			RADIO_RDEBUG(_L("[RADIO-SESS] CRadioRequest::RunL(): ERROR case default !!!"));
   217 			User::Panic(_L("RadioServer"), KErrGeneral );
   209 			User::Panic(_L("RadioServer"), KErrGeneral );
   218 			break;
   210 			break;
   219 			}
   211 			}
   220 		}
   212 		}
   221     }
   213     }