accessoryservices/accessoryserver/src/Control/AccModeSettingArray.cpp
changeset 0 4e1aa6a622a0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/accessoryserver/src/Control/AccModeSettingArray.cpp	Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,176 @@
+/*
+* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Support class used to deliver accessory settings related
+*        parameters.
+*
+*/
+
+
+// INCLUDE FILES
+#include "acc_debug.h"
+#include <AccModeSettingArray.h>
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// TAccModeSettingArray::TAccModeSettingArray
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TAccModeSettingArray::TAccModeSettingArray()
+    {
+    API_TRACE_( "[AccFW:Client] TAccModeSettingArray::TAccModeSettingArray()" );
+
+    iIndex = 0;
+    }
+
+// -----------------------------------------------------------------------------
+// TAccModeSetting::AddSetting
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt TAccModeSettingArray::AddSetting( const TAccModeSetting& aSetting )
+    {
+    API_TRACE_( "[AccFW:Client] TAccModeSettingArray::AddSetting()" );
+
+    TInt err( KErrNone );
+
+    // Make sure that same index isn't yet in use
+    for( TInt i=0; i<GetArraySize(); ++i )
+        {
+        TAccModeSetting setting;
+        GetSetting( i, setting );
+        if( aSetting.Id() == setting.Id() )
+            {
+            err = KErrAlreadyExists;
+            }
+        }
+
+    // Set new setting
+    if( err == KErrNone )
+        {
+        if( iIndex < KMaxAccModeSettings )
+            {
+            iSettings[iIndex++] = aSetting;
+            }
+        else
+            {
+            // Array is full
+            err = KErrNotSupported;
+            }
+        }
+
+    API_TRACE_1( "[AccFW:Client] TAccModeSettingArray::AddSetting() - return %d", err );
+
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// TAccModeSetting::GetSetting
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt TAccModeSettingArray::GetSetting( const TInt aIndex,
+                                                TAccModeSetting& aSetting ) const
+    {
+    API_TRACE_( "[AccFW:Client] TAccModeSettingArray::GetSetting()" );
+
+    TInt err( KErrNone );
+
+    // Get setting
+    if( aIndex >= 0 && aIndex < KMaxAccModeSettings )
+        {
+        aSetting = iSettings[aIndex];
+        }
+    else
+        {
+        err = KErrNotSupported;
+        }
+
+    API_TRACE_1( "[AccFW:Client] TAccModeSettingArray::GetSetting() - return %d", err );
+
+    return err;
+    }
+    
+// -----------------------------------------------------------------------------
+// TAccModeSetting::Reset
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TAccModeSettingArray::Reset()
+	{
+	API_TRACE_( "[AccFW:Client] TAccModeSettingArray::Reset()" );
+
+	TAccModeSetting emptySetting;
+	
+	for( TInt i=0; i<KMaxAccModeSettings; ++i )
+        {
+		iSettings[i] = emptySetting;		
+		}
+		
+	iIndex = 0;
+	}
+
+// -----------------------------------------------------------------------------
+// TAccModeSetting::GetArraySize
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt TAccModeSettingArray::GetArraySize() const
+    {
+    API_TRACE_1( "[AccFW:Client] TAccModeSettingArray::GetArraySize() - returns %d", iIndex );
+
+    // iIndex points to next free array slot
+    return iIndex;
+    }
+
+// -----------------------------------------------------------------------------
+// TAccModeSetting::GetMaxArraySize
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt TAccModeSettingArray::GetMaxArraySize() const
+    {
+    API_TRACE_1( "[AccFW:Client] TAccModeSettingArray::MaxArraySize() - return %d", KMaxAccModeSettings );
+
+    return KMaxAccModeSettings;
+    }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+//  End of File
+