-#ifndef __DALI_TEST_PLATFORM_ABSTRACTION_H__
-#define __DALI_TEST_PLATFORM_ABSTRACTION_H__
+#ifndef DALI_TEST_PLATFORM_ABSTRACTION_H
+#define DALI_TEST_PLATFORM_ABSTRACTION_H
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 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.
// EXTERNAL INCLUDES
#include <stdint.h>
#include <cstring>
+#include <string>
+#include <vector>
// INTERNAL INCLUDES
-#include <dali/public-api/common/set-wrapper.h>
#include <dali/integration-api/platform-abstraction.h>
+#include <dali/public-api/math/vector2.h>
#include "test-trace-call-stack.h"
-
namespace Dali
{
/**
* Concrete implementation of the platform abstraction class.
*/
-class DALI_IMPORT_API TestPlatformAbstraction : public Dali::Integration::PlatformAbstraction
+class DALI_CORE_API TestPlatformAbstraction : public Dali::Integration::PlatformAbstraction
{
public:
- struct Resources
- {
- bool loaded;
- Integration::ResourceId loadedId;
- Integration::ResourceTypeId loadedType;
- Integration::ResourcePointer loadedResource;
-
- bool loadFailed;
- Integration::ResourceId loadFailedId;
- Integration::ResourceFailure loadFailure;
-
- bool saved;
- Integration::ResourceId savedId;
- Integration::ResourceTypeId savedType;
-
- bool saveFailed;
- Integration::ResourceId saveFailedId;
- Integration::ResourceFailure saveFailure;
- };
-
- struct LoadFileResult
- {
- inline LoadFileResult()
- : loadResult(false)
- {
-
- }
-
- bool loadResult;
- std::vector< unsigned char> buffer;
- };
-
/**
* Constructor
*/
virtual ~TestPlatformAbstraction();
/**
- * @copydoc PlatformAbstraction::GetTimeMicroseconds()
+ * @copydoc PlatformAbstraction::GetClosestImageSize()
*/
- virtual void GetTimeMicroseconds(unsigned int &seconds, unsigned int µSeconds);
+ virtual ImageDimensions GetClosestImageSize( const std::string& filename,
+ ImageDimensions size,
+ FittingMode::Type fittingMode,
+ SamplingMode::Type samplingMode,
+ bool orientationCorrection );
/**
- * @copydoc PlatformAbstraction::Suspend()
+ * @copydoc PlatformAbstraction::GetClosestImageSize()
*/
- virtual void Suspend();
-
- /**
- * @copydoc PlatformAbstraction::Resume()
- */
- virtual void Resume();
-
- virtual void GetClosestImageSize( const std::string& filename,
- const ImageAttributes& attributes,
- Vector2& closestSize);
-
- virtual void GetClosestImageSize( Integration::ResourcePointer resourceBuffer,
- const ImageAttributes& attributes,
- Vector2& closestSize);
-
- /**
- * @copydoc PlatformAbstraction::LoadResource()
- */
- virtual void LoadResource(const Integration::ResourceRequest& request);
+ virtual ImageDimensions GetClosestImageSize( Integration::ResourcePointer resourceBuffer,
+ ImageDimensions size,
+ FittingMode::Type fittingMode,
+ SamplingMode::Type samplingMode,
+ bool orientationCorrection );
/**
* @copydoc PlatformAbstraction::LoadResourceSynchronously()
*/
- virtual Integration::ResourcePointer LoadResourceSynchronously( const Integration::ResourceType& resourceType, const std::string& resourcePath );
+ virtual Integration::ResourcePointer LoadImageSynchronously( const Integration::BitmapResourceType& resourceType, const std::string& resourcePath );
/**
- * @copydoc PlatformAbstraction::SaveResource()
+ * @copydoc PlatformAbstraction::DecodeBuffer()
*/
- virtual void SaveResource(const Integration::ResourceRequest& request);
+ virtual Integration::BitmapPtr DecodeBuffer( const Dali::Integration::BitmapResourceType& resourceType, uint8_t * buffer, size_t size );
/**
- * @copydoc PlatformAbstraction::CancelLoad()
+ * @copydoc PlatformAbstraction::LoadShaderBinaryFile()
*/
- virtual void CancelLoad(Integration::ResourceId id, Integration::ResourceTypeId typeId);
+ virtual bool LoadShaderBinaryFile( const std::string& filename, Dali::Vector< unsigned char >& buffer ) const;
/**
- * @copydoc PlatformAbstraction::GetResources()
+ * @copydoc PlatformAbstraction::SaveShaderBinaryFile()
*/
- virtual void GetResources(Integration::ResourceCache& cache);
+ virtual bool SaveShaderBinaryFile( const std::string& filename, const unsigned char * buffer, unsigned int numBytes ) const { return true; }
/**
- * @copydoc PlatformAbstraction::IsLoading()
+ * @copydoc PlatformAbstraction::StartTimer()
*/
- virtual bool IsLoading();
+ virtual uint32_t StartTimer( uint32_t milliseconds, CallbackBase* callback );
- /**
- * @copydoc PlatformAbstraction::SetDpi()
- */
- virtual void SetDpi (unsigned int dpiHorizontal, unsigned int dpiVertical);
-
- /**
- * @copydoc PlatformAbstraction::LoadFile()
+ /*
+ * @copydoc PlatformAbstraction::CancelTimer()
*/
- virtual bool LoadFile( const std::string& filename, std::vector< unsigned char >& buffer ) const;
-
- /**
- * @copydoc PlatformAbstraction::SaveFile()
- */
- virtual bool SaveFile(const std::string& filename, std::vector< unsigned char >& buffer) const;
-
- virtual void JoinLoaderThreads();
-
- virtual Integration::DynamicsFactory* GetDynamicsFactory();
+ virtual void CancelTimer ( uint32_t timerId );
public: // TEST FUNCTIONS
// Enumeration of Platform Abstraction methods
typedef enum
{
- GetTimeMicrosecondsFunc,
- SuspendFunc,
- ResumeFunc,
- LoadResourceFunc,
- SaveResourceFunc,
- SaveFileFunc,
- LoadFileFunc,
- CancelLoadFunc,
- GetResourcesFunc,
- IsLoadingFunc,
- SetDpiFunc,
- JoinLoaderThreadsFunc,
- GetDynamicsFactoryFunc,
+ LoadResourceSynchronouslyFunc,
+ LoadShaderBinaryFileFunc,
+ SaveShaderBinaryFileFunc
} TestFuncEnum;
/** Call this every test */
inline void ResetTrace() { mTrace.Reset(); }
inline TraceCallStack& GetTrace() { return mTrace; }
+ /**
+ * @brief Checks if a platform function was called
+ * @param[in] func The function to check
+ * @return true if the function was called
+ */
bool WasCalled(TestFuncEnum func);
- void SetGetTimeMicrosecondsResult(size_t sec, size_t usec);
-
- void IncrementGetTimeResult(size_t milliseconds);
-
+ /**
+ * @brief Sets the result to return when IsLoading is called by Core.
+ * @param[in] result The result to set.
+ */
void SetIsLoadingResult(bool result);
+ /**
+ * @brief Clears all resource queues
+ */
void ClearReadyResources();
- void SetResourceLoaded(Integration::ResourceId loadedId,
- Integration::ResourceTypeId loadedType,
- Integration::ResourcePointer loadedResource);
-
- void SetResourceLoadFailed(Integration::ResourceId id,
- Integration::ResourceFailure failure);
+ /**
+ * @brief Sets the value returned by GetClosestImageSize.
+ * @param[in] size The size that should be returned.
+ */
+ void SetClosestImageSize( const Vector2& size );
- void SetResourceSaved(Integration::ResourceId savedId,
- Integration::ResourceTypeId savedType);
+ /**
+ * @brief Sets the result return by LoadFile.
+ * @param[in] result The value that LoadFile should return.
+ * @param[in] buffer The buffer of the loaded file.
+ */
+ void SetLoadFileResult( bool result, Dali::Vector< unsigned char >& buffer );
- void SetResourceSaveFailed(Integration::ResourceId id,
- Integration::ResourceFailure failure);
+ /**
+ * @brief Sets the SaveFile result
+ * @param[in] result The value that SaveFile should return
+ */
+ void SetSaveFileResult( bool result );
- Integration::ResourceRequest* GetRequest();
+ /**
+ * @brief Sets the resource loaded by LoadResourceSynchronously
+ * @param[in] resource The loaded resource
+ */
+ void SetSynchronouslyLoadedResource( Integration::ResourcePointer resource );
- void DiscardRequest();
+ /**
+ * @brief Sets the bitmap returned by DecodeBuffer()
+ * @param[in] bitmap The decoded bitmap
+ */
+ void SetDecodedBitmap( Integration::BitmapPtr bitmap );
- void SetClosestImageSize(const Vector2& size);
+ /**
+ * @brief Triggers the previously stored callback function
+ */
+ void TriggerTimer();
- void SetLoadFileResult( bool result, std::vector< unsigned char >& buffer );
+private:
- void SetSaveFileResult( bool result );
+ TestPlatformAbstraction( const TestPlatformAbstraction& ); ///< Undefined
+ TestPlatformAbstraction& operator=( const TestPlatformAbstraction& ); ///< Undefined
private:
+
+ struct LoadFileResult
+ {
+ inline LoadFileResult()
+ : loadResult(false)
+ {
+
+ }
+
+ bool loadResult;
+ Dali::Vector< unsigned char> buffer;
+ };
+
mutable TraceCallStack mTrace;
- size_t mSeconds;
- size_t mMicroSeconds;
bool mIsLoadingResult;
- Resources mResources;
- Integration::ResourceRequest* mRequest;
- Vector2 mSize;
- Vector2 mClosestSize;
+ ImageDimensions mClosestSize;
LoadFileResult mLoadFileResult;
bool mSaveFileResult;
+
+ Integration::ResourcePointer mSynchronouslyLoadedResource;
+ Integration::BitmapPtr mDecodedBitmap;
+
+ uint32_t mTimerId;
+ CallbackBase* mCallbackFunction;
};
} // Dali
-#endif /* __DALI_TET_PLATFORM_ABSTRACTION_H__ */
+#endif /* DALI_TEST_PLATFORM_ABSTRACTION_H */