javauis/amms_akn/jni/src/equalizercontrol.cpp
branchRCL_3
changeset 14 04becd199f91
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/jni/src/equalizercontrol.cpp	Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,334 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+
+#include <jutils.h>
+
+#include "com_nokia_amms_control_audioeffect_EqualizerControl.h"
+#include <cmmaeventsource.h>
+#include "cammsequalizercontrolgroup.h"
+
+/**
+ * wrapper for CAMMSEqualizerControlGroup::GetBandLevelL()
+ */
+static void GetBandLevelL(
+    CAMMSEqualizerControlGroup *aControl,
+    TInt aBand,
+    TInt *aLevel)
+{
+    aControl->GetBandLevelL(aBand, *aLevel);
+}
+
+/**
+ * wrapper for CAMMSEqualizerControlGroup::CenterFreqL()
+ */
+static void GetCenterFreqL(
+    CAMMSEqualizerControlGroup *aControl,
+    TInt aBand,
+    TInt *aFrequency)
+{
+    aControl->GetCenterFreqL(aBand, *aFrequency);
+}
+
+/**
+ * wrapper for CAMMSEqualizerControlGroup::SetBandLevelL()
+ */
+static void SetBandLevelL(
+    CAMMSEqualizerControlGroup *aControl,
+    TInt aLevel,
+    TInt aBand)
+{
+    aControl->SetBandLevelL(aLevel, aBand);
+}
+
+/**
+ * wrapper for CAMMSEqualizerControlGroup::SetBassL()
+ */
+static void SetBassL(CAMMSEqualizerControlGroup *aControl, TInt *aLevel, TInt *aSetLevel)
+{
+    aControl->SetBassL(*aLevel, *aSetLevel);
+}
+
+/**
+ * wrapper for CAMMSEqualizerControlGroup::SetTrebleL()
+ */
+static void SetTrebleL(CAMMSEqualizerControlGroup *aControl, TInt *aLevel, TInt *aSetLevel)
+{
+    aControl->SetTrebleL(*aLevel, *aSetLevel);
+}
+
+/*
+ * Class:     com_nokia_amms_control_audioeffect_EqualizerControl
+ * Method:    _getBand
+ * Signature: (III)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_amms_control_audioeffect_EqualizerControl__1getBand(
+    JNIEnv*, jclass, jint aEventSource, jint aControl, jint aFrequency)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand< CMMAEventSource >(aEventSource);
+
+    CAMMSEqualizerControlGroup* control =
+        static_cast<CAMMSEqualizerControlGroup*>(
+            JavaUnhand< CAMMSControlGroup >(aControl));
+
+    return control->Band(aFrequency);
+}
+
+/*
+ * Class:     com_nokia_amms_control_audioeffect_EqualizerControl
+ * Method:    _getTreble
+ * Signature: (II)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_amms_control_audioeffect_EqualizerControl__1getTreble(
+    JNIEnv*, jclass, jint aEventSource, jint aControl)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand< CMMAEventSource >(aEventSource);
+
+    CAMMSEqualizerControlGroup* control =
+        static_cast<CAMMSEqualizerControlGroup*>(
+            JavaUnhand< CAMMSControlGroup >(aControl));
+
+    return control->Treble();
+}
+
+/*
+ * Class:     com_nokia_amms_control_audioeffect_EqualizerControl
+ * Method:    _setBass
+ * Signature: (III)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_amms_control_audioeffect_EqualizerControl__1setBass(
+    JNIEnv*, jclass, jint aEventSource, jint aControl, jint aLevel)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand< CMMAEventSource >(aEventSource);
+
+    CAMMSEqualizerControlGroup* control =
+        static_cast<CAMMSEqualizerControlGroup*>(
+            JavaUnhand< CAMMSControlGroup >(aControl));
+
+    TInt error;
+    TInt level = aLevel;
+    TInt setLevel;
+
+    error = eventSource->ExecuteTrap(SetBassL, control, &level, &setLevel);
+    return (error < KErrNone) ? error : setLevel;
+}
+
+/*
+ * Class:     com_nokia_amms_control_audioeffect_EqualizerControl
+ * Method:    _getCenterFreq
+ * Signature: (III)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_amms_control_audioeffect_EqualizerControl__1getCenterFreq(
+    JNIEnv*, jclass, jint aEventSource, jint aControl, jint aBand)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand< CMMAEventSource >(aEventSource);
+
+    CAMMSEqualizerControlGroup* control =
+        static_cast<CAMMSEqualizerControlGroup*>(
+            JavaUnhand< CAMMSControlGroup >(aControl));
+
+    TInt error;
+    TInt freq;
+
+    error = eventSource->ExecuteTrap(
+                GetCenterFreqL,
+                control,
+                (TInt) aBand,
+                &freq);
+
+    return (error < KErrNone) ? error : freq;
+}
+
+/*
+ * Class:     com_nokia_amms_control_audioeffect_EqualizerControl
+ * Method:    _setBandLevel
+ * Signature: (IIII)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_amms_control_audioeffect_EqualizerControl__1setBandLevel(
+    JNIEnv*,
+    jclass,
+    jint aEventSource,
+    jint aControl,
+    jint aLevel,
+    jint aBand)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand< CMMAEventSource >(aEventSource);
+
+    CAMMSEqualizerControlGroup* control =
+        static_cast<CAMMSEqualizerControlGroup*>(
+            JavaUnhand< CAMMSControlGroup >(aControl));
+
+    TInt error;
+    error = eventSource->ExecuteTrap(
+                SetBandLevelL,
+                control,
+                (TInt) aLevel,
+                (TInt) aBand);
+
+    return error;
+}
+
+/*
+ * Class:     com_nokia_amms_control_audioeffect_EqualizerControl
+ * Method:    _setTreble
+ * Signature: (III)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_amms_control_audioeffect_EqualizerControl__1setTreble(
+    JNIEnv*, jclass, jint aEventSource, jint aControl, jint aLevel)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand< CMMAEventSource >(aEventSource);
+
+    CAMMSEqualizerControlGroup* control =
+        static_cast<CAMMSEqualizerControlGroup*>(
+            JavaUnhand< CAMMSControlGroup >(aControl));
+
+    TInt error;
+    TInt level = aLevel;
+    TInt setLevel;
+
+    error = eventSource->ExecuteTrap(SetTrebleL, control, &level, &setLevel);
+    return (error < KErrNone) ? error : setLevel;
+}
+
+/*
+ * Class:     com_nokia_amms_control_audioeffect_EqualizerControl
+ * Method:    _getNumberOfBands
+ * Signature: (II)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_amms_control_audioeffect_EqualizerControl__1getNumberOfBands(
+    JNIEnv*,
+    jclass,
+    jint aEventSource,
+    jint aControl)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand< CMMAEventSource >(aEventSource);
+
+    CAMMSEqualizerControlGroup* control =
+        static_cast<CAMMSEqualizerControlGroup*>(
+            JavaUnhand< CAMMSControlGroup >(aControl));
+
+    return control->NumberOfBands();
+}
+
+/*
+ * Class:     com_nokia_amms_control_audioeffect_EqualizerControl
+ * Method:    _getMinBandLevel
+ * Signature: (IILI)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_amms_control_audioeffect_EqualizerControl__1getMinBandLevel(
+    JNIEnv*,
+    jclass,
+    jint aEventSource,
+    jint aControl)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand< CMMAEventSource >(aEventSource);
+
+    CAMMSEqualizerControlGroup* control =
+        static_cast<CAMMSEqualizerControlGroup*>(
+            JavaUnhand< CAMMSControlGroup >(aControl));
+
+
+    return control->MinBandLevel();
+}
+
+/*
+ * Class:     com_nokia_amms_control_audioeffect_EqualizerControl
+ * Method:    _getBass
+ * Signature: (II)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_amms_control_audioeffect_EqualizerControl__1getBass(
+    JNIEnv*, jclass, jint aEventSource, jint aControl)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand< CMMAEventSource >(aEventSource);
+
+    CAMMSEqualizerControlGroup* control =
+        static_cast<CAMMSEqualizerControlGroup*>(
+            JavaUnhand< CAMMSControlGroup >(aControl));
+
+    return control->Bass();
+}
+
+/*
+ * Class:     com_nokia_amms_control_audioeffect_EqualizerControl
+ * Method:    _getMaxBandLevel
+ * Signature: (IILI)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_amms_control_audioeffect_EqualizerControl__1getMaxBandLevel(
+    JNIEnv*, jclass, jint aEventSource, jint aControl)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand< CMMAEventSource >(aEventSource);
+
+    CAMMSEqualizerControlGroup* control =
+        static_cast<CAMMSEqualizerControlGroup*>(
+            JavaUnhand< CAMMSControlGroup >(aControl));
+
+    return control->MaxBandLevel();
+}
+
+/*
+ * Class:     com_nokia_amms_control_audioeffect_EqualizerControl
+ * Method:    _getBandLevel
+ * Signature: (IIILI)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_amms_control_audioeffect_EqualizerControl__1getBandLevel(
+    JNIEnv* aJni,
+    jclass,
+    jint aEventSource,
+    jint aControl,
+    jint aBand,
+    jintArray aLevel)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand< CMMAEventSource >(aEventSource);
+
+    CAMMSEqualizerControlGroup* control =
+        static_cast<CAMMSEqualizerControlGroup*>(
+            JavaUnhand< CAMMSControlGroup >(aControl));
+
+    TInt error;
+    TInt level;
+
+    error = eventSource->ExecuteTrap(
+                GetBandLevelL,
+                control,
+                (TInt) aBand,
+                &level);
+
+    if (error == KErrNone)
+    {
+        // aLevel is an array of 1 element allocated at the java side
+        aJni->SetIntArrayRegion(
+            /*destination*/ aLevel,
+            /*first*/ 0,
+            /*count*/ 1,
+            /*source*/ &level);
+    }
+    return error;
+}
+
+
+//  End of File