Replace tbm to screen-connector for dali
[platform/core/uifw/widget-viewer-dali.git] / internal / widget_view_manager / widget_view_manager_impl.cpp
index 5a30951..714bdb6 100644 (file)
@@ -1,18 +1,18 @@
 /*
+ * Samsung API
  * Copyright (c) 2016 Samsung Electronics Co., Ltd.
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (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
+ * http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
- *
  */
 
 // CLASS HEADER
@@ -22,6 +22,8 @@
 #include <internal/widget_view/widget_view_impl.h>
 
 // EXTERNAL INCLUDES
+#include <dali/public-api/object/type-registry.h>
+#include <dali/public-api/object/type-registry-helper.h>
 #include <dali/integration-api/debug.h>
 #include <system_info.h>
 #include <cynara-client.h>
@@ -30,6 +32,7 @@
 #include <unistd.h>
 #include <widget_errno.h>
 #include <widget_instance.h>
+#include <screen_connector_watcher.h>
 
 namespace Dali
 {
@@ -49,6 +52,13 @@ namespace
 Integration::Log::Filter* gWidgetViewManagerLogging  = Integration::Log::Filter::New( Debug::Verbose, false, "LOG_WIDGET_VIEW_MANAGER" );
 #endif
 
+BaseHandle Create()
+{
+  return Dali::BaseHandle();
+}
+
+DALI_TYPE_REGISTRATION_BEGIN( Dali::WidgetView::WidgetViewManager, Dali::BaseHandle, Create );
+
 static bool IsWidgetFeatureEnabled()
 {
   static bool feature = false;
@@ -137,6 +147,7 @@ WidgetViewManager::WidgetViewManager()
 
 WidgetViewManager::~WidgetViewManager()
 {
+  screen_connector_watcher_fini();
   widget_instance_unlisten_event( WidgetViewManager::WidgetEventCallback );
   widget_instance_fini();
 }
@@ -155,11 +166,11 @@ int WidgetViewManager::Initialize( Application application, const std::string& n
     return WIDGET_ERROR_PERMISSION_DENIED;
   }
 
-  // create compositor
-  mCompositor = Pepper::Compositor::New( application, name );
-
-  mCompositor.ObjectViewAddedSignal().Connect( this, &WidgetViewManager::OnObjectViewAdded );
-  mCompositor.ObjectViewDeletedSignal().Connect( this, &WidgetViewManager::OnObjectViewDeleted );
+  // Binds tizen remote surface manager & connects callback
+  if( screen_connector_watcher_init() < 0 )
+  {
+    return WIDGET_ERROR_FAULT;
+  }
 
   // init widget service
   widget_instance_init( name.c_str() );
@@ -167,17 +178,17 @@ int WidgetViewManager::Initialize( Application application, const std::string& n
 
   DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::Initialize: success.\n" );
 
-  setenv("WAYLAND_DISPLAY", mCompositor.GetName().c_str(), 1);
-
   return WIDGET_ERROR_NONE;
 }
 
-Dali::WidgetView::WidgetView WidgetViewManager::AddWidget( const std::string& widgetId, const std::string& contentInfo, int width, int height, double updatePeriod )
+Dali::WidgetView::WidgetView WidgetViewManager::AddWidget( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod )
 {
   // Add a new widget view
   Dali::WidgetView::WidgetView widgetView = Dali::WidgetView::WidgetView::New( widgetId, contentInfo, width, height, updatePeriod );
 
-  std::string instanceId = widgetView.GetInstanceId();
+  std::string instanceId;
+  Property::Value value = widgetView.GetProperty( Dali::WidgetView::WidgetView::Property::INSTANCE_ID );
+  value.Get( instanceId );
 
   if( !instanceId.empty() )
   {
@@ -190,45 +201,6 @@ Dali::WidgetView::WidgetView WidgetViewManager::AddWidget( const std::string& wi
   return widgetView;
 }
 
-void WidgetViewManager::OnObjectViewAdded( Pepper::Compositor compositor, Pepper::ObjectView objectView )
-{
-  std::string appId = objectView.GetAppId();  // widget instance id
-
-  if( mWidgetViewContainer.size() > 0)
-  {
-    WidgetViewIter iter = mWidgetViewContainer.find( appId );
-    if( iter != mWidgetViewContainer.end() )
-    {
-      Dali::WidgetView::WidgetView widgetView = iter->second;
-
-      Dali::WidgetView::GetImplementation( widgetView ).AddObjectView( objectView );
-    }
-  }
-
-  DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::OnObjectViewAdded: ObjectView is added!\n" );
-}
-
-void WidgetViewManager::OnObjectViewDeleted( Pepper::Compositor compositor, Pepper::ObjectView objectView )
-{
-  std::string appId = objectView.GetAppId();  // widget instance id
-
-  // Remove from map
-  if( mWidgetViewContainer.size() > 0)
-  {
-    WidgetViewIter iter = mWidgetViewContainer.find( appId );
-    if( iter != mWidgetViewContainer.end() )
-    {
-      Dali::WidgetView::WidgetView widgetView = iter->second;
-
-      Dali::WidgetView::GetImplementation( widgetView ).RemoveObjectView();
-
-      mWidgetViewContainer.erase( iter );
-    }
-  }
-
-  DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::OnObjectViewDeleted: ObjectView is deleted!\n" );
-}
-
 int WidgetViewManager::WidgetEventCallback( const char* widgetId, const char* instanceId, int event, void* data )
 {
   WidgetViewManager* widgetViewManager = static_cast< WidgetViewManager* >( data );