Adding AudioEqualizer and AudioRouter Forms
authorrahul varna <rahul.varna@samsung.com>
Fri, 29 Mar 2013 05:13:06 +0000 (14:13 +0900)
committerrahul varna <rahul.varna@samsung.com>
Fri, 29 Mar 2013 05:13:06 +0000 (14:13 +0900)
Signed-off-by: rahul varna <rahul.varna@samsung.com>
project/data/config.ini
project/inc/SceneId.h
project/manifest.xml
project/res/screen-size-normal/IDF_AUDIO_EQUALIZER_FORM.xml [new file with mode: 0644]
project/res/screen-size-normal/IDF_AUDIO_ROUTER.xml [new file with mode: 0644]
project/src/Audio/AudioEqualizerForm.cpp [new file with mode: 0644]
project/src/Audio/AudioEqualizerForm.h [new file with mode: 0644]
project/src/Audio/AudioRouteForm.cpp [new file with mode: 0644]
project/src/Audio/AudioRouteForm.h [new file with mode: 0644]
project/src/MainForm.cpp
project/src/MultiForm.cpp

index 806871e..c13e3b5 100644 (file)
@@ -18,6 +18,8 @@ Recorder::2.Video Recorder=1
 Recorder::3.Audio Recorder=1
 Audio::1.TonePlayer=1
 Audio::2.AudioInOut=1
+Audio::3.AudioEqualizer=1
+Audio::4.AudioRoute=1
 Player::1.Media Player=1
 Player::2.Multi Play=1
 Player::3.Camera and Player=1
@@ -51,6 +53,14 @@ count=5
 4.format=PNG
 4.dimension=30
 
+#AudioEqualizer\r
+srcfile=/Audio/SampleMP3.mp3\r
+volume=50\r
+countPresets=4\r
+preset0=12,6,0,-3,0,6,12\r
+preset1=-12,-6,0,3,0,-6,-12\r
+preset2=-12,-6,-3,0,3,6,12\r
+preset3=12,6,3,0,-3,-6,-12\r
 
 #GifViewer
 count=2
@@ -251,3 +261,6 @@ FileFormat=3gp
 maxRecordingSize=3000
 maxRecordingTime=20000
 playerFileName=res/Video/sampleH264.mp4
+
+#AudioRouter
+audioFile=data/Audio/audioRouteRecorded
index 6250cf5..806220d 100644 (file)
@@ -13,6 +13,8 @@ extern const Tizen::Ui::Scenes::SceneId IMAGE_COLOR_CONVERTER_SCENE_ID;
 //Audio
 extern const Tizen::Ui::Scenes::SceneId TONE_PLAYER_SCENE_ID;
 extern const Tizen::Ui::Scenes::SceneId AUDIO_INOUT_SCENE_ID;
+extern const Tizen::Ui::Scenes::SceneId AUDIO_EQUALIZER_SCENE_ID;
+extern const Tizen::Ui::Scenes::SceneId AUDIO_ROUTE_SCENE_ID;
 
 //Recorder
 extern const Tizen::Ui::Scenes::SceneId CAMERA_CAPTURE_SCENE_ID;
index 5155281..f9d5728 100644 (file)
@@ -15,6 +15,7 @@
             <Privilege>http://tizen.org/privilege/videorecorder</Privilege>
             <Privilege>http://tizen.org/privilege/camera</Privilege>
             <Privilege>http://tizen.org/privilege/power</Privilege>
+            <Privilege>http://tizen.org/privilege/audiomanager.route</Privilege>
         </Privileges>
         <UiApp HwAcceleration="On" Main="True" MenuIconVisible="True" Name="$(projectName)">
             <UiScalability BaseScreenSize="Normal" CoordinateSystem="Logical" LogicalCoordinate="480"/>
