-#ifndef __DALI_INTEGRATION_PLATFORM_ABSTRACTION_H__
-#define __DALI_INTEGRATION_PLATFORM_ABSTRACTION_H__
+#ifndef DALI_INTEGRATION_PLATFORM_ABSTRACTION_H
+#define DALI_INTEGRATION_PLATFORM_ABSTRACTION_H
/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
#include <dali/integration-api/bitmap.h>
#include <dali/integration-api/resource-types.h>
-#include <dali/public-api/images/image-operations.h>
#include <dali/public-api/common/dali-vector.h>
+#include <dali/public-api/images/image-operations.h>
+#include <dali/public-api/signals/callback.h>
namespace Dali
{
-
namespace Integration
{
-typedef unsigned int ResourceId;
-typedef IntrusivePtr<Dali::RefObject> ResourcePointer;
+using ResourceId = uint32_t;
+using ResourcePointer = IntrusivePtr<Dali::RefObject>;
/**
* PlatformAbstraction is an abstract interface, used by Dali to access platform specific services.
class PlatformAbstraction
{
public:
-
// Resource Loading
/**
* flip the image, e.g., from portrait to landscape.
* @return dimensions that image will have if it is loaded with given parameters.
*/
- virtual ImageDimensions GetClosestImageSize( const std::string& filename,
- ImageDimensions size = ImageDimensions( 0, 0 ),
- FittingMode::Type fittingMode = FittingMode::SHRINK_TO_FIT,
- SamplingMode::Type samplingMode = SamplingMode::BOX,
- bool orientationCorrection = true) = 0;
+ virtual ImageDimensions GetClosestImageSize(const std::string& filename,
+ ImageDimensions size = ImageDimensions(0, 0),
+ FittingMode::Type fittingMode = FittingMode::SHRINK_TO_FIT,
+ SamplingMode::Type samplingMode = SamplingMode::BOX,
+ bool orientationCorrection = true) = 0;
/**
* @brief Determine the size of an image the resource loaders will provide when
* flip the image, e.g., from portrait to landscape.
* @return dimensions that image will have if it is loaded with given parameters.
*/
- virtual ImageDimensions GetClosestImageSize( ResourcePointer resourceBuffer,
- ImageDimensions size = ImageDimensions( 0, 0 ),
- FittingMode::Type fittingMode = FittingMode::SHRINK_TO_FIT,
- SamplingMode::Type samplingMode = SamplingMode::BOX,
- bool orientationCorrection = true) = 0;
+ virtual ImageDimensions GetClosestImageSize(ResourcePointer resourceBuffer,
+ ImageDimensions size = ImageDimensions(0, 0),
+ FittingMode::Type fittingMode = FittingMode::SHRINK_TO_FIT,
+ SamplingMode::Type samplingMode = SamplingMode::BOX,
+ bool orientationCorrection = true) = 0;
/**
* Request an image from the native filesystem. This is a synchronous request, i.e.
* @param[in] resourcePath The path to the resource
* @return A pointer to a ref-counted resource
*/
- virtual ResourcePointer LoadImageSynchronously( const BitmapResourceType& resourceType, const std::string& resourcePath ) = 0;
+ virtual ResourcePointer LoadImageSynchronously(const BitmapResourceType& resourceType, const std::string& resourcePath) = 0;
/**
* Decode a buffer of data synchronously.
*
* @return A pointer to the decoded buffer.
*/
- virtual BitmapPtr DecodeBuffer( const BitmapResourceType& resourceType, uint8_t * buffer, size_t bufferSize ) = 0;
+ virtual BitmapPtr DecodeBuffer(const BitmapResourceType& resourceType, uint8_t* buffer, size_t bufferSize) = 0;
/**
* Load a shader binary file into a buffer
* @param[out] buffer A buffer to receive the file.
* @result true if the file is loaded.
*/
- virtual bool LoadShaderBinaryFile( const std::string& filename, Dali::Vector< unsigned char >& buffer ) const = 0;
+ virtual bool LoadShaderBinaryFile(const std::string& filename, Dali::Vector<uint8_t>& buffer) const = 0;
/**
* Save a shader binary file to the resource file system.
* @param[in] numbytes Size of the buffer.
* @result true if the file is saved, else false.
*/
- virtual bool SaveShaderBinaryFile( const std::string& filename, const unsigned char * buffer, unsigned int numBytes ) const = 0;
+ virtual bool SaveShaderBinaryFile(const std::string& filename, const uint8_t* buffer, uint32_t numBytes) const = 0;
-protected:
+ /**
+ * Sets a callback to occur in the future
+ * @param[in] milliseconds number of milliseconds to wait until executing the callback
+ * @param[in] callback function to call when the timer expires
+ * @result a timer reference ID, to be used for cancelling the timer
+ */
+ virtual uint32_t StartTimer(uint32_t milliseconds, CallbackBase* callback) = 0;
/**
+ * Cancels a running timer
+ * @param[in] timerId the ID reference returned when the timer was started
+ */
+ virtual void CancelTimer(uint32_t timerId) = 0;
+
+protected:
+ /**
* Virtual destructor.
*/
- virtual ~PlatformAbstraction() {}
+ virtual ~PlatformAbstraction() = default;
}; // class PlatformAbstraction
} // namespace Dali
-#endif // __DALI_INTEGRATION_PLATFORM_ABSTRACTION_H__
+#endif // DALI_INTEGRATION_PLATFORM_ABSTRACTION_H