2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
18 #include <CommonsJavaScript/JSCallbackManager.h>
19 #include <JSTizenException.h>
20 #include <JSTizenExceptionFactory.h>
21 #include "ContentController.h"
22 #include "ContentConverter.h"
23 #include "ContentAsyncCallbackManager.h"
29 MediacontentManagerController& MediacontentManagerController::getInstance()
31 static MediacontentManagerController instance;
35 MediacontentManagerController::MediacontentManagerController():
36 EventBrowseFolderAnswerReceiver(ThreadEnum::NULL_THREAD),
37 EventUpdateMediaItemsAnswerReceiver(ThreadEnum::NULL_THREAD),
38 EventFindFolderAnswerReceiver(ThreadEnum::NULL_THREAD)
40 LoggerD("create a MediacontentManagerController");
43 MediacontentManagerController::~MediacontentManagerController()
50 void MediacontentManagerController::OnAnswerReceived(const IEventUpdateMediaItemsPtr &event)
53 LoggerD("MediacontentManagerController::IEventUpdateMediaItemsPtr:entered");
55 JSCallbackManagerPtr cbm = DPL::StaticPointerCast<JSCallbackManager>(event->getPrivateData());
58 LoggerE("no callback manager");
63 MediaContentAsyncCallbackManagerSingleton::Instance().unregisterCallbackManager(cbm);
64 if (event->getResult())
70 JSValueRef errorObject = DeviceAPI::Common::JSTizenExceptionFactory::makeErrorObject(
71 cbm->getContext(), DeviceAPI::Common::JSTizenException::UNKNOWN_ERROR);
72 cbm->callOnError(errorObject);
78 LoggerE("error during processing answer");
83 void MediacontentManagerController::OnAnswerReceived(const IEventBrowseFolderPtr &event)
86 LoggerD("MediacontentManagerController::OnAnswerReceived:entered");
88 JSCallbackManagerPtr cbm = DPL::StaticPointerCast<JSCallbackManager>(event->getPrivateData());
91 LoggerE("no callback manager");
96 MediaContentAsyncCallbackManagerSingleton::Instance().unregisterCallbackManager(cbm);
97 if (event->getResult())
99 MediaConverterFactory::ConverterType converter = MediaConverterFactory::getConverter(cbm->getContext());
100 const std::vector<MediacontentMediaPtr> &results = event->getMedia();
101 JSValueRef result = converter->toJSValueRef(results);
102 cbm->callOnSuccess(result);
106 JSValueRef errorObject = DeviceAPI::Common::JSTizenExceptionFactory::makeErrorObject(
107 cbm->getContext(), DeviceAPI::Common::JSTizenException::UNKNOWN_ERROR);
108 cbm->callOnError(errorObject);
114 LoggerE("error during processing answer");
120 void MediacontentManagerController::OnAnswerReceived(const IEventFindFolderPtr &event)
123 LoggerD("MediacontentManagerController::OnAnswerReceived:entered");
125 JSCallbackManagerPtr cbm = DPL::StaticPointerCast<JSCallbackManager>(event->getPrivateData());
128 LoggerE("no callback manager");
133 MediaContentAsyncCallbackManagerSingleton::Instance().unregisterCallbackManager(cbm);
134 if (event->getResult())
136 MediaConverterFactory::ConverterType converter = MediaConverterFactory::getConverter(cbm->getContext());
137 const std::vector<MediacontentFolderPtr> &results = event->getFolder();
138 JSValueRef result = converter->toJSValueRef(results);
139 cbm->callOnSuccess(result);
143 JSValueRef errorObject = DeviceAPI::Common::JSTizenExceptionFactory::makeErrorObject(
144 cbm->getContext(), DeviceAPI::Common::JSTizenException::UNKNOWN_ERROR);
145 cbm->callOnError(errorObject);
151 LoggerE("error during processing answer");