Add TiltSensor demo 94/61494/2
authorsuhyung Eom <suhyung.eom@samsung.com>
Tue, 8 Mar 2016 08:39:09 +0000 (17:39 +0900)
committersuhyung Eom <suhyung.eom@samsung.com>
Tue, 8 Mar 2016 08:41:24 +0000 (17:41 +0900)
Signed-off-by: suhyung Eom <suhyung.eom@samsung.com>
Change-Id: I9e367f4140f18566526ea917da8e571403bd046c

com.samsung.dali-demo.xml
demo/dali-demo.cpp
examples/tilt/tilt-example.cpp [new file with mode: 0644]
shared/dali-demo-strings.h

index 036a122..e388766 100644 (file)
        <ui-application appid="homescreen-benchmark.example" exec="/usr/apps/com.samsung.dali-demo/bin/homescreen-benchmark.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
                <label>Homescreen Benchmark</label>
        </ui-application>
+       <ui-application appid="tilt.example" exec="/usr/apps/com.samsung.dali-demo/bin/tilt.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
+               <label>Tilt sensor</label>
+       </ui-application>
 </manifest>
index f50152c..d8faaa2 100644 (file)
@@ -72,6 +72,7 @@ int main(int argc, char **argv)
   demo.AddExample(Example("image-view-pixel-area.example", DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA));
   demo.AddExample(Example("image-view-alpha-blending.example", DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING));
   demo.AddExample(Example("super-blur-bloom.example", DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM));
+  demo.AddExample(Example("tilt.example", DALI_DEMO_STR_TITLE_TILT_SENSOR));
 
   demo.SortAlphabetically( true );
 
diff --git a/examples/tilt/tilt-example.cpp b/examples/tilt/tilt-example.cpp
new file mode 100644 (file)
index 0000000..4883fbf
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <dali-toolkit/dali-toolkit.h>
+#include <dali/devel-api/adaptor-framework/tilt-sensor.h>
+
+using namespace Dali;
+using Dali::Toolkit::TextLabel;
+
+// This example shows how to use sensor using a simple TextLabel
+//
+class TiltController : public ConnectionTracker
+{
+public:
+  TiltController( Application& application )
+  : mApplication( application )
+  {
+    // Connect to the Application's Init signal
+    mApplication.InitSignal().Connect( this, &TiltController::Create );
+  }
+
+  ~TiltController()
+  {
+    // Nothing to do here;
+  }
+
+  // The Init signal is received once (only) during the Application lifetime
+  void Create( Application& application )
+  {
+    // Get a handle to the stage
+    Stage stage = Stage::GetCurrent();
+    stage.SetBackgroundColor( Color::BLUE);
+
+    mTextLabel = TextLabel::New( "Tilt Sensor Demo" );
+    mTextLabel.SetParentOrigin( ParentOrigin::CENTER );
+    mTextLabel.SetAnchorPoint( AnchorPoint::CENTER );
+    mTextLabel.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
+    mTextLabel.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
+    mTextLabel.SetProperty( TextLabel::Property::TEXT_COLOR, Color::WHITE );
+    mTextLabel.SetProperty( TextLabel::Property::POINT_SIZE, 15.0f );
+    mTextLabel.SetName( "tiltLabel" );
+    stage.Add( mTextLabel );
+
+    // Respond to a click anywhere on the stage
+    stage.GetRootLayer().TouchedSignal().Connect( this, &TiltController::OnTouch );
+
+    CreateSensor();
+  }
+
+  void CreateSensor()
+  {
+    mTiltSensor = TiltSensor::Get();
+    if ( mTiltSensor.Enable() )
+    {
+      // Get notifications when the device is tilted
+      mTiltSensor.TiltedSignal().Connect( this, &TiltController::OnTilted );
+    }
+  }
+
+  bool OnTouch( Actor actor, const TouchEvent& touch )
+  {
+    // quit the application
+    mApplication.Quit();
+    return true;
+  }
+
+  void OnTilted(const TiltSensor& sensor)
+  {
+    Quaternion pitchRot(Radian(Degree(sensor.GetPitch() * 90.0f)), Vector3(1, 0, 0));
+    Quaternion rollRot(Radian(Degree(sensor.GetRoll() * 90.0f)), Vector3(0, 1, 0));
+
+    mTextLabel.SetOrientation(Quaternion());
+    mTextLabel.RotateBy(rollRot);
+    mTextLabel.RotateBy(pitchRot);;
+  }
+
+private:
+  Application&  mApplication;
+  TiltSensor mTiltSensor;
+  TextLabel mTextLabel;
+};
+
+// Entry point for Linux & Tizen applications
+//
+int main( int argc, char **argv )
+{
+  Application application = Application::New( &argc, &argv );
+  TiltController test( application );
+
+  application.MainLoop();
+  return 0;
+}
index 633e07a..65ac91c 100644 (file)
@@ -104,6 +104,9 @@ extern "C"
 
 #endif
 
+#define DALI_DEMO_STR_TITLE_TILT_SENSOR "Tilt Sensor"
+
+
 #ifdef __cplusplus
 }
 #endif // __cplusplus