kernel/eka/drivers/hcr/hcr_api.cpp
branchRCL_3
changeset 43 c1f20ce4abcf
parent 14 5d2844f35677
child 44 3e88ff8f41d5
equal deleted inserted replaced
42:a179b74831c9 43:c1f20ce4abcf
    32 #include "hcr_pil.h"
    32 #include "hcr_pil.h"
    33 
    33 
    34 
    34 
    35 // -- FUNCTIONS ---------------------------------------------------------------
    35 // -- FUNCTIONS ---------------------------------------------------------------
    36 
    36 
       
    37 
    37 #ifndef MAKE_DEF_FILE
    38 #ifndef MAKE_DEF_FILE
    38 namespace HCR 
    39 namespace HCR 
    39 {
    40 {
    40 
    41 
    41 LOCAL_C TInt GetUValueWordSetting (const TSettingId& aId, 
    42 LOCAL_C TInt GetUValueWordSetting (const TSettingId& aId, 
   371                                 TUint8* aValue, TUint16& aLen)                             
   372                                 TUint8* aValue, TUint16& aLen)                             
   372     {
   373     {
   373 #ifndef MAKE_DEF_FILE
   374 #ifndef MAKE_DEF_FILE
   374     HCR_FUNC("HCR::GetDataTUint8");
   375     HCR_FUNC("HCR::GetDataTUint8");
   375     
   376     
       
   377     if(aValue == NULL || aMaxLen == 0)
       
   378         HCR_TRACE_RETURN(KErrArgument);
       
   379     
   376     TInt err = GetUValueLargeSettingTUint8(aId, ETypeBinData, aMaxLen, aValue, aLen);
   380     TInt err = GetUValueLargeSettingTUint8(aId, ETypeBinData, aMaxLen, aValue, aLen);
   377     if (err != KErrNone)
   381     if (err != KErrNone)
   378         HCR_TRACE_RETURN(err);        
   382         HCR_TRACE_RETURN(err);        
   379     
   383     
   380     return KErrNone;    
   384     return KErrNone;    
   386 
   390 
   387 EXPORT_C TInt HCR::GetData(const TSettingId& aId, TDes8& aValue)
   391 EXPORT_C TInt HCR::GetData(const TSettingId& aId, TDes8& aValue)
   388     {
   392     {
   389 #ifndef MAKE_DEF_FILE
   393 #ifndef MAKE_DEF_FILE
   390     HCR_FUNC("HCR::GetDataTDes8");
   394     HCR_FUNC("HCR::GetDataTDes8");
       
   395     
       
   396     if(aValue.MaxLength()==0)
       
   397         HCR_TRACE_RETURN(KErrArgument);
   391     
   398     
   392     TInt err = GetUValueLargeSettingTDes8(aId, ETypeBinData, aValue);
   399     TInt err = GetUValueLargeSettingTDes8(aId, ETypeBinData, aValue);
   393     if (err != KErrNone)
   400     if (err != KErrNone)
   394         HCR_TRACE_RETURN(err);  
   401         HCR_TRACE_RETURN(err);  
   395              
   402              
   404                                 TText8* aValue, TUint16& aLen)
   411                                 TText8* aValue, TUint16& aLen)
   405     {
   412     {
   406 #ifndef MAKE_DEF_FILE
   413 #ifndef MAKE_DEF_FILE
   407     HCR_FUNC("HCR::GetStringTUint8");
   414     HCR_FUNC("HCR::GetStringTUint8");
   408     
   415     
       
   416     if(aValue == NULL || aMaxLen == 0)
       
   417             HCR_TRACE_RETURN(KErrArgument);
       
   418     
   409     TInt err = GetUValueLargeSettingTUint8(aId, ETypeText8, aMaxLen, aValue, aLen);
   419     TInt err = GetUValueLargeSettingTUint8(aId, ETypeText8, aMaxLen, aValue, aLen);
   410     if (err != KErrNone)
   420     if (err != KErrNone)
   411         HCR_TRACE_RETURN(err);        
   421         HCR_TRACE_RETURN(err);        
   412     
   422     
   413     return KErrNone;    
   423     return KErrNone;    
   420 EXPORT_C TInt HCR::GetString(const TSettingId& aId, TDes8& aValue)
   430 EXPORT_C TInt HCR::GetString(const TSettingId& aId, TDes8& aValue)
   421     {
   431     {
   422 #ifndef MAKE_DEF_FILE
   432 #ifndef MAKE_DEF_FILE
   423     HCR_FUNC("HCR::GetStringTUint8");
   433     HCR_FUNC("HCR::GetStringTUint8");
   424     
   434     
       
   435     if(aValue.MaxLength() == 0)
       
   436             HCR_TRACE_RETURN(KErrArgument);
       
   437         
   425     TInt err = GetUValueLargeSettingTDes8(aId, ETypeText8, aValue);
   438     TInt err = GetUValueLargeSettingTDes8(aId, ETypeText8, aValue);
   426     if (err != KErrNone)
   439     if (err != KErrNone)
   427         HCR_TRACE_RETURN(err);        
   440         HCR_TRACE_RETURN(err);        
   428     
   441     
   429     return KErrNone;    
   442     return KErrNone;    
   436                                 TInt32* aValue, TUint16& aLen)
   449                                 TInt32* aValue, TUint16& aLen)
   437     {
   450     {
   438 #ifndef MAKE_DEF_FILE
   451 #ifndef MAKE_DEF_FILE
   439     HCR_FUNC("HCR::GetArrayTInt32");
   452     HCR_FUNC("HCR::GetArrayTInt32");
   440     
   453     
       
   454     if(aValue == NULL || aMaxLen == 0)
       
   455                 HCR_TRACE_RETURN(KErrArgument);
       
   456         
   441     TInt err = GetUValueLargeSettingArray(aId, ETypeArrayInt32, aMaxLen, (TUint32*)aValue, aLen);
   457     TInt err = GetUValueLargeSettingArray(aId, ETypeArrayInt32, aMaxLen, (TUint32*)aValue, aLen);
   442     if (err != KErrNone)
   458     if (err != KErrNone)
   443         HCR_TRACE_RETURN(err);        
   459         HCR_TRACE_RETURN(err);        
   444     
   460     
   445     return KErrNone;    
   461     return KErrNone;    
   451 EXPORT_C TInt HCR::GetArray(const TSettingId& aId, TUint16 aMaxLen, 
   467 EXPORT_C TInt HCR::GetArray(const TSettingId& aId, TUint16 aMaxLen, 
   452                                 TUint32* aValue, TUint16& aLen)  
   468                                 TUint32* aValue, TUint16& aLen)  
   453     {
   469     {
   454 #ifndef MAKE_DEF_FILE
   470 #ifndef MAKE_DEF_FILE
   455     HCR_FUNC("HCR::GetArrayTUInt32");
   471     HCR_FUNC("HCR::GetArrayTUInt32");
       
   472     
       
   473     if(aValue == NULL || aMaxLen == 0)
       
   474                 HCR_TRACE_RETURN(KErrArgument);
   456     
   475     
   457     TInt err = GetUValueLargeSettingArray(aId, ETypeArrayUInt32, aMaxLen, aValue, aLen);
   476     TInt err = GetUValueLargeSettingArray(aId, ETypeArrayUInt32, aMaxLen, aValue, aLen);
   458     if (err != KErrNone)
   477     if (err != KErrNone)
   459         HCR_TRACE_RETURN(err);        
   478         HCR_TRACE_RETURN(err);        
   460     
   479     
   479     
   498     
   480     if(aNum <= 0 || aIds == NULL || aErrors == NULL || aValues == NULL)
   499     if(aNum <= 0 || aIds == NULL || aErrors == NULL || aValues == NULL)
   481         HCR_TRACE_RETURN(KErrArgument);
   500         HCR_TRACE_RETURN(KErrArgument);
   482     
   501     
   483     TInt err = KErrNone;
   502     TInt err = KErrNone;
       
   503     
       
   504     //Only UDEB, check is the user provided array aIds ordered?    
       
   505 #ifdef _DEBUG
       
   506     for(TInt cursor = 0; cursor < aNum - 1; cursor ++)
       
   507         {
       
   508     //Check the element at cursor position and one above 
       
   509     err = CompareSSettingIds(aIds[cursor], aIds[cursor+1]);
       
   510     //if next element is less than previous one then array is not ordered.
       
   511     //Critical error, report to user
       
   512     if(err >= 0)
       
   513         HCR_TRACE_RETURN(KErrArgument);
       
   514         }
       
   515 #endif
       
   516 
       
   517 
   484 
   518 
   485     //Don't leave while the resources are not fully allocated/deallocated
   519     //Don't leave while the resources are not fully allocated/deallocated
   486     NKern::ThreadEnterCS();
   520     NKern::ThreadEnterCS();
   487 
   521 
   488     err = HCRSingleton->GetWordSettings(aNum, aIds, aValues, aTypes, aErrors);
   522     err = HCRSingleton->GetWordSettings(aNum, aIds, aValues, aTypes, aErrors);