1 #ifndef __DALI_TEST_PLATFORM_ABSTRACTION_H__
2 #define __DALI_TEST_PLATFORM_ABSTRACTION_H__
5 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
24 #include <dali/public-api/images/image-operations.h>
27 #include <dali/public-api/common/set-wrapper.h>
28 #include <dali/integration-api/platform-abstraction.h>
30 #include "test-trace-call-stack.h"
37 * Concrete implementation of the platform abstraction class.
39 class DALI_IMPORT_API TestPlatformAbstraction : public Dali::Integration::PlatformAbstraction
47 Integration::ResourceId loadedId;
48 Integration::ResourceTypeId loadedType;
49 Integration::ResourcePointer loadedResource;
52 Integration::ResourceId loadFailedId;
53 Integration::ResourceFailure loadFailure;
56 Integration::ResourceId savedId;
57 Integration::ResourceTypeId savedType;
60 Integration::ResourceId saveFailedId;
61 Integration::ResourceFailure saveFailure;
66 inline LoadFileResult()
73 std::vector< unsigned char> buffer;
79 TestPlatformAbstraction();
84 virtual ~TestPlatformAbstraction();
87 * @copydoc PlatformAbstraction::GetTimeMicroseconds()
89 virtual void GetTimeMicroseconds(unsigned int &seconds, unsigned int µSeconds);
92 * @copydoc PlatformAbstraction::Suspend()
94 virtual void Suspend();
97 * @copydoc PlatformAbstraction::Resume()
99 virtual void Resume();
102 * @copydoc PlatformAbstraction::GetClosestImageSize()
104 virtual ImageDimensions GetClosestImageSize( const std::string& filename,
105 ImageDimensions size,
106 FittingMode::Type scalingMode,
107 SamplingMode::Type samplingMode,
108 bool orientationCorrection );
111 * @copydoc PlatformAbstraction::GetClosestImageSize()
113 virtual ImageDimensions GetClosestImageSize( Integration::ResourcePointer resourceBuffer,
114 ImageDimensions size,
115 FittingMode::Type scalingMode,
116 SamplingMode::Type samplingMode,
117 bool orientationCorrection );
120 * @copydoc PlatformAbstraction::LoadResource()
122 virtual void LoadResource(const Integration::ResourceRequest& request);
125 * @copydoc PlatformAbstraction::LoadResourceSynchronously()
127 virtual Integration::ResourcePointer LoadResourceSynchronously( const Integration::ResourceType& resourceType, const std::string& resourcePath );
130 * @copydoc PlatformAbstraction::SaveResource()
132 virtual void SaveResource(const Integration::ResourceRequest& request);
135 * @copydoc PlatformAbstraction::CancelLoad()
137 virtual void CancelLoad(Integration::ResourceId id, Integration::ResourceTypeId typeId);
140 * @copydoc PlatformAbstraction::GetResources()
142 virtual void GetResources(Integration::ResourceCache& cache);
145 * @copydoc PlatformAbstraction::IsLoading()
147 virtual bool IsLoading();
150 * @copydoc PlatformAbstraction::GetDefaultFontDescription()
152 virtual void GetDefaultFontDescription( std::string& family, std::string& style ) const;
155 * @copydoc PlatformAbstraction::GetDefaultFontSize()
157 virtual int GetDefaultFontSize() const;
160 * @copydoc PlatformAbstraction::SetDpi()
162 virtual void SetDpi (unsigned int dpiHorizontal, unsigned int dpiVertical);
164 * @copydoc PlatformAbstraction::LoadFile()
166 virtual bool LoadFile( const std::string& filename, std::vector< unsigned char >& buffer ) const;
169 * @copydoc PlatformAbstraction::LoadShaderBinFile()
171 virtual bool LoadShaderBinFile( const std::string& filename, std::vector< unsigned char >& buffer ) const;
174 * @copydoc PlatformAbstraction::SaveFile()
176 virtual bool SaveFile(const std::string& filename, std::vector< unsigned char >& buffer) const;
178 virtual void JoinLoaderThreads();
180 virtual Integration::DynamicsFactory* GetDynamicsFactory();
182 public: // TEST FUNCTIONS
184 // Enumeration of Platform Abstraction methods
187 GetTimeMicrosecondsFunc,
194 LoadShaderBinFileFunc,
199 JoinLoaderThreadsFunc,
200 GetDynamicsFactoryFunc,
203 /** Call this every test */
206 inline void EnableTrace(bool enable) { mTrace.Enable(enable); }
207 inline void ResetTrace() { mTrace.Reset(); }
208 inline TraceCallStack& GetTrace() { return mTrace; }
210 bool WasCalled(TestFuncEnum func);
212 void SetGetTimeMicrosecondsResult(size_t sec, size_t usec);
214 void IncrementGetTimeResult(size_t milliseconds);
216 void SetIsLoadingResult(bool result);
218 void SetGetDefaultFontFamilyResult(std::string result);
220 void SetGetDefaultFontSizeResult(float result);
222 void SetGetFontPathResult(std::string& result);
224 void ClearReadyResources();
226 void SetResourceLoaded(Integration::ResourceId loadedId,
227 Integration::ResourceTypeId loadedType,
228 Integration::ResourcePointer loadedResource);
230 void SetResourceLoadFailed(Integration::ResourceId id,
231 Integration::ResourceFailure failure);
233 void SetResourceSaved(Integration::ResourceId savedId,
234 Integration::ResourceTypeId savedType);
236 void SetResourceSaveFailed(Integration::ResourceId id,
237 Integration::ResourceFailure failure);
239 Integration::ResourceRequest* GetRequest();
241 void DiscardRequest();
243 void SetClosestImageSize(const Vector2& size);
245 void SetLoadFileResult( bool result, std::vector< unsigned char >& buffer );
247 void SetSaveFileResult( bool result );
250 mutable TraceCallStack mTrace;
252 size_t mMicroSeconds;
253 bool mIsLoadingResult;
254 Resources mResources;
255 Integration::ResourceRequest* mRequest;
257 Vector2 mClosestSize;
259 LoadFileResult mLoadFileResult;
260 bool mSaveFileResult;
265 #endif /* __DALI_TET_PLATFORM_ABSTRACTION_H__ */