summaryrefslogtreecommitdiffstats
path: root/exynos4/hal/libfimg3x/FimgApi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'exynos4/hal/libfimg3x/FimgApi.cpp')
-rw-r--r--exynos4/hal/libfimg3x/FimgApi.cpp245
1 files changed, 245 insertions, 0 deletions
diff --git a/exynos4/hal/libfimg3x/FimgApi.cpp b/exynos4/hal/libfimg3x/FimgApi.cpp
new file mode 100644
index 0000000..b4c5890
--- /dev/null
+++ b/exynos4/hal/libfimg3x/FimgApi.cpp
@@ -0,0 +1,245 @@
+/*
+**
+** Copyright 2009 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
+///////////////////////////////////////////////////
+#define LOG_NDEBUG 0
+#define LOG_TAG "FimgApi"
+#include <utils/Log.h>
+
+#include "FimgApi.h"
+
+//---------------------------------------------------------------------------//
+// Global Function
+//---------------------------------------------------------------------------//
+#ifndef REAL_DEBUG
+ void VOID_FUNC(const char* format, ...)
+ {}
+#endif
+
+//---------------------------------------------------------------------------//
+// FimgApi
+//---------------------------------------------------------------------------//
+
+//---------------------------------------------------------------------------//
+// Method Function Implementation
+//---------------------------------------------------------------------------//
+
+FimgApi::FimgApi()
+{
+ m_flagCreate = false;
+}
+
+FimgApi::~FimgApi()
+{
+ if(m_flagCreate == true)
+ PRINT("%s::this is not Destroyed fail \n", __func__);
+}
+
+bool FimgApi::Create(void)
+{
+ bool ret = false;
+
+ if(t_Lock() == false) {
+ PRINT("%s::t_Lock() fail \n", __func__);
+ goto CREATE_DONE;
+ }
+
+ if(m_flagCreate == true) {
+ PRINT("%s::Already Created fail \n", __func__);
+ goto CREATE_DONE;
+ }
+
+ if(t_Create() == false) {
+ PRINT("%s::t_Create() fail \n", __func__);
+ goto CREATE_DONE;
+ }
+
+ m_flagCreate = true;
+
+ ret = true;
+
+CREATE_DONE :
+
+ t_UnLock();
+
+ return ret;
+}
+
+bool FimgApi::Destroy(void)
+{
+ bool ret = false;
+
+ if(t_Lock() == false) {
+ PRINT("%s::t_Lock() fail \n", __func__);
+ goto DESTROY_DONE;
+ }
+
+ if(m_flagCreate == false) {
+ PRINT("%s::Already Destroyed fail \n", __func__);
+ goto DESTROY_DONE;
+ }
+
+ if(t_Destroy() == false) {
+ PRINT("%s::t_Destroy() fail \n", __func__);
+ goto DESTROY_DONE;
+ }
+
+ m_flagCreate = false;
+
+ ret = true;
+
+DESTROY_DONE :
+
+ t_UnLock();
+
+ return ret;
+}
+
+bool FimgApi::Stretch(FimgRect * src, FimgRect * dst, FimgClip *clip, FimgFlag * flag)
+{
+ bool ret = false;
+
+ if(t_Lock() == false) {
+ PRINT("%s::t_Lock() fail \n", __func__);
+ goto STRETCH_DONE;
+ }
+
+ if(m_flagCreate == false) {
+ PRINT("%s::This is not Created fail \n", __func__);
+ goto STRETCH_DONE;
+ }
+
+ if(t_Stretch(src, dst, clip, flag) == false) {
+ goto STRETCH_DONE;
+ }
+
+ ret = true;
+
+STRETCH_DONE :
+
+ t_UnLock();
+
+ return ret;
+}
+
+bool FimgApi::Sync(void)
+{
+ bool ret = false;
+
+ if(m_flagCreate == false) {
+ PRINT("%s::This is not Created fail \n", __func__);
+ goto SYNC_DONE;
+ }
+
+ if(t_Sync() == false) {
+ goto SYNC_DONE;
+ }
+
+ ret = true;
+
+SYNC_DONE :
+
+ return ret;
+}
+
+bool FimgApi::t_Create(void)
+{
+ PRINT("%s::This is empty virtual function fail\n", __func__);
+ return false;
+}
+
+bool FimgApi::t_Destroy(void)
+{
+ PRINT("%s::This is empty virtual function fail\n", __func__);
+ return false;
+}
+
+bool FimgApi::t_Stretch(FimgRect * src, FimgRect * dst, FimgClip * clip, FimgFlag * flag)
+{
+ PRINT("%s::This is empty virtual function fail\n", __func__);
+ return false;
+}
+
+bool FimgApi::t_Sync(void)
+{
+ PRINT("%s::This is empty virtual function fail\n", __func__);
+ return false;
+}
+
+bool FimgApi::t_Lock(void)
+{
+ PRINT("%s::This is empty virtual function fail\n", __func__);
+ return false;
+}
+
+bool FimgApi::t_UnLock(void)
+{
+ PRINT("%s::This is empty virtual function fail\n", __func__);
+ return false;
+}
+
+
+//---------------------------------------------------------------------------//
+// extern function
+//---------------------------------------------------------------------------//
+extern "C" int stretchFimgApi(FimgRect * src, FimgRect * dst, FimgClip * clip, FimgFlag * flag)
+{
+ FimgApi * fimgApi = createFimgApi();
+
+ if(fimgApi == NULL) {
+ PRINT("%s::createFimgApi() fail \n", __func__);
+ return -1;
+ }
+
+ if(fimgApi->Stretch(src, dst, clip, flag) == false) {
+ if(fimgApi != NULL)
+ destroyFimgApi(fimgApi);
+
+ return -1;
+ }
+
+ if(fimgApi != NULL)
+ destroyFimgApi(fimgApi);
+
+ return 0;
+}
+
+extern "C" int SyncFimgApi(void)
+{
+ FimgApi * fimgApi = createFimgApi();
+ if(fimgApi == NULL) {
+ PRINT("%s::createFimgApi() fail \n", __func__);
+ return -1;
+ }
+
+ if(fimgApi->Sync() == false) {
+ if(fimgApi != NULL)
+ destroyFimgApi(fimgApi);
+
+ return -1;
+ }
+
+ if(fimgApi != NULL)
+ destroyFimgApi(fimgApi);
+
+ return 0;
+}
+