2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include <dpl/log/log.h>
20 #include <CommonsJavaScript/JSCallbackManager.h>
21 #include <Tizen/Common/JSTizenException.h>
22 #include <Tizen/Common/JSTizenExceptionFactory.h>
23 #include "MediacontentController.h"
24 #include "MediaConverter.h"
25 #include "JSMediacontent.h"
26 #include "MediaContentAsyncCallbackManager.h"
31 namespace Mediacontent {
33 MediacontentManagerController& MediacontentManagerController::getInstance()
35 static MediacontentManagerController instance;
39 MediacontentManagerController::MediacontentManagerController():
40 //EventFindMediaAnswerReceiver(ThreadEnum::NULL_THREAD),
41 EventBrowseFolderAnswerReceiver(ThreadEnum::NULL_THREAD),
42 EventUpdateMediaItemsAnswerReceiver(ThreadEnum::NULL_THREAD),
43 EventFindFolderAnswerReceiver(ThreadEnum::NULL_THREAD)
45 LogDebug("create a MediacontentManagerController");
48 MediacontentManagerController::~MediacontentManagerController()
55 void MediacontentManagerController::OnAnswerReceived(const IEventUpdateMediaItemsPtr &event)
58 LogDebug("MediacontentManagerController::IEventUpdateMediaItemsPtr:entered");
60 JSCallbackManagerPtr cbm = DPL::StaticPointerCast<JSCallbackManager>(event->getPrivateData());
63 LogError("no callback manager");
68 MediaContentAsyncCallbackManagerSingleton::Instance().unregisterCallbackManager(cbm);
69 if (event->getResult())
75 JSValueRef errorObject = TizenApis::Commons::JSTizenExceptionFactory::makeErrorObject(
76 cbm->getContext(), TizenApis::Commons::JSTizenException::UNKNOWN_ERROR);
77 cbm->callOnError(errorObject);
83 LogError("error during processing answer");
88 void MediacontentManagerController::OnAnswerReceived(const IEventBrowseFolderPtr &event)
91 LogDebug("MediacontentManagerController::OnAnswerReceived:entered");
93 JSCallbackManagerPtr cbm = DPL::StaticPointerCast<JSCallbackManager>(event->getPrivateData());
96 LogError("no callback manager");
101 MediaContentAsyncCallbackManagerSingleton::Instance().unregisterCallbackManager(cbm);
102 if (event->getResult())
104 MediaConverterFactory::ConverterType converter = MediaConverterFactory::getConverter(cbm->getContext());
105 const std::vector<MediacontentMediaPtr> &results = event->getMedia();
106 JSValueRef result = converter->toJSValueRef(results);
107 cbm->callOnSuccess(result);
111 JSValueRef errorObject = TizenApis::Commons::JSTizenExceptionFactory::makeErrorObject(
112 cbm->getContext(), TizenApis::Commons::JSTizenException::UNKNOWN_ERROR);
113 cbm->callOnError(errorObject);
119 LogError("error during processing answer");
125 void MediacontentManagerController::OnAnswerReceived(const IEventFindFolderPtr &event)
128 LogDebug("MediacontentManagerController::OnAnswerReceived:entered");
130 JSCallbackManagerPtr cbm = DPL::StaticPointerCast<JSCallbackManager>(event->getPrivateData());
133 LogError("no callback manager");
138 MediaContentAsyncCallbackManagerSingleton::Instance().unregisterCallbackManager(cbm);
139 if (event->getResult())
141 MediaConverterFactory::ConverterType converter = MediaConverterFactory::getConverter(cbm->getContext());
142 const std::vector<MediacontentFolderPtr> &results = event->getFolder();
143 JSValueRef result = converter->toJSValueRef(results);
144 cbm->callOnSuccess(result);
148 JSValueRef errorObject = TizenApis::Commons::JSTizenExceptionFactory::makeErrorObject(
149 cbm->getContext(), TizenApis::Commons::JSTizenException::UNKNOWN_ERROR);
150 cbm->callOnError(errorObject);
156 LogError("error during processing answer");