diff --git a/project/res/screen-size-normal/IDF_AUDIO_EQUALIZER_FORM.xml b/project/res/screen-size-normal/IDF_AUDIO_EQUALIZER_FORM.xml
new file mode 100644 (file)
index 0000000..caeb3db
--- /dev/null
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+
+<Scene Bversion="2.0.0.201303182057" Dversion="20120315">
+    <LogicalCoordinate>480</LogicalCoordinate>
+    <Form id="IDF_AUDIO_EQUALIZER_FORM">
+        <property backgroundColor="#E5E5E5" backgroundColorOpacity="100" notificationTrayOpenEnabled="false" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_LEFT" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+        <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="NONE"/>
+        <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="NONE"/>
+    </Form>
+    <Footer>
+        <property backgroundBitmapPath="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_TAB" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="false"/>
+        <itemSet/>
+    </Footer>
+    <Header>
+        <property accessibilityHint="" backgroundBitmapPath="" color="" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="Audio Equalizer" titleTextColor="#638AAF"/>
+        <itemSet/>
+    </Header>
+    <Label id="LABEL_MID" parent="IDF_AUDIO_EQUALIZER_FORM">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="#E5E5E5" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" leftMargin="16" text="0" textColor="" textSize="18.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="50.0" mode="Portrait" width="82.0" x="239.0" y="0.0"/>
+        <layout height="24.0" mode="Landscape" width="116.0" x="420.0" y="14.0"/>
+    </Label>
+    <Label id="LABEL_MAX" parent="IDF_AUDIO_EQUALIZER_FORM">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="#E5E5E5" backgroundColorOpacity="0" horizontalAlign="ALIGN_RIGHT" leftMargin="16" text="" textColor="" textSize="18.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="50.0" mode="Portrait" width="98.0" x="373.0" y="0.0"/>
+        <layout height="24.0" mode="Landscape" width="116.0" x="430.0" y="24.0"/>
+    </Label>
+    <Label id="LABEL_MIN" parent="IDF_AUDIO_EQUALIZER_FORM">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="#E5E5E5" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" leftMargin="16" text="" textColor="" textSize="18.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="50.0" mode="Portrait" width="98.0" x="60.0" y="0.0"/>
+        <layout height="24.0" mode="Landscape" width="116.0" x="440.0" y="34.0"/>
+    </Label>
+    <ScrollPanel id="PANEL_BANDS" parent="IDF_AUDIO_EQUALIZER_FORM">
+        <property autoResizingEnabled="true" backgroundColor="" backgroundColorOpacity="0" clientAreaHeight="0" clientAreaWidth="0" pageScrollEnabled="false" scrollBarVisible="true" scrollDirection="SCROLL_PANEL_SCROLL_DIRECTION_VERTICAL" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION"/>
+        <panelLayout height="100.0" mode="Portrait" width="480.0"/>
+        <panelLayout height="100.0" mode="Landscape" width="798.0"/>
+        <layout height="410.0" mode="Portrait" type="NONE" width="480.0" x="0.0" y="40.0"/>
+        <layout height="247.0" mode="Landscape" type="NONE" width="798.0" x="1.0" y="14.0"/>
+    </ScrollPanel>
+    <CheckButton id="IDC_CHECKBUTTON5" parent="IDF_AUDIO_EQUALIZER_FORM">
+        <property accessibilityHint1="" accessibilityHint2="" backgroundStyle="BACKGROUND_STYLE_NONE" colorOfText="" colorOfTitleText="" disabledColor="#FFFFFF" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="#FFFFFF" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="#E5E5E5" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="User Defined" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="50.0" mode="Portrait" style="" width="265.0" x="0.0" y="569.0"/>
+        <layout height="74.0" mode="Landscape" style="" width="376.0" x="31.0" y="250.0"/>
+    </CheckButton>
+    <CheckButton id="IDC_CHECKBUTTON1" parent="IDF_AUDIO_EQUALIZER_FORM">
+        <property accessibilityHint1="" accessibilityHint2="" backgroundStyle="BACKGROUND_STYLE_NONE" colorOfText="" colorOfTitleText="" disabledColor="#FFFFFF" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="#FFFFFF" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="#E5E5E5" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="Preset 1" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="50.0" mode="Portrait" style="" width="230.0" x="0.0" y="450.0"/>
+        <layout height="74.0" mode="Landscape" style="" width="376.0" x="41.0" y="250.0"/>
+    </CheckButton>
+    <CheckButton id="IDC_CHECKBUTTON2" parent="IDF_AUDIO_EQUALIZER_FORM">
+        <property accessibilityHint1="" accessibilityHint2="" backgroundStyle="BACKGROUND_STYLE_NONE" colorOfText="" colorOfTitleText="" disabledColor="#FFFFFF" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="#FFFFFF" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="#E5E5E5" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="Preset 2" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="50.0" mode="Portrait" style="" width="230.0" x="250.0" y="450.0"/>
+        <layout height="74.0" mode="Landscape" style="" width="376.0" x="51.0" y="250.0"/>
+    </CheckButton>
+    <CheckButton id="IDC_CHECKBUTTON3" parent="IDF_AUDIO_EQUALIZER_FORM">
+        <property accessibilityHint1="" accessibilityHint2="" backgroundStyle="BACKGROUND_STYLE_NONE" colorOfText="" colorOfTitleText="" disabledColor="#FFFFFF" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="#FFFFFF" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="#E5E5E5" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="Preset 3" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="50.0" mode="Portrait" style="" width="230.0" x="0.0" y="510.0"/>
+        <layout height="74.0" mode="Landscape" style="" width="376.0" x="51.0" y="250.0"/>
+    </CheckButton>
+    <CheckButton id="IDC_CHECKBUTTON4" parent="IDF_AUDIO_EQUALIZER_FORM">
+        <property accessibilityHint1="" accessibilityHint2="" backgroundStyle="BACKGROUND_STYLE_NONE" colorOfText="" colorOfTitleText="" disabledColor="#FFFFFF" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="#FFFFFF" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="#E5E5E5" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="Preset 4" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="50.0" mode="Portrait" style="" width="230.0" x="250.0" y="510.0"/>
+        <layout height="74.0" mode="Landscape" style="" width="376.0" x="61.0" y="250.0"/>
+    </CheckButton>
+    <CheckButton id="IDC_CHECKBUTTON6" parent="IDF_AUDIO_EQUALIZER_FORM">
+        <property accessibilityHint1="" accessibilityHint2="" backgroundStyle="BACKGROUND_STYLE_NONE" colorOfText="" colorOfTitleText="" disabledColor="#FFFFFF" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="#FFFFFF" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="#E5E5E5" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="None" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="50.0" mode="Portrait" style="" width="200.0" x="280.0" y="569.0"/>
+        <layout height="74.0" mode="Landscape" style="" width="376.0" x="71.0" y="250.0"/>
+    </CheckButton>
+</Scene>
diff --git a/project/res/screen-size-normal/IDF_AUDIO_ROUTER.xml b/project/res/screen-size-normal/IDF_AUDIO_ROUTER.xml
new file mode 100644 (file)
index 0000000..69a6267
--- /dev/null
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+
+<Scene Bversion="2.0.0.201303182057" Dversion="20120315">
+    <LogicalCoordinate>720</LogicalCoordinate>
+    <Form id="IDF_AUDIO_ROUTER">
+        <property backgroundColor="" backgroundColorOpacity="100" notificationTrayOpenEnabled="false" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+        <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="NONE"/>
+        <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="NONE"/>
+    </Form>
+    <Footer>
+        <property backgroundBitmapPath="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="false"/>
+        <itemSet/>
+    </Footer>
+    <Header>
+        <property accessibilityHint="" backgroundBitmapPath="" color="" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="AUDIO ROUTER" titleTextColor=""/>
+        <itemSet/>
+    </Header>
+    <Button id="BUTTON_MICROPHONE" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="#90EE90" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="Microphone" textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="50.0" y="290.0"/>
+        <layout height="52.0" mode="Landscape" width="533.0" x="152.0" y="20.0"/>
+    </Button>
+    <Button id="BUTTON_HEADSET" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="#90EE90" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="Wired Acces." textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="50.0" y="360.0"/>
+        <layout height="52.0" mode="Landscape" width="533.0" x="206.0" y="161.0"/>
+    </Button>
+    <Button id="BUTTON_BLUE_IN" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="#90EE90" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="BT(SCO)" textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="50.0" y="430.0"/>
+        <layout height="52.0" mode="Landscape" width="533.0" x="234.0" y="241.0"/>
+    </Button>
+    <Label id="LABEL_IN" parent="IDF_AUDIO_ROUTER">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" leftMargin="16" text="Audio Input Devices" textColor="" textSize="33.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="108.0" mode="Portrait" width="330.0" x="0.0" y="180.0"/>
+        <layout height="39.0" mode="Landscape" width="446.0" x="92.0" y="20.0"/>
+    </Label>
+    <Label id="LABEL_OUT" parent="IDF_AUDIO_ROUTER">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" leftMargin="16" text="Audio Output Devices" textColor="" textSize="33.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="108.0" mode="Portrait" width="360.0" x="360.0" y="180.0"/>
+        <layout height="50.0" mode="Landscape" width="487.0" x="791.0" y="20.0"/>
+    </Label>
+    <Button id="BUTTON_SPEAKER" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="#90EE90" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="Speaker" textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="390.0" y="290.0"/>
+        <layout height="52.0" mode="Landscape" width="355.0" x="924.0" y="69.0"/>
+    </Button>
+    <Button id="BUTTON_RECEIVER" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="#90EE90" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="Receiver" textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="390.0" y="360.0"/>
+        <layout height="52.0" mode="Landscape" width="184.0" x="1095.0" y="158.0"/>
+    </Button>
+    <Button id="BUTTON_HEADSET_OUT" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="#90EE90" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="Wired Acces." textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="390.0" y="430.0"/>
+        <layout height="52.0" mode="Landscape" width="293.0" x="986.0" y="209.0"/>
+    </Button>
+    <Button id="BUTTON_BLUE_SCO" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="#90EE90" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="BT(SCO)" textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="390.0" y="500.0"/>
+        <layout height="52.0" mode="Landscape" width="213.0" x="1066.0" y="294.0"/>
+    </Button>
+    <Button id="BUTTON_BLUE_A2DP" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="#90EE90" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="BT(A2DP)" textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="390.0" y="570.0"/>
+        <layout height="52.0" mode="Landscape" width="138.0" x="1141.0" y="367.0"/>
+    </Button>
+    <Button id="BUTTON_HDMI" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="#90EE90" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="HDMI" textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="390.0" y="640.0"/>
+        <layout height="52.0" mode="Landscape" width="161.0" x="1118.0" y="432.0"/>
+    </Button>
+    <Button id="BUTTON_DOCK" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="#90EE90" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="DOCK" textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="390.0" y="710.0"/>
+        <layout height="52.0" mode="Landscape" width="236.0" x="1043.0" y="403.0"/>
+    </Button>
+    <Button id="BUTTON_WFD" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="#90EE90" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="WFD" textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="390.0" y="780.0"/>
+        <layout height="48.0" mode="Landscape" width="133.0" x="1146.0" y="436.0"/>
+    </Button>
+    <Button id="BUTTON_USB" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="#90EE90" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="USB" textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="390.0" y="850.0"/>
+        <layout height="52.0" mode="Landscape" width="355.0" x="924.0" y="432.0"/>
+    </Button>
+    <Button id="BUTTON_OUT_NONE" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="No Change" textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="390.0" y="920.0"/>
+        <layout height="52.0" mode="Landscape" width="369.0" x="910.0" y="432.0"/>
+    </Button>
+    <Button id="BUTTON_IN_NONE" parent="IDF_AUDIO_ROUTER">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="No Change" textSize="32.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="60.0" mode="Portrait" width="260.0" x="50.0" y="500.0"/>
+        <layout height="52.0" mode="Landscape" width="533.0" x="211.0" y="238.0"/>
+    </Button>
+    <Label id="LABEL_ACTIVE_IN" parent="IDF_AUDIO_ROUTER">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" leftMargin="16" text="Label1" textColor="" textSize="33.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="57.0" mode="Portrait" width="350.0" x="0.0" y="87.0"/>
+        <layout height="33.0" mode="Landscape" width="519.0" x="28.0" y="20.0"/>
+    </Label>
+    <Label id="LABEL_ACTIVE_OUT" parent="IDF_AUDIO_ROUTER">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" leftMargin="16" text="Label2" textColor="" textSize="33.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="57.0" mode="Portrait" width="359.0" x="360.0" y="86.0"/>
+        <layout height="32.0" mode="Landscape" width="565.0" x="691.0" y="20.0"/>
+    </Label>
+    <Label id="IDC_LABEL3" parent="IDF_AUDIO_ROUTER">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" leftMargin="16" text="Active AudioInput" textColor="" textSize="33.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="55.0" mode="Portrait" width="330.0" x="0.0" y="0.0"/>
+        <layout height="22.0" mode="Landscape" width="449.0" x="48.0" y="20.0"/>
+    </Label>
+    <Label id="IDC_LABEL4" parent="IDF_AUDIO_ROUTER">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" leftMargin="16" text="Active AudioOutput" textColor="" textSize="33.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="54.0" mode="Portrait" width="357.0" x="361.0" y="0.0"/>
+        <layout height="15.0" mode="Landscape" width="634.0" x="638.0" y="20.0"/>
+    </Label>
+</Scene>
diff --git a/project/src/Audio/AudioEqualizerForm.cpp b/project/src/Audio/AudioEqualizerForm.cpp
new file mode 100644 (file)
index 0000000..a8bee1a
--- /dev/null
@@ -0,0 +1,789 @@
+//\r
+// Tizen Native SDK\r
+// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+//     http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+#include <iostream>\r
+\r
+#include "AudioEqualizerForm.h"\r
+#include "SafeMacros.h"\r
+#include "UnitTestFactory.h"\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Ui;\r
+using namespace Tizen::Ui::Controls;\r
+using namespace Tizen::Io;\r
+using namespace Tizen::System;\r
+using namespace Tizen::App;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Scenes;\r
+using namespace Tizen::Base::Collection;\r
+\r
+using namespace Tizen::Media;\r
+\r
+static const String FORM_ID = L"AudioEqualizer";\r
+extern const Tizen::Ui::Scenes::SceneId AUDIO_EQUALIZER_SCENE_ID = L"AudioEqualizerScene";\r
+\r
+AudioEqualizerForm*\r
+AudioEqualizerForm::CreateFormN(const Tizen::Ui::Scenes::SceneId &sceneId)\r
+{\r
+       SceneManager* pSceneManager = SceneManager::GetInstance();\r
+       AudioEqualizerForm* pForm = new (std::nothrow) AudioEqualizerForm();\r
+       pForm->Initialize();\r
+       pSceneManager->AddSceneEventListener(sceneId, *(pForm->GetListener()));\r
+       return pForm;\r
+}\r
+\r
+MultiForm* AudioEqualizerForm::FormCreateFunc()\r
+{\r
+       AudioEqualizerForm* pForm = AudioEqualizerForm::CreateFormN(AUDIO_EQUALIZER_SCENE_ID);\r
+       return pForm;\r
+}\r
+\r
+String AudioEqualizerForm::GetFormId()\r
+{\r
+       return FORM_ID;\r
+}\r
+\r
+SceneId AudioEqualizerForm::GetSceneId()\r
+{\r
+       return AUDIO_EQUALIZER_SCENE_ID;\r
+}\r
+\r
+AudioEqualizerForm::AudioEqualizerForm(void)\r
+       : __pScrollPanel(null)\r
+       , __pLabelMid(null)\r
+       , __pLabelMin(null)\r
+       , __pLabelMax(null)\r
+       , __pAudioEqualizer(null)\r
+       , __pPlayer(null)\r
+       , __pLevels(null)\r
+       , __pMaxVaule(null)\r
+       , __pMinVaule(null)\r
+       , __noBands(0)\r
+{\r
+       for( int i = 0; i < 6; i++)\r
+       {\r
+               __pCheckButtons[i] = null;\r
+       }\r
+}\r
+\r
+AudioEqualizerForm::~AudioEqualizerForm(void)\r
+{\r
+}\r
+\r
+void\r
+AudioEqualizerForm::Initialize()\r
+{\r
+       AppLog("Enter");\r
+       // This is called at once when application is launched.\r
+       // Construct an XML form\r
+       Construct(L"IDF_AUDIO_EQUALIZER_FORM");\r
+       return;\r
+}\r
+\r
+result\r
+AudioEqualizerForm::OnInitializing(void)\r
+{\r
+       AppLog("AudioEqualizerForm::OnInitializing Enter");\r
+       result r = E_SUCCESS;\r
+       int heightDone = 10;\r
+       Slider* pSlider = null;\r
+       Label* pLabel = null;\r
+       String srcFile = L"NotingToPlay";\r
+       bool bOnce = false;\r
+\r
+\r
+       // Initialize Recording form\r
+       SetHeaderText(L"AUDIO EQUALIZER");\r
+       SetFooterStyle(FOOTER_STYLE_BUTTON_TEXT, false, this);\r
+       AddFooterItem(L"Play", ID_BUTTON_PLAY);\r
+       AddFooterItem(L"Stop", ID_BUTTON_STOP);\r
+       ShowFooterItem(0, true);\r
+       ShowFooterItem(1, false);\r
+\r
+       SetFormBackEventListener(this);\r
+       Footer* pfooter = GetFooter();\r
+       if (pfooter != null)\r
+       {\r
+               pfooter->SetBackButton();\r
+       }\r
+\r
+\r
+       if(_pConfig != null)\r
+       {\r
+               srcFile = _pConfig->GetContentPath(L"AudioEqualizer", L"srcfile");\r
+               AppLog("AudioEqualizer file to test: %ls", srcFile.GetPointer());\r
+       }\r
+\r
+       //Labels\r
+       __pLabelMid = static_cast< Label* >(GetControl(L"LABEL_MID"));\r
+       TryCatch(__pLabelMid, r = GetLastResult(), "__pLabel1 is null:%s", GetErrorMessage(GetLastResult()));\r
+       __pLabelMin = static_cast< Label* >(GetControl(L"LABEL_MIN"));\r
+       TryCatch(__pLabelMin, r = GetLastResult(), "__pLabel2 is null:%s", GetErrorMessage(GetLastResult()));\r
+       __pLabelMax = static_cast< Label* >(GetControl(L"LABEL_MAX"));\r
+       TryCatch(__pLabelMax, r = GetLastResult(), "__pLabel3 is null:%s", GetErrorMessage(GetLastResult()));\r
+\r
+       __pCheckButtons[0] = static_cast<CheckButton* >(GetControl(L"IDC_CHECKBUTTON1"));\r
+       TryCatch(__pCheckButtons[0], r = GetLastResult(), "[%s] IDC_CHECKBUTTON1 GetControl Failed", GetErrorMessage(GetLastResult()));\r
+       __pCheckButtons[0]->SetActionId(ID_BUTTON_CHECKED1, ID_BUTTON_UNCHECKED1, ID_BUTTON_SELECTED1);\r
+       __pCheckButtons[0]->AddActionEventListener(*this);\r
+\r
+       __pCheckButtons[1] = static_cast<CheckButton* >(GetControl(L"IDC_CHECKBUTTON2"));\r
+       TryCatch(__pCheckButtons[1], r = GetLastResult(), "[%s] IDC_CHECKBUTTON2 GetControl Failed", GetErrorMessage(GetLastResult()));\r
+       __pCheckButtons[1]->SetActionId(ID_BUTTON_CHECKED2, ID_BUTTON_UNCHECKED2, ID_BUTTON_SELECTED2);\r
+       __pCheckButtons[1]->AddActionEventListener(*this);\r
+\r
+       __pCheckButtons[2] = static_cast<CheckButton* >(GetControl(L"IDC_CHECKBUTTON3"));\r
+       TryCatch(__pCheckButtons[2], r = GetLastResult(), "[%s] IDC_CHECKBUTTON3 GetControl Failed", GetErrorMessage(GetLastResult()));\r
+       __pCheckButtons[2]->SetActionId(ID_BUTTON_CHECKED3, ID_BUTTON_UNCHECKED3, ID_BUTTON_SELECTED3);\r
+       __pCheckButtons[2]->AddActionEventListener(*this);\r
+\r
+       __pCheckButtons[3] = static_cast<CheckButton* >(GetControl(L"IDC_CHECKBUTTON4"));\r
+       TryCatch(__pCheckButtons[3], r = GetLastResult(), "[%s] IDC_CHECKBUTTON4 GetControl Failed", GetErrorMessage(GetLastResult()));\r
+       __pCheckButtons[3]->SetActionId(ID_BUTTON_CHECKED4, ID_BUTTON_UNCHECKED4, ID_BUTTON_SELECTED4);\r
+       __pCheckButtons[3]->AddActionEventListener(*this);\r
+\r
+       __pCheckButtons[4] = static_cast<CheckButton* >(GetControl(L"IDC_CHECKBUTTON5"));\r
+       TryCatch(__pCheckButtons[4], r = GetLastResult(), "[%s] UserDefined GetControl Failed", GetErrorMessage(GetLastResult()));\r
+       __pCheckButtons[4]->SetActionId(ID_BUTTON_CHECKED5, ID_BUTTON_UNCHECKED5, ID_BUTTON_SELECTED5);\r
+       __pCheckButtons[4]->AddActionEventListener(*this);\r
+       __pCheckButtons[4]->SetSelected(true);\r
+\r
+       __pCheckButtons[5] = static_cast<CheckButton* >(GetControl(L"IDC_CHECKBUTTON6"));\r
+       TryCatch(__pCheckButtons[5], r = GetLastResult(), "[%s] CheckButton_None GetControl Failed", GetErrorMessage(GetLastResult()));\r
+       __pCheckButtons[5]->SetActionId(ID_BUTTON_CHECKED6, ID_BUTTON_UNCHECKED6, ID_BUTTON_SELECTED6);\r
+       __pCheckButtons[5]->AddActionEventListener(*this);\r
+\r
+       __pScrollPanel = static_cast<ScrollPanel *>(GetControl(L"PANEL_BANDS"));\r
+       TryCatch(__pScrollPanel, r = GetLastResult(), "__pScrollPanel is null:%s", GetErrorMessage(GetLastResult()));\r
+       AddControl(*__pScrollPanel);\r
+\r
+       // Add Key event listener\r
+       AddKeyEventListener(*this);\r
+\r
+       //player instance\r
+       __pPlayer.reset(new (std::nothrow) Player());\r
+       TryCatch(__pPlayer.get() != null, r = E_OUT_OF_MEMORY, "Could not create Player");\r
+\r
+       r = __pPlayer->Construct(*this, 0);\r
+       TryCatch(r == E_SUCCESS, , "player construct failed!");\r
+\r
+       __pAudioEqualizer.reset(new (std::nothrow) AudioEqualizer());\r
+       TryCatch(__pAudioEqualizer.get() != null, r = E_OUT_OF_MEMORY, "Could not create Audio Equalizer");\r
+\r
+       r = __pAudioEqualizer->Construct(*__pPlayer);\r
+       TryCatch(r == E_SUCCESS, , "AudioEqualizer construct failed!");\r
+       AppLog("AudioEqualizerForm::OnInitializing Exit");\r
+\r
+       __sliderList.Construct();\r
+       __lableList.Construct();\r
+\r
+       __noBands = __pAudioEqualizer->GetBandCount();\r
+       TryReturn(__noBands > 0, GetLastResult(), "[%s] GetBandCount Failed", GetErrorMessage(GetLastResult()));\r
+       __pMaxVaule.reset( new int[__noBands]);\r
+       TryReturn(__pMaxVaule.get() , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] No memory to create MaxValue");\r
+\r
+       __pMinVaule.reset(new int[__noBands]);\r
+       TryReturn(__pMinVaule.get() , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] No memory to create MinVaule");\r
+       AppLog("%d", __noBands);\r
+\r
+       __pPlayer->SetMute(true);\r
+       r = __pPlayer->OpenFile(srcFile);\r
+       TryLog(r == E_SUCCESS,"OpenFile Failed  - %s", GetErrorMessage(r));\r
+       r = __pPlayer->Play();\r
+       TryLog(r == E_SUCCESS,"Play Failed  - %s", GetErrorMessage(r));\r
+\r
+       for (int i = 0; i < __noBands; i++)\r
+       {\r
+               int centerFrequency = 0;\r
+               r = __pAudioEqualizer->GetBandLevelRange(i, (__pMinVaule.get())[i], (__pMaxVaule.get())[i]);\r
+               TryCatch(r == E_SUCCESS , , "[%s] GetBandLevelRange failed", GetErrorMessage(r));\r
+               if (!bOnce)\r
+               {\r
+                       String strMin("");\r
+                       String strMax("");\r
+                       strMax.Append((__pMaxVaule.get())[i]);\r
+                       strMax.Append("db");\r
+                       strMin.Append((__pMinVaule.get())[i]);\r
+                       strMin.Append("db");\r
+                       __pLabelMin->SetText(strMin);\r
+                       __pLabelMax->SetText(strMax);\r
+                       bOnce = true;\r
+               }\r
+\r
+               r = __pAudioEqualizer->GetBandCenterFrequency(i, centerFrequency);\r
+               TryLog(r == E_SUCCESS, "[%s]GetBandCenterFrequency failed ", GetErrorMessage(r));\r
+               AppLog("Slider %d is in 10 %d 410, 60 center Frequency - %d", __noBands, heightDone, centerFrequency);\r
+               pSlider = new Slider;\r
+               if (pSlider)\r
+               {\r
+                       r = pSlider->Construct(Rectangle(100, heightDone, 360, 55), BACKGROUND_STYLE_DEFAULT, false, (__pMinVaule.get())[i], (__pMaxVaule.get())[i]);\r
+                       TryCatch(r == E_SUCCESS , , "[%s] Construct failed", GetErrorMessage(r));\r
+                       pSlider->SetValue(0);\r
+                       __pScrollPanel->AddControl(*pSlider);\r
+                       pSlider->AddAdjustmentEventListener(*this);\r
+                       __sliderList.Add(pSlider);\r
+               }\r
+\r
+               pLabel = new Label;\r
+               if (pLabel)\r
+               {\r
+                       String centerstr("");\r
+                       centerstr.Append(centerFrequency);\r
+                       centerstr.Append("Hz");\r
+                       r = pLabel->Construct(Rectangle(0, heightDone, 110, 55), centerstr);\r
+                       TryCatch(r == E_SUCCESS , , "[%s] Construct failed", GetErrorMessage(r));\r
+                       __pScrollPanel->AddControl(*pLabel);\r
+                       __lableList.Add(pLabel);\r
+               }\r
+               heightDone = heightDone + 55;\r
+       }\r
+\r
+CATCH:\r
+       if(__pPlayer)\r
+       {\r
+               __pPlayer->Stop();\r
+               __pPlayer->Close();\r
+               __pPlayer->SetMute(false);\r
+       }\r
+       return r;\r
+}\r
+\r
+\r
+AudioEqualizerForm*\r
+AudioEqualizerForm::GetListener(void)\r
+{\r
+       return this;\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,\r
+                                                                  const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs)\r
+{\r
+       OnActivate(null);\r
+}\r
+void\r
+AudioEqualizerForm::OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,\r
+                                                                       const Tizen::Ui::Scenes::SceneId& nextSceneId)\r
+{\r
+\r
+}\r
+result\r
+AudioEqualizerForm::OnActivate(void* pParam)\r
+{\r
+       AppLog("AudioEqualizerForm::OnActivate Enter");\r
+       return E_SUCCESS;\r
+}\r
+\r
+\r
+result\r
+AudioEqualizerForm::OnTerminating(void)\r
+{\r
+       AppLog("Enter");\r
+       return E_SUCCESS;\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnForeground(void)\r
+{\r
+       AppLog("AudioEqualizerForm::OnActivate Enter");\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnBackground(void)\r
+{\r
+       StopPlay();\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnLowMemory(void)\r
+{\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnBatteryLevelChanged(Tizen::System::BatteryLevel batteryLevel)\r
+{\r
+       bool isCharging = false;\r
+       Battery::IsCharging(isCharging);\r
+       AppLog("Battery Level Obtained is %d and isCharging status is %d", batteryLevel, isCharging);\r
+       if (isCharging)\r
+       {\r
+               return;\r
+       }\r
+       if ((batteryLevel == BATTERY_CRITICAL) || (batteryLevel == BATTERY_EMPTY) || (batteryLevel == BATTERY_LOW))\r
+       {\r
+               this->OnFormBackRequested(*this);\r
+       }\r
+}\r
+\r
+void\r
+AudioEqualizerForm::SetButtonChecked(int index)\r
+{\r
+       //User Defined\r
+       for (int i =0; i < 6; i++)\r
+       {\r
+               __pCheckButtons[i]->SetSelected(false);\r
+       }\r
+       __pCheckButtons[index]->SetSelected(true);\r
+\r
+       int count = __sliderList.GetCount();\r
+       Slider *pSlider = null;\r
+       AppLog("List Count - %d", count);\r
+       for (int i = 0; i < count; i++)\r
+       {\r
+               __sliderList.GetAt(i, pSlider);\r
+               if (pSlider)\r
+               {\r
+                       pSlider->SetEnabled(false);\r
+               }\r
+       }\r
+\r
+       Draw();\r
+       Show();\r
+}\r
+\r
+void\r
+AudioEqualizerForm::SetUserDefined()\r
+{\r
+       for (int i =0; i < 6; i++)\r
+       {\r
+               __pCheckButtons[i]->SetSelected(false);\r
+       }\r
+       __pCheckButtons[4]->SetSelected(true);\r
+       int count = __sliderList.GetCount();\r
+       Slider *pSlider = null;\r
+       AppLog("List Count - %d", count);\r
+       for (int i = 0; i < count; i++)\r
+       {\r
+               __sliderList.GetAt(i, pSlider);\r
+               if (pSlider)\r
+               {\r
+                       pSlider->SetEnabled(true);\r
+               }\r
+       }\r
+       Draw();\r
+       Show();\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)\r
+{\r
+       switch (actionId)\r
+       {\r
+       case ID_BUTTON_PLAY:\r
+               StartPlay();\r
+               break;\r
+       case ID_BUTTON_STOP:\r
+               StopPlay();\r
+               break;\r
+       case ID_BUTTON_CHECKED1:\r
+               SetUserDefinedLevels(0);\r
+               SetButtonChecked(0);\r
+               break;\r
+       case ID_BUTTON_UNCHECKED1:\r
+               SetUserDefined();\r
+               break;\r
+       case ID_BUTTON_CHECKED2:\r
+               SetUserDefinedLevels(1);\r
+               SetButtonChecked(1);\r
+               break;\r
+       case ID_BUTTON_UNCHECKED2:\r
+               SetUserDefined();\r
+               break;\r
+       case ID_BUTTON_CHECKED3:\r
+               SetUserDefinedLevels(2);\r
+               SetButtonChecked(2);\r
+               break;\r
+       case ID_BUTTON_UNCHECKED3:\r
+               SetUserDefined();\r
+               break;\r
+       case ID_BUTTON_CHECKED4:\r
+               SetUserDefinedLevels(3);\r
+               SetButtonChecked(3);\r
+               break;\r
+       case ID_BUTTON_UNCHECKED4:\r
+               SetUserDefined();\r
+               break;\r
+       case ID_BUTTON_CHECKED5:\r
+               SetUserDefined();\r
+               break;\r
+       case ID_BUTTON_CHECKED6:\r
+               SetAllBendLevelsToDefault();\r
+               SetButtonChecked(5);\r
+               break;\r
+       case ID_BUTTON_UNCHECKED5:\r
+               //intentional follow through\r
+       case ID_BUTTON_UNCHECKED6:\r
+               SetUserDefined();\r
+               break;\r
+       default:\r
+               //Do noting\r
+               AppLogException("Don't come here");\r
+               break;\r
+       }\r
+}\r
+\r
+void\r
+AudioEqualizerForm::SetSelectedBandLevel(int band, int bandLevel)\r
+{\r
+       AppLog("Here");\r
+       Slider *pSlider = null;\r
+       result r = E_SUCCESS;\r
+       r = __sliderList.GetAt(band, pSlider);\r
+       TryReturn(r == E_SUCCESS, , "[%s] GetAt Failed", GetErrorMessage(r));\r
+       pSlider->SetValue(bandLevel);\r
+}\r
+\r
+void\r
+AudioEqualizerForm::SetUserDefinedLevels(int index)\r
+{\r
+       result r = E_SUCCESS;\r
+       int length = 0;\r
+       int startIndex = 0;\r
+       String level = L"";\r
+       int bandLevel = 0;\r
+       Tizen::Base::String presetStr("");\r
+       presetStr = _pConfig->GetString("AudioEqualizer", "preset%d", index);\r
+\r
+       __pLevels.reset( new (std::nothrow)Tizen::Base::Collection::ArrayListT<int>());\r
+       length = presetStr.GetLength();\r
+\r
+       for(int i = 0, j = 0; i < length; i++)\r
+       {\r
+               wchar_t delimeter;\r
+               r = presetStr.GetCharAt(i, delimeter);\r
+               TryReturn(r == E_SUCCESS, , "GetCharAt() failed");\r
+\r
+               if(delimeter == ',')\r
+               {\r
+                       level = L"";\r
+                       AppLog("AudioEqualizerForm level: %d, %c", Tizen::Base::Character::ToDigit(delimeter, 10), delimeter);\r
+                       presetStr.SubString(startIndex, i - startIndex, level);\r
+                       Integer::Parse(level, bandLevel);\r
+                       AppLog("AudioEqualizerForm bandLevel %d", bandLevel);\r
+                       __pLevels->Add(bandLevel);\r
+                       SetSelectedBandLevel(j, bandLevel);\r
+                       j = j + 1;\r
+                       startIndex = i + 1;\r
+               }\r
+               else if(i == length - 1)\r
+               {\r
+                       presetStr.SubString(startIndex, level);\r
+                       Integer::Parse(level, bandLevel);\r
+                       AppLog("AudioEqualizerForm bandLevel %d", bandLevel);\r
+                       __pLevels->Add(bandLevel);\r
+                       SetSelectedBandLevel(j, bandLevel);\r
+               }\r
+       }\r
+       __pAudioEqualizer->SetAllBandsLevel(__pLevels.get());\r
+}\r
+\r
+void\r
+AudioEqualizerForm::SetAllBendLevelsToDefault(void)\r
+{\r
+       AppLog("AudioEqualizerForm::SetAllBendLevelsToDefault enter");\r
+       result r = E_SUCCESS;\r
+       r = __pAudioEqualizer->ResetAllToDefault();\r
+       TryReturn(r == E_SUCCESS, , "ResetAllToDefault :%s", GetErrorMessage(GetLastResult()));\r
+\r
+       int count = __sliderList.GetCount();\r
+       Slider *pSlider = null;\r
+       AppLog("List Count - %d", count);\r
+       for (int i = 0; i < count; i++)\r
+       {\r
+               __sliderList.GetAt(i, pSlider);\r
+               if (pSlider)\r
+               {\r
+                       pSlider->SetValue(0);\r
+               }\r
+       }\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnDeviceStateChanged(Tizen::System::DeviceType deviceType, const Tizen::Base::String &state)\r
+{\r
+       if (deviceType == DEVICE_TYPE_CHARGER)\r
+       {\r
+               Deactivate();\r
+       }\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnFormBackRequested(Tizen::Ui::Controls::Form& source)\r
+{\r
+       StopPlay();\r
+       Deactivate();\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnAdjustmentValueChanged(const Tizen::Ui::Control& source, int adjustment)\r
+{\r
+       AppLog("Enter");\r
+       result r = E_SUCCESS;\r
+       int index = -1;\r
+\r
+       Slider* pSlider = (Slider *)&source;\r
+       if (__pPlayer.get() == null)\r
+       {\r
+               return;\r
+       }\r
+       __sliderList.IndexOf(pSlider, index);\r
+       AppLog("Index - %d", index);\r
+       r = __pAudioEqualizer->SetBandLevel(index, adjustment);\r
+       TryCatch(r == E_SUCCESS, , "AudiEqualizer  SetBandLevel() failed!");\r
+\r
+CATCH:\r
+       return;\r
+}\r
+\r
+result\r
+AudioEqualizerForm::GetFileFromConfig(String &filePath)\r
+{\r
+       result r = E_SUCCESS;\r
+       if(_pConfig)\r
+       {\r
+               filePath = _pConfig->GetContentPath(L"AudioEqualizer", L"srcfile");\r
+               AppLog("AudioEqualizerForm::GetFileFromConfig source file %ls", filePath.GetPointer());\r
+               return r;\r
+       }\r
+       return E_FAILURE;\r
+}\r
+\r
+void\r
+AudioEqualizerForm::StartPlay()\r
+{\r
+       result r = E_SUCCESS;\r
+       String filePath = L"";\r
+       int volume = 0;\r
+\r
+       //get file to play\r
+       r = GetFileFromConfig(filePath);\r
+       TryCatch(r == E_SUCCESS, , "Read Config.ini failed");\r
+\r
+       //get volume to set for player\r
+       if(_pConfig != null)\r
+       {\r
+               volume = _pConfig->GetInt(50, L"AudioEqualizer", L"volume");\r
+       }\r
+\r
+       AppLog("AudioEqualizerForm::StartPlay play file %ls with voulme: %d", filePath.GetPointer(), volume);\r
+\r
+       if (__pPlayer.get() == null || __pPlayer->GetState() == PLAYER_STATE_ERROR)\r
+       {\r
+               //player instance\r
+               __pPlayer.reset(new (std::nothrow) Player());\r
+               TryCatch(__pPlayer.get() != null, r = E_OUT_OF_MEMORY, "Could not create Player");\r
+\r
+               r = __pPlayer->Construct(*this, 0);\r
+               TryCatch(r == E_SUCCESS, , "player construct failed!");\r
+\r
+               if(__pAudioEqualizer.get() == null)\r
+               {\r
+                       __pAudioEqualizer.reset(new (std::nothrow) AudioEqualizer());\r
+                       TryCatch(__pAudioEqualizer.get() != null, r = E_OUT_OF_MEMORY, "Could not create Audio Equalizer");\r
+               }\r
+\r
+               r = __pAudioEqualizer->Construct(*__pPlayer);\r
+               TryCatch(r == E_SUCCESS, , "AudioEqualizer construct failed!");\r
+       }\r
+\r
+       if ((__pPlayer->GetState() == PLAYER_STATE_INITIALIZED) || (__pPlayer->GetState() == PLAYER_STATE_CLOSED))\r
+       {\r
+               r = __pPlayer->OpenFile(filePath);\r
+               TryCatch(r == E_SUCCESS, , "player OpenFile failed!");\r
+       }\r
+       if ((__pPlayer->GetState() == PLAYER_STATE_OPENED) || (__pPlayer->GetState() == PLAYER_STATE_STOPPED))\r
+       {\r
+               r = __pPlayer->SetVolume(volume);\r
+               TryCatch(r == E_SUCCESS, , "SetVolume failed!");\r
+\r
+               __pPlayer->SetLooping(true);\r
+               TryCatch(r == E_SUCCESS, , "SetLooping failed!");\r
+\r
+               r = __pPlayer->Play();\r
+               TryCatch(r == E_SUCCESS, , "Play failed!");\r
+\r
+               ShowFooterItem(0, false); //ShowFooterItem(int index, bool show). index = 0 for Play and 1 for Stop button.\r
+               ShowFooterItem(1, true);\r
+       }\r
+       else\r
+       {\r
+               AppLog("AudioEqualizerForm::StartPlay player E_INVALID_STATE: %d", __pPlayer->GetState());\r
+       }\r
+       Draw();\r
+       Show();\r
+CATCH:\r
+               return;\r
+}\r
+\r
+void\r
+AudioEqualizerForm::StopPlay()\r
+{\r
+       result r = E_SUCCESS;\r
+       if (__pPlayer.get() != null &&__pPlayer->GetState() == PLAYER_STATE_PLAYING)\r
+       {\r
+               r = __pPlayer->Stop();\r
+               __pCheckButtons[4]->Show();\r
+               TryCatch(r == E_SUCCESS, , "player Stop failed!");\r
+\r
+               r = __pPlayer->Close();\r
+               TryCatch(r == E_SUCCESS, , "player Close failed!");\r
+\r
+               ShowFooterItem(0, true); //ShowFooterItem(int index, bool show). index = 0 for Play and 1 for Stop button.\r
+               ShowFooterItem(1, false);\r
+       }\r
+\r
+CATCH:\r
+       return;\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnKeyPressed(const Control& source, Tizen::Ui::KeyCode keyCode)\r
+{\r
+       result r = E_SUCCESS;\r
+       r = ConsumeInputEvent();\r
+       if (IsFailed(r))\r
+       {\r
+               AppLog("Consuming input event failed(%s)", GetErrorMessage(r));\r
+       }\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnKeyReleased(const Control& source, Tizen::Ui::KeyCode keyCode)\r
+{\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnKeyLongPressed(const Control& source, Tizen::Ui::KeyCode keyCode)\r
+{\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnPlayerAudioFocusChanged(void)\r
+{\r
+       AppLog("Audio focus has changed");\r
+       if (__pPlayer.get() != null && __pPlayer->GetState() == PLAYER_STATE_PLAYING)\r
+       {\r
+               StopPlay();\r
+               AppLog("Audio focus has changed");\r
+       }\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnPlayerBuffering(int percent)\r
+{\r
+       //Insert your code to operate while the buffering for a remote resource is going on.\r
+       String message;\r
+       message.Format(100, L"Buffering %d%%", percent);\r
+       AppLog("OnPlayerBuffering ");\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnPlayerEndOfClip(void)\r
+{\r
+       //Insert your code to operate after the player reached end of clip.\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnPlayerErrorOccurred(PlayerErrorReason r)\r
+{\r
+       //Insert your code to operate after any error occurred.\r
+       switch (r)\r
+       {\r
+       case PLAYER_ERROR_NONE:\r
+       {\r
+               AppLog("PLAYER_ERROR_NONE");\r
+               //DisplayStatusMessage(L"Unknown Error");\r
+               break;\r
+       }\r
+\r
+       case PLAYER_ERROR_INVALID_DATA:\r
+       {\r
+               AppLog("PLAYER_ERROR_INVALID_DATA");\r
+               //DisplayStatusMessage(L"Invalid data");\r
+               break;\r
+       }\r
+\r
+       case PLAYER_ERROR_CONNECTION_LOST:\r
+       {\r
+               AppLog("PLAYER_ERROR_CONNECTION_LOST");\r
+               //DisplayStatusMessage(L"Connection Lost");\r
+               break;\r
+       }\r
+\r
+       case PLAYER_ERROR_STREAMING_TIMEOUT:\r
+       {\r
+               AppLog("PLAYER_ERROR_STREAMING_TIMEOUT");\r
+               //DisplayStatusMessage(L"Streaming TimeOut");\r
+               break;\r
+       }\r
+\r
+       case PLAYER_ERROR_TRANSPORT:\r
+       {\r
+               AppLog("PLAYER_ERROR_TRANSPORT");\r
+               //DisplayStatusMessage(L"Transport Error");\r
+               break;\r
+       }\r
+\r
+       case PLAYER_ERROR_SERVER:\r
+       {\r
+               AppLog("PLAYER_ERROR_SERVER");\r
+               //DisplayStatusMessage(L"Remote Server Error");\r
+               break;\r
+       }\r
+\r
+       case PLAYER_ERROR_OUT_OF_MEMORY:\r
+       {\r
+               AppLog("PLAYER_ERROR_OUT_OF_MEMORY");\r
+               //DisplayStatusMessage(L"Out of Memory");\r
+               break;\r
+       }\r
+\r
+       case PLAYER_ERROR_DEVICE_FAILED:\r
+       {\r
+               AppLog("PLAYER_ERROR_DEVICE_FAILED");\r
+               //DisplayStatusMessage(L"Device Error");\r
+               break;\r
+       }\r
+       default:\r
+               break;\r
+       }\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnPlayerInterrupted(void)\r
+{\r
+       AppLog("Enter");\r
+       StopPlay();\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnPlayerOpened(result r)\r
+{\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnPlayerReleased(void)\r
+{\r
+       AppLog(" Enter");\r
+}\r
+\r
+void\r
+AudioEqualizerForm::OnPlayerSeekCompleted(result r)\r
+{\r
+       AppLog("Enter obtained result is %s", GetErrorMessage(r));\r
+}\r
diff --git a/project/src/Audio/AudioEqualizerForm.h b/project/src/Audio/AudioEqualizerForm.h
new file mode 100644 (file)
index 0000000..2b9c532
--- /dev/null
@@ -0,0 +1,127 @@
+//\r
+// Tizen Native SDK\r
+// Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+//     http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#ifndef AUDIOEQUALIZERFORM_H_\r
+#define AUDIOEQUALIZERFORM_H_\r
+\r
+#include <unique_ptr.h>\r
+#include <FBase.h>\r
+#include <FSystem.h>\r
+#include <FUi.h>\r
+#include <FMedia.h>\r
+#include <FIo.h>\r
+#include "MultiForm.h"\r
+\r
+class AudioEqualizerForm\r
+       : public MultiForm\r
+       , public Tizen::Media::IPlayerEventListener\r
+       , public Tizen::Ui::IKeyEventListener\r
+       , public Tizen::Ui::IAdjustmentEventListener\r
+       , public Tizen::Ui::Scenes::ISceneEventListener\r
+{\r
+\r
+public:\r
+       AudioEqualizerForm(void);\r
+       virtual ~AudioEqualizerForm(void);\r
+       void Initialize(void);\r
+       AudioEqualizerForm* GetListener(void);\r
+       static AudioEqualizerForm* CreateFormN(const Tizen::Ui::Scenes::SceneId &sceneId);\r
+       static MultiForm* FormCreateFunc();\r
+       static String GetFormId();\r
+       static Tizen::Ui::Scenes::SceneId GetSceneId();\r
+\r
+       virtual result OnInitializing(void);\r
+       virtual result OnTerminating(void);\r
+       result OnActivate(void* pParam);\r
+\r
+       virtual void OnForeground(void);\r
+       virtual void OnBackground(void);\r
+       virtual void OnLowMemory(void);\r
+       virtual void OnBatteryLevelChanged(Tizen::System::BatteryLevel batteryLevel);\r
+       //IDeviceEventListener\r
+       void OnDeviceStateChanged(Tizen::System::DeviceType deviceType, const Tizen::Base::String &state);\r
+       //IFormBackEventListener\r
+       void OnFormBackRequested(Tizen::Ui::Controls::Form& source);\r
+       //IActionEventListener\r
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+       //IAdjustmentEventListener\r
+       virtual void OnAdjustmentValueChanged(const Tizen::Ui::Control& source, int adjustment);\r
+       //IKeyEventListener\r
+       virtual void OnKeyPressed(const Control& source, Tizen::Ui::KeyCode keyCode);\r
+       virtual void OnKeyReleased(const Control& source, Tizen::Ui::KeyCode keyCode);\r
+       virtual void OnKeyLongPressed(const Control& source, Tizen::Ui::KeyCode keyCode);\r
+       //IPlayerEventListener\r
+       virtual void OnPlayerAudioFocusChanged (void);\r
+       virtual void OnPlayerBuffering (int percent);\r
+       virtual void OnPlayerEndOfClip (void);\r
+       virtual void OnPlayerErrorOccurred (Tizen::Media::PlayerErrorReason r);\r
+       virtual void OnPlayerInterrupted (void);\r
+       virtual void OnPlayerOpened (result r);\r
+       virtual void OnPlayerReleased (void);\r
+       virtual void OnPlayerSeekCompleted (result r);\r
+       //ISceneEventListener\r
+       virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,\r
+                                                                          const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);\r
+       virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,\r
+                                                                               const Tizen::Ui::Scenes::SceneId& nextSceneId);\r
+\r
+private:\r
+       result GetFileFromConfig(Tizen::Base::String& finePath);\r
+       void StartPlay(void);\r
+       void StopPlay(void);\r
+       void SetUserDefinedLevels(int index);\r
+       void SetAllBendLevelsToDefault(void);\r
+       void SetSelectedBandLevel(int band, int bandLevel);\r
+       void SetUserDefined();\r
+       void SetButtonChecked(int i);\r
+private:\r
+       static const int ID_BUTTON_PLAY = 100;\r
+       static const int ID_BUTTON_STOP = 101;\r
+       static const int ID_BUTTON_CHECKED1 = 119;\r
+       static const int ID_BUTTON_UNCHECKED1 = 120;\r
+       static const int ID_BUTTON_SELECTED1 = 121;\r
+       static const int ID_BUTTON_CHECKED2 = 122;\r
+       static const int ID_BUTTON_UNCHECKED2 = 123;\r
+       static const int ID_BUTTON_SELECTED2 = 124;\r
+       static const int ID_BUTTON_CHECKED3 = 125;\r
+       static const int ID_BUTTON_UNCHECKED3 = 126;\r
+       static const int ID_BUTTON_SELECTED3 = 127;\r
+       static const int ID_BUTTON_CHECKED4 = 128;\r
+       static const int ID_BUTTON_UNCHECKED4 = 129;\r
+       static const int ID_BUTTON_SELECTED4 = 130;\r
+       static const int ID_BUTTON_CHECKED5 = 131;\r
+       static const int ID_BUTTON_UNCHECKED5 = 132;\r
+       static const int ID_BUTTON_SELECTED5 = 133;\r
+       static const int ID_BUTTON_CHECKED6 = 134;\r
+       static const int ID_BUTTON_UNCHECKED6 = 135;\r
+       static const int ID_BUTTON_SELECTED6 = 136;\r
+       Tizen::Base::Collection::ArrayListT<Tizen::Ui::Controls::Slider*> __sliderList;\r
+       Tizen::Base::Collection::ArrayListT<Tizen::Ui::Controls::Label*> __lableList;\r
+       Tizen::Ui::Controls::ScrollPanel* __pScrollPanel;\r
+       Tizen::Ui::Controls::Label* __pLabelMid;\r
+       Tizen::Ui::Controls::Label* __pLabelMin;\r
+       Tizen::Ui::Controls::Label* __pLabelMax;\r
+       Tizen::Ui::Controls::CheckButton* __pCheckButtons[6];\r
+       std::unique_ptr<Tizen::Media::AudioEqualizer> __pAudioEqualizer;\r
+       std::unique_ptr<Tizen::Media::Player> __pPlayer;\r
+       std::unique_ptr<Tizen::Base::Collection::IListT<int> > __pLevels;\r
+       std::unique_ptr<int> __pMaxVaule;\r
+       std::unique_ptr<int> __pMinVaule;\r
+       int __noBands;\r
+};\r
+\r
+#endif  //_AUDIO_IN_OUT_H_\r
diff --git a/project/src/Audio/AudioRouteForm.cpp b/project/src/Audio/AudioRouteForm.cpp
new file mode 100644 (file)
index 0000000..182bf71
--- /dev/null
@@ -0,0 +1,1008 @@
+//\r
+// Tizen C++ SDK\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+//     http://www.tizenopensource.org/license\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+#include <iostream>\r
+#include <FGraphics.h>\r
+#include <FGrpColor.h>\r
+#include <FMediaAudioRouteInfo.h>\r
+#include <FMediaAudioRouteManager.h>\r
+\r
+#include "AudioRouteForm.h"\r
+#include "SafeMacros.h"\r
+#include "UnitTestFactory.h"\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Ui;\r
+using namespace Tizen::Ui::Controls;\r
+using namespace Tizen::Io;\r
+using namespace Tizen::System;\r
+using namespace Tizen::App;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Scenes;\r
+using namespace Tizen::Media;\r
+\r
+static const String FORM_ID = L"AudioRouteForm";\r
+extern const Tizen::Ui::Scenes::SceneId AUDIO_ROUTE_SCENE_ID = L"AudioRouteScene";\r
+\r
+const wchar_t* AudioRouteForm::INPUT_DEVICE_LIST[] = {\r
+                L"INPUT_NONE"\r
+               , L"MIC"\r
+               , L"WIRED_ACCESSORY"\r
+               , L"BT_SCO"\r
+};\r
+\r
+const wchar_t* AudioRouteForm::OUTPUT_DEVICE_LIST[] = {\r
+                 L"OUTPUT_NONE"\r
+               , L"SPEAKER"\r
+               , L"RECIEVER"\r
+               , L"WIRED_ACCESSORY"\r
+               , L"BT_SCO"\r
+               , L"BT_A2DP"\r
+               , L"DOCK"\r
+               , L"HDMI"\r
+               , L"WFD"\r
+               , L"USB_AUDIO"\r
+};\r
+\r
+AudioRouteForm*\r
+AudioRouteForm::CreateFormN(const Tizen::Ui::Scenes::SceneId &sceneId)\r
+{\r
+       SceneManager* pSceneManager = SceneManager::GetInstance();\r
+       AudioRouteForm* pForm = new (std::nothrow) AudioRouteForm();\r
+       pForm->Initialize();\r
+       pSceneManager->AddSceneEventListener(sceneId, *(pForm->GetListener()));\r
+       return pForm;\r
+}\r
+\r
+MultiForm*\r
+AudioRouteForm::FormCreateFunc()\r
+{\r
+       AudioRouteForm* pForm = AudioRouteForm::CreateFormN(AUDIO_ROUTE_SCENE_ID);\r
+       return pForm;\r
+}\r
+\r
+String\r
+AudioRouteForm::GetFormId()\r
+{\r
+       return FORM_ID;\r
+}\r
+\r
+SceneId\r
+AudioRouteForm::GetSceneId()\r
+{\r
+       return AUDIO_ROUTE_SCENE_ID;\r
+}\r
+\r
+AudioRouteForm*\r
+AudioRouteForm::GetListener(void)\r
+{\r
+       return this;\r
+}\r
+void\r
+AudioRouteForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,\r
+                                                                  const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs)\r
+{\r
+       OnActivate(null);\r
+}\r
+void\r
+AudioRouteForm::OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,\r
+                                                                       const Tizen::Ui::Scenes::SceneId& nextSceneId)\r
+{\r
+\r
+}\r
+void\r
+AudioRouteForm::UpdateInputDevices(void)\r
+{\r
+       for (int i = 0; i < MAX_INPUT_DEVICE; i++)\r
+       {\r
+               if (__pInputDeviceButtons[i])\r
+               {\r
+                       __pInputDeviceButtons[i]->SetEnabled(__inputList[i]);\r
+                       __pInputDeviceButtons[i]->SetTextColor(Color::GetColor(COLOR_ID_BLUE));\r
+               }\r
+       }\r
+       __pLabelActiveIn->SetText(INPUT_DEVICE_LIST[__currentInputDevice]);\r
+       Draw();\r
+}\r
+void\r
+AudioRouteForm::UpdateOutputDevices(void)\r
+{\r
+       for (int i = 0; i < MAX_OUTPUT_DEVICE; i++)\r
+       {\r
+               if (__pOutputDeviceButtons[i])\r
+               {\r
+                       __pOutputDeviceButtons[i]->SetEnabled(__outputList[i]);\r
+                       __pOutputDeviceButtons[i]->SetTextColor(Color::GetColor(COLOR_ID_BLUE));\r
+               }\r
+       }\r
+       __pLabelActiveOut->SetText(OUTPUT_DEVICE_LIST[__currentOutputDevice]);\r
+       Draw();\r
+}\r
+\r
+AudioRouteForm::AudioRouteForm(void)\r
+       : __pAudioRouteManager(null)\r
+       , __pAudioDeviceList(null, remover)\r
+       , __pPlayer(null)\r
+       , __pAudioRecorder(null)\r
+       , __toRouteInputDevice(INPUT_AUDIO_DEVICE_NONE)\r
+       , __toRouteOutputDevice(OUTPUT_AUDIO_DEVICE_NONE)\r
+       , __pLabelActiveIn(null)\r
+       , __pLabelActiveOut(null)\r
+       , __numInputAvail(0)\r
+       , __numOutputAvail(0)\r
+       , __isOutChecked(false)\r
+       , __isInChecked(false)\r
+       , __isRecording(false)\r
+       , __isPlaying(false)\r
+{\r
+       for (int i= 0;i < MAX_INPUT_DEVICE; i ++)\r
+       {\r
+               __inputList[i] = 0;\r
+               __pInputDeviceButtons[i] = null;\r
+       }\r
+\r
+       for (int i= 0;i < MAX_OUTPUT_DEVICE; i ++)\r
+       {\r
+               __outputList[i] = 0;\r
+               __pOutputDeviceButtons[i] = null;\r
+       }\r
+}\r
+\r
+AudioRouteForm::~AudioRouteForm(void)\r
+{\r
+       __pAudioRouteManager->SetAudioRouteEventListener(null);\r
+       __pAudioRouteManager = null;\r
+}\r
+\r
+bool\r
+AudioRouteForm::Initialize(void)\r
+{\r
+       // This is called at once when application is launched.\r
+       // Construct an XML form\r
+       Construct(L"IDF_AUDIO_ROUTER");\r
+       return true;\r
+}\r
+\r
+result\r
+AudioRouteForm::OnInitializing(void)\r
+{\r
+       result r = E_SUCCESS;\r
+       AppConfig* pConfig = null;\r
+       SetFormBackEventListener(this);\r
+       Footer* pFooter = GetFooter();\r
+       TryReturn(pFooter, GetLastResult(), "[%s] GetFooter Failed", GetErrorMessage(GetLastResult()));\r
+       pFooter->SetBackButton();\r
+\r
+       AddFooterItem(L"Reset", ID_BUTTON_RESET);\r
+       AddFooterItem(L"Record", ID_BUTTON_RECORD);\r
+       AddFooterItem(L"Play", ID_BUTTON_PLAY);\r
+\r
+       pFooter->AddActionEventListener(*this);\r
+       pFooter->SetItemEnabled(FOOTER_ID_RESET, false);\r
+       pFooter->SetItemEnabled(FOOTER_ID_PLAY, false);\r
+\r
+       InitAudioDeviceStructures();\r
+       //Input Devices\r
+\r
+       __pInputDeviceButtons[INPUT_AUDIO_DEVICE_NONE] = static_cast<Button *>(GetControl(L"BUTTON_IN_NONE"));\r
+       TryCatch(__pInputDeviceButtons[INPUT_AUDIO_DEVICE_NONE] != null, r = GetLastResult(), "[%s] GetControl BUTTON_IN_NONE Failed",GetErrorMessage(GetLastResult()));\r
+       __pInputDeviceButtons[INPUT_AUDIO_DEVICE_NONE]->SetActionId(ID_INPUT_BUTTON_BASE + INPUT_AUDIO_DEVICE_NONE);\r
+       __pInputDeviceButtons[INPUT_AUDIO_DEVICE_NONE]->AddActionEventListener(*this);\r
+\r
+       __pInputDeviceButtons[INPUT_AUDIO_DEVICE_MIC] = static_cast<Button *>(GetControl(L"BUTTON_MICROPHONE"));\r
+       TryCatch(__pInputDeviceButtons[INPUT_AUDIO_DEVICE_MIC] != null, r = GetLastResult(), "[%s] GetControl BUTTON_MICROPHONE Failed",GetErrorMessage(GetLastResult()));\r
+       __pInputDeviceButtons[INPUT_AUDIO_DEVICE_MIC]->SetActionId(ID_INPUT_BUTTON_BASE + INPUT_AUDIO_DEVICE_MIC);\r
+       __pInputDeviceButtons[INPUT_AUDIO_DEVICE_MIC]->AddActionEventListener(*this);\r
+\r
+       __pInputDeviceButtons[INPUT_AUDIO_DEVICE_WIRED_ACCESSORY] = static_cast<Button *>(GetControl(L"BUTTON_HEADSET"));\r
+       TryCatch(__pInputDeviceButtons[INPUT_AUDIO_DEVICE_WIRED_ACCESSORY] != null, r = GetLastResult(), "[%s] GetControl BUTTON_HEADSET Failed",GetErrorMessage(GetLastResult()));\r
+       __pInputDeviceButtons[INPUT_AUDIO_DEVICE_WIRED_ACCESSORY]->SetActionId(ID_INPUT_BUTTON_BASE + INPUT_AUDIO_DEVICE_WIRED_ACCESSORY);\r
+       __pInputDeviceButtons[INPUT_AUDIO_DEVICE_WIRED_ACCESSORY]->AddActionEventListener(*this);\r
+\r
+       __pInputDeviceButtons[INPUT_AUDIO_DEVICE_BT_SCO] = static_cast<Button *>(GetControl(L"BUTTON_BLUE_IN"));\r
+       TryCatch(__pInputDeviceButtons[INPUT_AUDIO_DEVICE_BT_SCO] != null, r = GetLastResult(), "[%s] GetControl BUTTON_BLUE_IN Failed",GetErrorMessage(GetLastResult()));\r
+       __pInputDeviceButtons[INPUT_AUDIO_DEVICE_BT_SCO]->SetActionId(ID_INPUT_BUTTON_BASE + INPUT_AUDIO_DEVICE_BT_SCO);\r
+       __pInputDeviceButtons[INPUT_AUDIO_DEVICE_BT_SCO]->AddActionEventListener(*this);\r
+\r
+       //Output Devices\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_NONE] = static_cast<Button *>(GetControl(L"BUTTON_OUT_NONE"));\r
+       TryCatch(__pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_NONE] != null, r = GetLastResult(), "[%s] GetControl BUTTON_OUT_NONE Failed",GetErrorMessage(GetLastResult()));\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_NONE]->SetActionId(ID_OUTPUT_BUTTON_BASE + OUTPUT_AUDIO_DEVICE_NONE);\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_NONE]->AddActionEventListener(*this);\r
+\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_SPEAKER] = static_cast<Button *>(GetControl(L"BUTTON_SPEAKER"));\r
+       TryCatch(__pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_SPEAKER] != null, r = GetLastResult(), "[%s] GetControl BUTTON_SPEAKER Failed",GetErrorMessage(GetLastResult()));\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_SPEAKER]->SetActionId(ID_OUTPUT_BUTTON_BASE + OUTPUT_AUDIO_DEVICE_SPEAKER);\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_SPEAKER]->AddActionEventListener(*this);\r
+\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_RECEIVER] = static_cast<Button *>(GetControl(L"BUTTON_RECEIVER"));\r
+       TryCatch(__pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_RECEIVER] != null, r = GetLastResult(), "[%s] GetControl BUTTON_RECEIVER Failed",GetErrorMessage(GetLastResult()));\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_RECEIVER]->SetActionId(ID_OUTPUT_BUTTON_BASE + OUTPUT_AUDIO_DEVICE_RECEIVER);\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_RECEIVER]->AddActionEventListener(*this);\r
+\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY] = static_cast<Button *>(GetControl(L"BUTTON_HEADSET_OUT"));\r
+       TryCatch(__pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY] != null, r = GetLastResult(), "[%s] GetControl BUTTON_HEADSET_OUT Failed",GetErrorMessage(GetLastResult()));\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY]->SetActionId(ID_OUTPUT_BUTTON_BASE + OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY);\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY]->AddActionEventListener(*this);\r
+\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_BT_A2DP] = static_cast<Button *>(GetControl(L"BUTTON_BLUE_A2DP"));\r
+       TryCatch(__pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_BT_A2DP] != null, r = GetLastResult(), "[%s] GetControl BUTTON_BLUE_A2DP Failed",GetErrorMessage(GetLastResult()));\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_BT_A2DP]->SetActionId(ID_OUTPUT_BUTTON_BASE + OUTPUT_AUDIO_DEVICE_BT_A2DP);\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_BT_A2DP]->AddActionEventListener(*this);\r
+\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_BT_SCO] = static_cast<Button *>(GetControl(L"BUTTON_BLUE_SCO"));\r
+       TryCatch(__pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_BT_SCO] != null, r = GetLastResult(), "[%s] GetControl BUTTON_BLUE_SCO Failed",GetErrorMessage(GetLastResult()));\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_BT_SCO]->SetActionId(ID_OUTPUT_BUTTON_BASE + OUTPUT_AUDIO_DEVICE_BT_SCO);\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_BT_SCO]->AddActionEventListener(*this);\r
+\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_DOCK] = static_cast<Button *>(GetControl(L"BUTTON_DOCK"));\r
+       TryCatch(__pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_DOCK] != null, r = GetLastResult(), "[%s] GetControl BUTTON_DOCK Failed",GetErrorMessage(GetLastResult()));\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_DOCK]->SetActionId(ID_OUTPUT_BUTTON_BASE + OUTPUT_AUDIO_DEVICE_DOCK);\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_DOCK]->AddActionEventListener(*this);\r
+\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_HDMI] = static_cast<Button *>(GetControl(L"BUTTON_HDMI"));\r
+       TryCatch(__pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_HDMI] != null, r = GetLastResult(), "[%s] GetControl BUTTON_HDMI Failed",GetErrorMessage(GetLastResult()));\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_HDMI]->SetActionId(ID_OUTPUT_BUTTON_BASE + OUTPUT_AUDIO_DEVICE_HDMI);\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_HDMI]->AddActionEventListener(*this);\r
+\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_WFD] = static_cast<Button *>(GetControl(L"BUTTON_WFD"));\r
+       TryCatch(__pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_WFD] != null, r = GetLastResult(), "[%s] GetControl BUTTON_WFD Failed",GetErrorMessage(GetLastResult()));\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_WFD]->SetActionId(ID_OUTPUT_BUTTON_BASE + OUTPUT_AUDIO_DEVICE_WFD);\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_WFD]->AddActionEventListener(*this);\r
+\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_USB_AUDIO] = static_cast<Button *>(GetControl(L"BUTTON_USB"));\r
+       TryCatch(__pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_USB_AUDIO] != null, r = GetLastResult(), "[%s] GetControl BUTTON_USB Failed",GetErrorMessage(GetLastResult()));\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_USB_AUDIO]->SetActionId(ID_OUTPUT_BUTTON_BASE + OUTPUT_AUDIO_DEVICE_USB_AUDIO);\r
+       __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_USB_AUDIO]->AddActionEventListener(*this);\r
+\r
+       __pLabelActiveIn = static_cast<Label *>(GetControl(L"LABEL_ACTIVE_IN"));\r
+       TryCatch(__pLabelActiveIn != null, r = GetLastResult(), "[%s] GetControl LABEL_ACTIVE_IN Failed",GetErrorMessage(GetLastResult()));\r
+\r
+       __pLabelActiveOut = static_cast<Label *>(GetControl(L"LABEL_ACTIVE_OUT"));\r
+       TryCatch(__pLabelActiveOut != null, r = GetLastResult(), "[%s] GetControl LABEL_ACTIVE_IN Failed",GetErrorMessage(GetLastResult()));\r
+\r
+       pConfig = AppConfig::GetInstance();\r
+       TryReturn(pConfig != null, GetLastResult(), "pConfig is null");\r
+\r
+       __filePath.Clear();\r
+       __filePath.Append(App::GetInstance()->GetAppRootPath());\r
+       __filePath.Append(pConfig->GetString("AudioRouter", String(L"audioFile")));\r
+       __filePath.Append(".amr");\r
+\r
+       //__defaulTextColor = __pOutputDeviceButtons[OUTPUT_AUDIO_DEVICE_USB_AUDIO]->GetTextColor();\r
+       __pAppConfig = AppConfig::GetInstance();\r
+       TryCatch(__pAppConfig != null, r = E_SYSTEM, "[E_SYSTEM] AppConfig is NULL!");\r
+       __routingTextColor = Color(144, 238, 144);\r
+       ShowActiveButtons();\r
+       __isInChecked = false;\r
+       __isOutChecked = false;\r
+       return E_SUCCESS;\r
+CATCH:\r
+       return r;\r
+}\r
+\r
+void\r
+AudioRouteForm::InitAudioDeviceStructures(void)\r
+{\r
+       if (__pAudioRouteManager == null)\r
+       {\r
+               __pAudioRouteManager = AudioRouteManager::GetInstance();\r
+               __pAudioRouteManager->SetAudioRouteEventListener(this);\r
+       }\r
+\r
+       __pAudioDeviceList.reset(__pAudioRouteManager->GetAvailableAudioRouteListN());\r
+       AppAssert(__pAudioDeviceList.get() != null);\r
+\r
+       for (int i= 0;i < MAX_INPUT_DEVICE; i ++)\r
+       {\r
+               __inputList[i] = 0;\r
+       }\r
+       for (int i= 0;i < MAX_OUTPUT_DEVICE; i ++)\r
+       {\r
+               __outputList[i] = 0;\r
+       }\r
+\r
+       int count = __pAudioDeviceList->GetCount();\r
+       AppLog("count - %d",count);\r
+       for(int i = 0; i < count; i++)\r
+       {\r
+               AudioRouteInfo *pAudioDevice = (AudioRouteInfo *)__pAudioDeviceList->GetAt(i);\r
+               AppLog("Input - %ls Output - %ls",INPUT_DEVICE_LIST[pAudioDevice->GetInputAudioDevice()], OUTPUT_DEVICE_LIST[pAudioDevice->GetOutputAudioDevice()]);\r
+               __inputList[pAudioDevice->GetInputAudioDevice()] = 1;\r
+               __outputList[pAudioDevice->GetOutputAudioDevice()] = 1;\r
+       }\r
+\r
+       __numInputAvail = 0;\r
+       __numOutputAvail = 0;\r
+\r
+       for (int i= 0; i < MAX_INPUT_DEVICE; i++)\r
+       {\r
+               if (__inputList[i])\r
+               {\r
+                       __numInputAvail++;\r
+               }\r
+       }\r
+\r
+       for (int i= 0; i < MAX_OUTPUT_DEVICE; i++)\r
+       {\r
+               if (__outputList[i])\r
+               {\r
+                       __numOutputAvail++;\r
+               }\r
+       }\r
+       AudioRouteInfo device(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_NONE);\r
+       device = __pAudioRouteManager->GetActiveAudioRoute();\r
+       __currentInputDevice = device.GetInputAudioDevice();\r
+       __currentOutputDevice = device.GetOutputAudioDevice();\r
+       AppLog("Input - %d Output - %d", __currentInputDevice, __currentOutputDevice);\r
+}\r
+\r
+void\r
+AudioRouteForm::ShowActiveButtons(void)\r
+{\r
+       UpdateInputDevices();\r
+       UpdateOutputDevices();\r
+       ShowFooterItem(FOOTER_ID_RESET, true);\r
+}\r
+\r
+void\r
+AudioRouteForm::DeactivateButtons(void)\r
+{\r
+       for (int i = 0; i < MAX_INPUT_DEVICE; i++)\r
+       {\r
+               if (__pInputDeviceButtons[i])\r
+               {\r
+                       __pInputDeviceButtons[i]->SetEnabled(false);\r
+                       __pInputDeviceButtons[i]->SetTextColor(Color::GetColor(COLOR_ID_GREY));\r
+               }\r
+       }\r
+\r
+       for (int i = 0; i < MAX_OUTPUT_DEVICE; i++)\r
+       {\r
+               if (__pOutputDeviceButtons[i])\r
+               {\r
+                       __pOutputDeviceButtons[i]->SetEnabled(false);\r
+                       __pOutputDeviceButtons[i]->SetTextColor(Color::GetColor(COLOR_ID_GREY));\r
+               }\r
+       }\r
+       ShowFooterItem(FOOTER_ID_RESET, false);\r
+       Draw();\r
+}\r
+\r
+result\r
+AudioRouteForm::OnActivate(void* pParam)\r
+{\r
+       result r = E_SUCCESS;\r
+       AppLog("Enter");\r
+       InitAudioDeviceStructures();\r
+       AudioRouteInfo route(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_NONE);\r
+       ShowActiveButtons();\r
+       AppLog("Input - %ls Output - %ls", INPUT_DEVICE_LIST[__currentInputDevice], OUTPUT_DEVICE_LIST[__currentOutputDevice]);\r
+       return r;\r
+}\r
+\r
+void\r
+AudioRouteForm::OnBatteryLevelChanged(Tizen::System::BatteryLevel batteryLevel)\r
+{\r
+       if (batteryLevel == BATTERY_CRITICAL || batteryLevel == BATTERY_EMPTY || batteryLevel == BATTERY_LOW)\r
+       {\r
+               bool isCharging = false;\r
+               Tizen::System::RuntimeInfo::GetValue(String(L"IsCharging"), isCharging);\r
+               if ((!isCharging) && (__pPlayer.get() != null))\r
+               {\r
+                       __pPlayer->Stop();\r
+                       __pPlayer->Close();\r
+                       Deactivate();\r
+               }\r
+       }\r
+}\r
+\r
+void\r
+AudioRouteForm::OnBackground(void)\r
+{\r
+       if(__isPlaying)\r
+       {\r
+               TryReturn(__pPlayer.get(), , "[E_INVALID_STATE] pPlayer is NULL");\r
+               PlayerState state = PLAYER_STATE_ERROR;\r
+               state = __pPlayer->GetState();\r
+               if (state == PLAYER_STATE_PLAYING)\r
+               {\r
+                       __pPlayer->Pause();\r
+                       ShowFooterItem(FOOTER_ID_RECORD, true);\r
+                       SetFooterItem(FOOTER_ID_PLAY, "Play", ID_BUTTON_PLAY);\r
+                       __isPlaying = false;\r
+               }\r
+       }\r
+       else if (__isRecording)\r
+       {\r
+               TryReturn(__pAudioRecorder.get(), , "[E_INVALID_STATE] pAudioRecorder is NULL");\r
+               RecorderState state = RECORDER_STATE_ERROR;\r
+               state = __pAudioRecorder->GetState();\r
+               if (state == RECORDER_STATE_RECORDING)\r
+               {\r
+                       __pAudioRecorder->Cancel();\r
+               }\r
+       }\r
+       ShowActiveButtons();\r
+}\r
+\r
+void\r
+AudioRouteForm::OnFormBackRequested(Tizen::Ui::Controls::Form& source)\r
+{\r
+       AudioRouteInfo routeInfo(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_NONE);\r
+       if (__isPlaying)\r
+       {\r
+               if (__pPlayer.get())\r
+               {\r
+                       __pPlayer->Stop();\r
+                       __pPlayer->Close();\r
+               }\r
+       }\r
+\r
+       if (__isRecording)\r
+       {\r
+               if (__pAudioRecorder.get())\r
+               {\r
+                       __pAudioRecorder->Cancel();\r
+               }\r
+       }\r
+       TryReturn(__pAudioRouteManager, , "[E_INVALID_STATE] RouteManager is NULL");\r
+       routeInfo = __pAudioRouteManager->GetActiveAudioRoute();\r
+       if (routeInfo.GetInputAudioDevice() != INPUT_AUDIO_DEVICE_MIC ||\r
+                       routeInfo.GetOutputAudioDevice() != OUTPUT_AUDIO_DEVICE_SPEAKER)\r
+       {\r
+               ShowMessageBox("Info", "The route is set to Mic/Speaker");\r
+               //Set to Default\r
+               routeInfo.SetInputAudioDevice(INPUT_AUDIO_DEVICE_MIC);\r
+               routeInfo.SetOutputAudioDevice(OUTPUT_AUDIO_DEVICE_SPEAKER);\r
+               if (__pAudioRouteManager)\r
+               {\r
+                       __pAudioRouteManager->SetActiveAudioRoute(routeInfo);\r
+               }\r
+       }\r
+       Deactivate();\r
+}\r
+\r
+void\r
+AudioRouteForm::RouteAudio(void)\r
+{\r
+       result r = E_SUCCESS;\r
+       AudioRouteInfo audioRoute(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_NONE);\r
+       audioRoute.SetInputAudioDevice(__toRouteInputDevice);\r
+       audioRoute.SetOutputAudioDevice(__toRouteOutputDevice);\r
+       AppLog("Inout - %d output - %d", __toRouteInputDevice, __toRouteOutputDevice);\r
+       r = __pAudioRouteManager->SetActiveAudioRoute(audioRoute);\r
+       if (IsFailed(r))\r
+       {\r
+               ShowMessageBox("Error", "Route failed\n(%s)", GetErrorMessage(r));\r
+       }\r
+       else\r
+       {\r
+               __toRouteInputDevice = INPUT_AUDIO_DEVICE_NONE;\r
+               __toRouteOutputDevice = OUTPUT_AUDIO_DEVICE_NONE;\r
+               __isInChecked = false;\r
+               __isOutChecked = false;\r
+               ShowFooterItem(FOOTER_ID_RESET, false);\r
+               InitAudioDeviceStructures();\r
+               ShowActiveButtons();\r
+       }\r
+}\r
+\r
+\r
+void\r
+AudioRouteForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)\r
+{\r
+       AppLog("Action Id - %d InputSelected - %d OutputSelected - %d", actionId, __isInChecked, __isOutChecked);\r
+       result r = E_SUCCESS;\r
+       if (actionId == ID_BUTTON_RESET)\r
+       {\r
+               AudioRouteInfo audioRoute(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_NONE);\r
+               TryReturn(__pAudioRouteManager, , "[E_INVALID_STATE] RouteManager is NULL");\r
+               audioRoute = __pAudioRouteManager->GetActiveAudioRoute();\r
+               if (audioRoute.GetInputAudioDevice() != INPUT_AUDIO_DEVICE_MIC ||\r
+                       audioRoute.GetOutputAudioDevice() != OUTPUT_AUDIO_DEVICE_SPEAKER)\r
+               {\r
+                       audioRoute.SetInputAudioDevice(INPUT_AUDIO_DEVICE_MIC);\r
+                       audioRoute.SetOutputAudioDevice(OUTPUT_AUDIO_DEVICE_SPEAKER);\r
+                       r = __pAudioRouteManager->SetActiveAudioRoute(audioRoute);\r
+                       if (IsFailed(r))\r
+                       {\r
+                               ShowMessageBox("Error", "Route failed\n(%s)", GetErrorMessage(r));\r
+                       }\r
+                       else\r
+                       {\r
+                               __toRouteInputDevice = INPUT_AUDIO_DEVICE_NONE;\r
+                               __toRouteOutputDevice = OUTPUT_AUDIO_DEVICE_NONE;\r
+                               __isInChecked = false;\r
+                               __isOutChecked = false;\r
+                               InitAudioDeviceStructures();\r
+                               ShowActiveButtons();\r
+                       }\r
+               }\r
+       }\r
+       else if (actionId == ID_BUTTON_PLAY)\r
+       {\r
+               if (!__isPlaying)\r
+               {\r
+                       r = StartPlayer();\r
+                       if ( r != E_SUCCESS)\r
+                       {\r
+                               ShowMessageBox("Error", "Play failed\n(%s)", GetErrorMessage(r));\r
+                       }\r
+                       TryReturn(r == E_SUCCESS, , "[%s] Play failed", GetErrorMessage(r));\r
+                       ShowFooterItem(FOOTER_ID_RECORD, false);\r
+                       SetFooterItem(FOOTER_ID_PLAY, "Stop", ID_BUTTON_PLAY);\r
+                       DeactivateButtons();\r
+                       __isPlaying = true;\r
+               }\r
+               else\r
+               {\r
+                       StopPlayer();\r
+                       ShowFooterItem(FOOTER_ID_RECORD, true);\r
+                       SetFooterItem(FOOTER_ID_PLAY, "Play", ID_BUTTON_PLAY);\r
+                       ShowActiveButtons();\r
+                       __isPlaying = false;\r
+               }\r
+               Draw();\r
+       }\r
+       else if (actionId == ID_BUTTON_RECORD)\r
+       {\r
+               if (!__isRecording)\r
+               {\r
+                       r = StartRecorder();\r
+                       if ( r != E_SUCCESS)\r
+                       {\r
+                               ShowMessageBox("Error", "Start Recording failed\n(%s)", GetErrorMessage(r));\r
+                       }\r
+               }\r
+               else\r
+               {\r
+                       r = StopRecorder();\r
+                       TryLog(r == E_SUCCESS, "StopRecoder Failed");\r
+                       if (r != E_SUCCESS)\r
+                       {\r
+\r
+                               SetFooterItem(FOOTER_ID_RECORD, "Record", ID_BUTTON_RECORD);\r
+                               ShowFooterItem(FOOTER_ID_PLAY, true);\r
+                               ShowActiveButtons();\r
+                               __isRecording = false;\r
+                       }\r
+               }\r
+       }\r
+       else if (actionId >= ID_INPUT_BUTTON_BASE && actionId <= ID_INPUT_BUTTON_BASE + INPUT_AUDIO_DEVICE_BT_SCO)\r
+       {\r
+               int index = actionId - ID_INPUT_BUTTON_BASE;\r
+               if (__isInChecked )\r
+               {\r
+                       __toRouteInputDevice = INPUT_AUDIO_DEVICE_NONE;\r
+                       __isInChecked = false;\r
+                       __isOutChecked = false;\r
+                       UpdateInputDevices();\r
+                       UpdateOutputDevices();\r
+               }\r
+               else\r
+               {\r
+                       //Input\r
+                       __toRouteInputDevice = static_cast<Tizen::Media::InputAudioDevice> (actionId - ID_INPUT_BUTTON_BASE);\r
+                       for (int i = 0; i < MAX_INPUT_DEVICE; i++)\r
+                       {\r
+                               if((i == __toRouteInputDevice) && (__pInputDeviceButtons[__toRouteInputDevice]))\r
+                               {\r
+                                       __pInputDeviceButtons[__toRouteInputDevice]->SetTextColor(Color::GetColor(COLOR_ID_RED));\r
+                                       __pInputDeviceButtons[__toRouteInputDevice]->Draw();\r
+                                       __isInChecked = true;\r
+                               }\r
+                               else if (__pInputDeviceButtons[i])\r
+                               {\r
+                                       __pInputDeviceButtons[i]->SetEnabled(false);\r
+                                       __pInputDeviceButtons[i]->SetTextColor(Color::GetColor(COLOR_ID_GREY));\r
+                               }\r
+                       }\r
+                       //Output\r
+                       if (__isOutChecked == false)\r
+                       {\r
+                               for (int i = 0; i < MAX_OUTPUT_DEVICE; i++)\r
+                               {\r
+                                       if (__pOutputDeviceButtons[i])\r
+                                       {\r
+                                               __pOutputDeviceButtons[i]->SetEnabled(false);\r
+                                               __pOutputDeviceButtons[i]->SetTextColor(Color::GetColor(COLOR_ID_GREY));\r
+                                       }\r
+                               }\r
+                               std::unique_ptr<IList, RouteListRemover> pOutList(GetSupportedOutDevicesN(static_cast<InputAudioDevice>(index)), remover);\r
+                               if (pOutList.get())\r
+                               {\r
+                                       for (int j = 0; j < pOutList->GetCount(); j++)\r
+                                       {\r
+                                               Long *pTemp = (Long *)pOutList->GetAt(j);\r
+                                               unsigned int outItem = pTemp->ToInt();\r
+                                               if (__pOutputDeviceButtons[outItem])\r
+                                               {\r
+                                                       AppLog("outItem - %d Enabled ", outItem);\r
+                                                       __pOutputDeviceButtons[outItem]->SetEnabled(true);\r
+                                                       __pOutputDeviceButtons[outItem]->SetTextColor(Color::GetColor(COLOR_ID_BLUE));\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+                       else\r
+                       {\r
+                               RouteAudio();\r
+                       }\r
+               }\r
+       }\r
+       else if (actionId >= ID_OUTPUT_BUTTON_BASE && actionId <= ID_OUTPUT_BUTTON_BASE + OUTPUT_AUDIO_DEVICE_USB_AUDIO)\r
+       {\r
+               int index = actionId - ID_OUTPUT_BUTTON_BASE;\r
+               if (__isOutChecked )\r
+               {\r
+                       __toRouteOutputDevice = OUTPUT_AUDIO_DEVICE_NONE;\r
+                       __isOutChecked = false;\r
+                       __isInChecked = false;\r
+                       UpdateInputDevices();\r
+                       UpdateOutputDevices();\r
+               }\r
+               else\r
+               {\r
+                       //Output\r
+                       __toRouteOutputDevice = static_cast<Tizen::Media::OutputAudioDevice> (actionId - ID_OUTPUT_BUTTON_BASE);\r
+                       for (int i = 0; i < MAX_OUTPUT_DEVICE; i++)\r
+                       {\r
+                               if((i == __toRouteOutputDevice) && (__pOutputDeviceButtons[__toRouteOutputDevice]))\r
+                               {\r
+                                       __pOutputDeviceButtons[__toRouteOutputDevice]->SetTextColor(Color::GetColor(COLOR_ID_RED));\r
+                                       __pOutputDeviceButtons[__toRouteOutputDevice]->Draw();\r
+                                       __isOutChecked = true;\r
+                               }\r
+                               else if (__pOutputDeviceButtons[i])\r
+                               {\r
+                                       __pOutputDeviceButtons[i]->SetEnabled(false);\r
+                                       __pOutputDeviceButtons[i]->SetTextColor(Color::GetColor(COLOR_ID_GREY));\r
+                               }\r
+                       }\r
+                       //Input\r
+                       if (__isInChecked == false)\r
+                       {\r
+                               for (int i = 0; i < MAX_INPUT_DEVICE; i++)\r
+                               {\r
+                                       if (__pInputDeviceButtons[i])\r
+                                       {\r
+                                               __pInputDeviceButtons[i]->SetEnabled(false);\r
+                                               __pInputDeviceButtons[i]->SetTextColor(Color::GetColor(COLOR_ID_GREY));\r
+                                       }\r
+                               }\r
+                               std::unique_ptr<IList, RouteListRemover> pInList(GetSupportedInDevicesN(static_cast<OutputAudioDevice>(index)), remover);\r
+                               if (pInList.get())\r
+                               {\r
+                                       for(int j = 0; j < pInList->GetCount(); j++)\r
+                                       {\r
+                                               Long *pTemp = (Long *)pInList->GetAt(j);\r
+                                               unsigned int inItem = pTemp->ToInt();\r
+                                               if (__pInputDeviceButtons[inItem])\r
+                                               {\r
+                                                       AppLog("outItem - %d Enabled ", inItem);\r
+                                                       __pInputDeviceButtons[inItem]->SetEnabled(true);\r
+                                                       __pInputDeviceButtons[inItem]->SetTextColor(Color::GetColor(COLOR_ID_BLUE));\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+                       else\r
+                       {\r
+                               RouteAudio();\r
+                       }\r
+               }\r
+       }\r
+       Draw();\r
+}\r
+\r
+result\r
+AudioRouteForm::StartPlayer(void)\r
+{\r
+       bool isFileExist = false;\r
+       result r = E_SUCCESS;\r
+       isFileExist = File::IsFileExist(__filePath);\r
+       TryReturn(isFileExist == true, E_FILE_NOT_FOUND, "[E_FILE_NOT_FOUND] recorded file not found");\r
+       __pPlayer.reset( new (std::nothrow) Player);\r
+       TryReturn(__pPlayer.get(), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] can't create memory for player");\r
+       r = __pPlayer->Construct(*this);\r
+       TryReturn(r == E_SUCCESS, r, "[%s] Construct failed", GetErrorMessage(r));\r
+//     __pPlayer->SetLooping(true);\r
+       r = __pPlayer->SetVolume(80);\r
+       TryReturn(r == E_SUCCESS, r, "[%s] set volume failed", GetErrorMessage(r));\r
+\r
+       r = __pPlayer->OpenFile(__filePath);\r
+       TryReturn(r == E_SUCCESS, r, "[%s] Open failed", GetErrorMessage(r));\r
+       r = __pPlayer->Play();\r
+       return r;\r
+}\r
+\r
+void\r
+AudioRouteForm::StopPlayer(void)\r
+{\r
+       PlayerState state = PLAYER_STATE_ERROR;\r
+       result r = E_SUCCESS;\r
+       TryReturn(__pPlayer.get(), , "[E_INVALID_STATE] Player is NULL!!");\r
+       state = __pPlayer->GetState();\r
+       if (state == PLAYER_STATE_ERROR)\r
+       {\r
+               __pPlayer.reset(null);\r
+               return;\r
+       }\r
+       if ((state == PLAYER_STATE_PLAYING) || (state == PLAYER_STATE_PAUSED))\r
+       {\r
+               r = __pPlayer->Stop();\r
+               TryLog(r == E_SUCCESS, "[%s] Player Stop failed", GetErrorMessage(r));\r
+       }\r
+       if ((state == PLAYER_STATE_OPENED) || (state == PLAYER_STATE_STOPPED) || (state == PLAYER_STATE_ENDOFCLIP))\r
+       {\r
+               r = __pPlayer->Close();\r
+               TryLog(r == E_SUCCESS, "[%s] Player Close failed", GetErrorMessage(r));\r
+       }\r
+       return;\r
+}\r
+\r
+result\r
+AudioRouteForm::StartRecorder(void)\r
+{\r
+       result r = E_SUCCESS;\r
+       __pAudioRecorder.reset(new (std::nothrow) AudioRecorder);\r
+       TryReturn(__pAudioRecorder.get() != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] can't create memory for AudioRecorder");\r
+\r
+       r = __pAudioRecorder->Construct(*this);\r
+       TryReturn(r == E_SUCCESS, r, "[%s] AudioRecorder::Construct failed", GetErrorMessage(r));\r
+\r
+       r = __pAudioRecorder->CreateAudioFile(__filePath, true);\r
+       TryReturn(r == E_SUCCESS, r, "[%s] AudioRecorder::CreateAudioFile failed", GetErrorMessage(r));\r
+\r
+       r = __pAudioRecorder->Record();\r
+       return r;\r
+\r
+}\r
+result\r
+AudioRouteForm::StopRecorder(void)\r
+{\r
+       TryReturn(__pAudioRecorder.get(), E_INVALID_STATE, "[E_INVALID_STATE] AudioRecorder is NULL!!");\r
+       RecorderState state = RECORDER_STATE_ERROR;\r
+       result r= E_SUCCESS;\r
+       state = __pAudioRecorder->GetState();\r
+\r
+       if (state == RECORDER_STATE_ERROR)\r
+       {\r
+               __pAudioRecorder.reset(null);\r
+               return GetLastResult();\r
+       }\r
+\r
+       if ((state == RECORDER_STATE_RECORDING) ||\r
+               (state == RECORDER_STATE_PAUSING) ||\r
+               (state == RECORDER_STATE_PAUSED))\r
+       {\r
+               r = __pAudioRecorder->Stop();\r
+       }\r
+       //Close and buttons should be set in Call-backs\r
+       return r;\r
+}\r
+\r
+//Recorder\r
+void\r
+AudioRouteForm::OnAudioRecorderStopped(result r)\r
+{\r
+       AppLog("Enter");\r
+\r
+       TryCatch(__pAudioRecorder.get(), ,"AudioRecorder is NULL!!");\r
+       TryCatch(r == E_SUCCESS, ,"[%s] Stopped returns", GetErrorMessage(r));\r
+\r
+       r = __pAudioRecorder->Close();\r
+       TryCatch(r == E_SUCCESS, , "[%s] Close failed", GetErrorMessage(r));\r
+       return;\r
+CATCH:\r
+       SetFooterItem(FOOTER_ID_RECORD, "Record", ID_BUTTON_RECORD);\r
+       __isRecording = false;\r
+}\r
+\r
+void\r
+AudioRouteForm::OnAudioRecorderCanceled(result r)\r
+{\r
+       AppLog("Enter");\r
+       ShowMessageBox("Warning", "Recorder Canceled\n(%s)", GetErrorMessage(r));\r
+       SetFooterItem(FOOTER_ID_RECORD, "Record", ID_BUTTON_RECORD);\r
+       ShowFooterItem(FOOTER_ID_PLAY, true);\r
+       ShowActiveButtons();\r
+       __isRecording = false;\r
+}\r
+\r
+void\r
+AudioRouteForm::OnAudioRecorderPaused(result r)\r
+{\r
+       AppLog("Enter");\r
+}\r
+\r
+void\r
+AudioRouteForm::OnAudioRecorderStarted(result r)\r
+{\r
+       AppLog("Enter");\r
+       SetFooterItem(FOOTER_ID_RECORD, "Stop", ID_BUTTON_RECORD);\r
+       ShowFooterItem(FOOTER_ID_PLAY, false);\r
+       DeactivateButtons();\r
+       __isRecording = true;\r
+}\r
+\r
+void\r
+AudioRouteForm::OnAudioRecorderEndReached(RecordingEndCondition endCondition)\r
+{\r
+       AppLog("Enter");\r
+       SetFooterItem(FOOTER_ID_RECORD, "Record", ID_BUTTON_RECORD);\r
+       ShowFooterItem(FOOTER_ID_PLAY, true);\r
+       ShowActiveButtons();\r
+       __isRecording = false;\r
+}\r
+\r
+void\r
+AudioRouteForm::OnAudioRecorderClosed(result r)\r
+{\r
+       AppLog("Enter");\r
+       SetFooterItem(FOOTER_ID_RECORD, "Record", ID_BUTTON_RECORD);\r
+       ShowFooterItem(FOOTER_ID_PLAY, true);\r
+       ShowActiveButtons();\r
+       __isRecording = false;\r
+}\r
+\r
+void\r
+AudioRouteForm::OnAudioRecorderErrorOccurred(RecorderErrorReason r)\r
+{\r
+       AppLog("Enter");\r
+       ShowMessageBox("Error", "Recorder Error Occured\n(%s)", GetErrorMessage(r));\r
+       SetFooterItem(FOOTER_ID_RECORD, "Record", ID_BUTTON_RECORD);\r
+       ShowFooterItem(FOOTER_ID_PLAY, true);\r
+       __isRecording = false;\r
+}\r
+\r
+//Player\r
+void\r
+AudioRouteForm::OnPlayerOpened(result r)\r
+{\r
+       AppLog("Enter");\r
+}\r
+\r
+void\r
+AudioRouteForm::OnPlayerEndOfClip(void)\r
+{\r
+       AppLog("Enter");\r
+       ShowFooterItem(FOOTER_ID_RECORD, true);\r
+       SetFooterItem(FOOTER_ID_PLAY, "Play", ID_BUTTON_PLAY);\r
+       ShowActiveButtons();\r
+       __isPlaying = false;\r
+}\r
+\r
+void\r
+AudioRouteForm::OnPlayerSeekCompleted(result r)\r
+{\r
+       AppLog("Enter");\r
+}\r
+\r
+void\r
+AudioRouteForm::OnPlayerBuffering(int percent)\r
+{\r
+       AppLog("Enter");\r
+}\r
+\r
+void\r
+AudioRouteForm::OnPlayerErrorOccurred(PlayerErrorReason r)\r
+{\r
+       AppLog("Enter");\r
+       ShowMessageBox("Error", "Player Error Occured\n(%s)", GetErrorMessage(r));\r
+       ShowFooterItem(FOOTER_ID_RECORD, true);\r
+       SetFooterItem(FOOTER_ID_PLAY, "Play", ID_BUTTON_PLAY);\r
+       ShowActiveButtons();\r
+}\r
+\r
+void\r
+AudioRouteForm::OnPlayerInterrupted(void)\r
+{\r
+       AppLog("Enter");\r
+}\r
+\r
+void\r
+AudioRouteForm::OnPlayerAudioFocusChanged(void)\r
+{\r
+       AppLog("Enter");\r
+       ShowFooterItem(FOOTER_ID_RECORD, true);\r
+       SetFooterItem(FOOTER_ID_PLAY, "Play", ID_BUTTON_PLAY);\r
+       ShowActiveButtons();\r
+}\r
+\r
+void\r
+AudioRouteForm::OnPlayerReleased(void)\r
+{\r
+       AppLog("Enter");\r
+}\r
+\r
+void\r
+AudioRouteForm::OnActiveAudioRouteChanged(const AudioRouteInfo& route)\r
+{\r
+       AppLog("Enter");\r
+       __currentInputDevice = route.GetInputAudioDevice();\r
+       __currentOutputDevice = route.GetOutputAudioDevice();\r
+       UpdateInputDevices();\r
+       UpdateOutputDevices();\r
+}\r
+\r
+void\r
+AudioRouteForm::OnAudioRouteAdded(const AudioRouteInfo& route)\r
+{\r
+       AppLog("Input - %d Output",route.GetInputAudioDevice(), route.GetOutputAudioDevice());\r
+       AppLog("In Available Input - %d %d ", __numInputAvail, __numOutputAvail);\r
+       InitAudioDeviceStructures();\r
+       UpdateInputDevices();\r
+       UpdateOutputDevices();\r
+}\r
+void\r
+AudioRouteForm::OnAudioRouteRemoved(const AudioRouteInfo& route)\r
+{\r
+       AppLog("Input - %d Output",route.GetInputAudioDevice(), route.GetOutputAudioDevice());\r
+       InitAudioDeviceStructures();\r
+       UpdateInputDevices();\r
+       UpdateOutputDevices();\r
+}\r
+\r
+IList*\r
+AudioRouteForm::GetSupportedOutDevicesN(InputAudioDevice in)\r
+{\r
+       IList* pOutList = new (std::nothrow)ArrayList();\r
+       TryReturn(pOutList, null, "[E_OUT_OF_MEMORY] can't allocate memory for ArrayList");\r
+       int count = __pAudioDeviceList->GetCount();\r
+       AppLog("count for input %ls - %d",INPUT_DEVICE_LIST[in], count);\r
+       for(int i = 0; i < count; i ++)\r
+       {\r
+               AudioRouteInfo *pAudioDevice = (AudioRouteInfo *)__pAudioDeviceList->GetAt(i);\r
+               if(pAudioDevice->GetInputAudioDevice() == in)\r
+               {\r
+                       Long *pArrayItem = new (std::nothrow) Long((Long)pAudioDevice->GetOutputAudioDevice());\r
+                       AppLog("Out Device - %S", INPUT_DEVICE_LIST[pAudioDevice->GetOutputAudioDevice()]);\r
+                       if (pArrayItem)\r
+                       {\r
+                               pOutList->Add(*pArrayItem);\r
+                       }\r
+               }\r
+       }\r
+       return pOutList;\r
+}\r
+\r
+IList*\r
+AudioRouteForm::GetSupportedInDevicesN(OutputAudioDevice out)\r
+{\r
+       IList* pOutList = new (std::nothrow)ArrayList();\r
+       TryReturn(pOutList, null, "[E_OUT_OF_MEMORY] can't allocate memory for ArrayList");\r
+       int count = __pAudioDeviceList->GetCount();\r
+       AppLog("count for input %ls - %d",OUTPUT_DEVICE_LIST[out], count);\r
+       for(int i = 0; i < count; i ++)\r
+       {\r
+               AudioRouteInfo *pAudioDevice = (AudioRouteInfo *)__pAudioDeviceList->GetAt(i);\r
+               if(pAudioDevice->GetOutputAudioDevice() == out)\r
+               {\r
+                       Long *pArrayItem = new (std::nothrow) Long((Long)pAudioDevice->GetInputAudioDevice());\r
+                       AppLog("In Device - %ls", INPUT_DEVICE_LIST[pAudioDevice->GetInputAudioDevice()]);\r
+                       if (pArrayItem)\r
+                       {\r
+                               pOutList->Add(*pArrayItem);\r
+                       }\r
+               }\r
+       }\r
+       return pOutList;\r
+}\r
diff --git a/project/src/Audio/AudioRouteForm.h b/project/src/Audio/AudioRouteForm.h
new file mode 100644 (file)
index 0000000..4b8bb7e
--- /dev/null
@@ -0,0 +1,164 @@
+//\r
+// Tizen C++ SDK\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+//     http://www.tizenopensource.org/license\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+#include <FBase.h>\r
+#include <FSystem.h>\r
+#include <FUi.h>\r
+#include <FMedia.h>\r
+#include <FMediaAudioRouteInfo.h>\r
+#include <FMediaAudioManagerTypes.h>\r
+#include <FMediaAudioRouteManager.h>\r
+#include <FMediaIAudioRouteEventListener.h>\r
+#include <FIo.h>\r
+#include "MultiForm.h"\r
+\r
+#ifndef _AUDIO_ENH_DEFAULT_PLAYER_H_\r
+#define _AUDIO_ENH_DEFAULT_PLAYER_H_\r
+\r
+class RouteListRemover\r
+{\r
+public:\r
+       void operator()(Tizen::Base::Collection::ArrayList *pList) const\r
+       {\r
+               if (pList != null)\r
+               {\r
+                       pList->RemoveAll(true);\r
+                       delete pList;\r
+               }\r
+       }\r
+       void operator()(Tizen::Base::Collection::IList *pList) const\r
+       {\r
+               if (pList != null)\r
+               {\r
+                       pList->RemoveAll(true);\r
+                       delete pList;\r
+               }\r
+       }\r
+};\r
+\r
+class AudioRouteForm\r
+       : public MultiForm\r
+       , public Tizen::Media::IPlayerEventListener\r
+       , public Tizen::Media::IAudioRecorderEventListener\r
+       , public Tizen::Media::IAudioRouteEventListener\r
+       , public Tizen::Ui::Scenes::ISceneEventListener\r
+{\r
+public:\r
+       AudioRouteForm(void);\r
+       virtual ~AudioRouteForm(void);\r
+       bool Initialize(void);\r
+       AudioRouteForm* GetListener(void);\r
+       static AudioRouteForm* CreateFormN(const Tizen::Ui::Scenes::SceneId &sceneId);\r
+       static MultiForm* FormCreateFunc();\r
+       static String GetFormId();\r
+       static Tizen::Ui::Scenes::SceneId GetSceneId();\r
+\r
+       void OnFormBackRequested(Tizen::Ui::Controls::Form& source);\r
+       virtual result OnInitializing(void);\r
+       result OnActivate(void* pParam);\r
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+       virtual void OnBackground(void);\r
+       void OnBatteryLevelChanged(Tizen::System::BatteryLevel batteryLevel);\r
+\r
+       //IPlayerEventListener\r
+       virtual void OnPlayerOpened(result r);\r
+       virtual void OnPlayerEndOfClip(void);\r
+       virtual void OnPlayerSeekCompleted(result r);\r
+       virtual void OnPlayerBuffering(int percent);\r
+       virtual void OnPlayerErrorOccurred(Tizen::Media::PlayerErrorReason r);\r
+       virtual void OnPlayerInterrupted(void);\r
+       virtual void OnPlayerReleased(void);\r
+       virtual void OnPlayerAudioFocusChanged(void);\r
+\r
+       virtual void OnAudioRecorderStopped(result r);\r
+       virtual void OnAudioRecorderCanceled(result r);\r
+       virtual void OnAudioRecorderPaused(result r);\r
+       virtual void OnAudioRecorderStarted(result r);\r
+       virtual void OnAudioRecorderEndReached(Tizen::Media::RecordingEndCondition endCondition);\r
+       virtual void OnAudioRecorderClosed(result r);\r
+       virtual void OnAudioRecorderErrorOccurred(Tizen::Media::RecorderErrorReason r);\r
+\r
+       void OnActiveAudioRouteChanged(const Tizen::Media::AudioRouteInfo& route);\r
+       void OnAudioRouteAdded(const Tizen::Media::AudioRouteInfo& route);\r
+       void OnAudioRouteRemoved(const Tizen::Media::AudioRouteInfo& route);\r
+\r
+       //ISceneEventListener\r
+       virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,\r
+                                                                          const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);\r
+       virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,\r
+                                                                               const Tizen::Ui::Scenes::SceneId& nextSceneId);\r
+       static RouteListRemover remover;\r
+protected:\r
+       static const int MAX_INPUT_DEVICE = 4;\r
+       static const int MAX_OUTPUT_DEVICE = 10;\r
+       static const wchar_t* INPUT_DEVICE_LIST[];\r
+       static const wchar_t* OUTPUT_DEVICE_LIST[];\r
+       static const int ID_BUTTON_RESET = 100;\r
+       static const int ID_BUTTON_RECORD = 101;\r
+       static const int ID_BUTTON_PLAY = 102;\r
+       static const int FOOTER_ID_RESET = 0;\r
+       static const int FOOTER_ID_RECORD = 1;\r
+       static const int FOOTER_ID_PLAY = 2;\r
+       static const int ID_INPUT_BUTTON_BASE = 300;\r
+       static const int ID_OUTPUT_BUTTON_BASE = 400;\r
+private:\r
+       Tizen::Base::Collection::IList* GetSupportedOutDevicesN(Tizen::Media::InputAudioDevice in);\r
+       Tizen::Base::Collection::IList* GetSupportedInDevicesN(Tizen::Media::OutputAudioDevice out);\r
+       void ShowActiveButtons(void);\r
+       void UpdateOutputDevices(void);\r
+       void UpdateInputDevices(void);\r
+       void DeactivateButtons(void);\r
+       void InitAudioDeviceStructures(void);\r
+\r
+       result StartPlayer(void);\r
+       void StopPlayer(void);\r
+       result StartRecorder(void);\r
+       result StopRecorder(void);\r
+\r
+       void RouteAudio(void);\r
+\r
+       Tizen::Media::AudioRouteManager* __pAudioRouteManager;\r
+       std::unique_ptr<Tizen::Base::Collection::IList, RouteListRemover> __pAudioDeviceList;\r
+       std::unique_ptr<Tizen::Media::Player> __pPlayer;\r
+       std::unique_ptr<Tizen::Media::AudioRecorder> __pAudioRecorder;\r
+       Tizen::Media::InputAudioDevice __currentInputDevice;\r
+       Tizen::Media::OutputAudioDevice __currentOutputDevice;\r
+       Tizen::Media::InputAudioDevice __toRouteInputDevice;\r
+       Tizen::Media::OutputAudioDevice __toRouteOutputDevice;\r
+       int __inputList[MAX_INPUT_DEVICE];\r
+       int __outputList[MAX_OUTPUT_DEVICE];\r
+       Tizen::Media::InputAudioDevice __inListContent[MAX_INPUT_DEVICE];\r
+       Tizen::Media::OutputAudioDevice __outListContent[MAX_OUTPUT_DEVICE];\r
+       Tizen::Ui::Controls::Button* __pInputDeviceButtons[MAX_INPUT_DEVICE];\r
+       Tizen::Ui::Controls::Button* __pOutputDeviceButtons[MAX_OUTPUT_DEVICE];\r
+       Tizen::Ui::Controls::Label* __pLabelActiveIn;\r
+       Tizen::Ui::Controls::Label* __pLabelActiveOut;\r
+       AppConfig* __pAppConfig;\r
+       int __numInputAvail;\r
+       int __numOutputAvail;\r
+       bool __isOutChecked;\r
+       bool __isInChecked;\r
+       friend class OutputListProvider;\r
+       friend class InputListProvider;\r
+       Tizen::Graphics::Color __defaulTextColor;\r
+       Tizen::Graphics::Color __routingTextColor;\r
+       Tizen::Base::String __filePath;\r
+       bool __isRecording;\r
+       bool __isPlaying;\r
+};\r
+\r
+#endif\r
+\r
index 258cb88..b870792 100644 (file)
@@ -114,6 +114,8 @@ void MainForm::RegisterAllForms(void)
        //Audio
        new UnitTestInfo(L"Audio", L"1.TonePlayer", TONE_PLAYER_SCENE_ID, 0);
        new UnitTestInfo(L"Audio", L"2.AudioInOut", AUDIO_INOUT_SCENE_ID, 0);
+       new UnitTestInfo(L"Audio", L"3.AudioEqualizer", AUDIO_EQUALIZER_SCENE_ID, 0);
+       new UnitTestInfo(L"Audio", L"4.AudioRoute", AUDIO_ROUTE_SCENE_ID, 0);
 
        //recorder
        new UnitTestInfo(L"Recorder", L"1.Camera Capture", CAMERA_CAPTURE_SCENE_ID, 0);
index d9f38e9..99e9e01 100644 (file)
@@ -32,6 +32,8 @@
 
 #include "Audio/AudioInOut.h"
 #include "Audio/TonePlayerForm.h"
+#include "Audio/AudioEqualizerForm.h"
+#include "Audio/AudioRouteForm.h"
 
 #include "Recorder/AudioRecorderForm.h"
 #include "Recorder/VideoRecorderForm.h"
@@ -178,6 +180,12 @@ MultiForm::RegisterAllScenes()
        r = MultiForm::SceneRegister(TonePlayerForm::GetFormId(), TonePlayerForm::GetSceneId(), TonePlayerForm::FormCreateFunc);
        TryReturn(r == E_SUCCESS, r, "Error In scene Registration:%s", GetErrorMessage(r));
 
+       r = MultiForm::SceneRegister(AudioEqualizerForm::GetFormId(), AudioEqualizerForm::GetSceneId(), AudioEqualizerForm::FormCreateFunc);\r
+       TryReturn(r == E_SUCCESS, r, "Error In scene Registration:%s", GetErrorMessage(r));
+
+       r = MultiForm::SceneRegister(AudioRouteForm::GetFormId(), AudioRouteForm::GetSceneId(), AudioRouteForm::FormCreateFunc);
+       TryReturn(r == E_SUCCESS, r, "Error In scene Registration:%s", GetErrorMessage(r));
+
        // camera scenes registration
        r = MultiForm::SceneRegister(CameraCaptureForm::GetFormId(), CameraCaptureForm::GetSceneId(), CameraCaptureForm::FormCreateFunc);
        TryReturn(r == E_SUCCESS, r, "Error In scene Registration:%s", GetErrorMessage(r));