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"
29 namespace Mediacontent {
32 MediacontentManagerController& MediacontentManagerController::getInstance()
34 static MediacontentManagerController instance;
38 MediacontentManagerController::MediacontentManagerController():
39 EventFindMediaAnswerReceiver(ThreadEnum::NULL_THREAD),
40 EventBrowseFolderAnswerReceiver(ThreadEnum::NULL_THREAD),
41 EventUpdateMediaItemsAnswerReceiver(ThreadEnum::NULL_THREAD),
42 EventFindFolderAnswerReceiver(ThreadEnum::NULL_THREAD)
44 LogDebug("create a MediacontentManagerController");
47 MediacontentManagerController::~MediacontentManagerController()
54 void MediacontentManagerController::OnAnswerReceived(const IEventFindMediaPtr &event)
57 LogDebug("MediacontentManagerController::OnAnswerReceived:entered");
59 JSCallbackManagerPtr cbm = DPL::StaticPointerCast<JSCallbackManager>(event->getPrivateData());
62 LogError("no callback manager");
67 if (event->getResult())
69 MediaConverterFactory::ConverterType converter = MediaConverterFactory::getConverter(cbm->getContext());
70 const std::vector<MediacontentMediaPtr> &results = event->getMedia();
71 JSValueRef result = converter->toJSValueRef(results);
72 cbm->callOnSuccess(result);
76 JSValueRef errorObject = TizenApis::Commons::JSTizenExceptionFactory::makeErrorObject(
77 cbm->getContext(), TizenApis::Commons::JSTizenException::UNKNOWN_ERROR);
78 cbm->callOnError(errorObject);
84 LogError("error during processing answer");
88 void MediacontentManagerController::OnAnswerReceived(const IEventUpdateMediaItemsPtr &event)
91 LogDebug("MediacontentManagerController::IEventUpdateMediaItemsPtr:entered");
93 JSCallbackManagerPtr cbm = DPL::StaticPointerCast<JSCallbackManager>(event->getPrivateData());
96 LogError("no callback manager");
101 if (event->getResult())
103 cbm->callOnSuccess();
107 JSValueRef errorObject = TizenApis::Commons::JSTizenExceptionFactory::makeErrorObject(
108 cbm->getContext(), TizenApis::Commons::JSTizenException::UNKNOWN_ERROR);
109 cbm->callOnError(errorObject);
115 LogError("error during processing answer");
120 void MediacontentManagerController::OnAnswerReceived(const IEventBrowseFolderPtr &event)
123 LogDebug("MediacontentManagerController::OnAnswerReceived:entered");
125 JSCallbackManagerPtr cbm = DPL::StaticPointerCast<JSCallbackManager>(event->getPrivateData());
128 LogError("no callback manager");
133 if (event->getResult())
135 MediaConverterFactory::ConverterType converter = MediaConverterFactory::getConverter(cbm->getContext());
136 const std::vector<MediacontentMediaPtr> &results = event->getMedia();
137 JSValueRef result = converter->toJSValueRef(results);
138 cbm->callOnSuccess(result);
142 JSValueRef errorObject = TizenApis::Commons::JSTizenExceptionFactory::makeErrorObject(
143 cbm->getContext(), TizenApis::Commons::JSTizenException::UNKNOWN_ERROR);
144 cbm->callOnError(errorObject);
150 LogError("error during processing answer");
156 void MediacontentManagerController::OnAnswerReceived(const IEventFindFolderPtr &event)
159 LogDebug("MediacontentManagerController::OnAnswerReceived:entered");
161 JSCallbackManagerPtr cbm = DPL::StaticPointerCast<JSCallbackManager>(event->getPrivateData());
164 LogError("no callback manager");
169 if (event->getResult())
171 MediaConverterFactory::ConverterType converter = MediaConverterFactory::getConverter(cbm->getContext());
172 const std::vector<MediacontentFolderPtr> &results = event->getFolder();
173 JSValueRef result = converter->toJSValueRef(results);
174 cbm->callOnSuccess(result);
178 JSValueRef errorObject = TizenApis::Commons::JSTizenExceptionFactory::makeErrorObject(
179 cbm->getContext(), TizenApis::Commons::JSTizenException::UNKNOWN_ERROR);
180 cbm->callOnError(errorObject);
186 LogError("error during processing answer");