/**
 * @file GfxProcCG.h
 * @brief Graphics layer using Cocoa Touch
 *
 * (c) 2013-2015 by Mega Limited, Auckland, New Zealand
 *
 * This file is part of the MEGA SDK - Client Access Engine.
 *
 * Applications using the MEGA API must present a valid application key
 * and comply with the the rules set forth in the Terms of Service.
 *
 * The MEGA SDK is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * @copyright Simplified (2-clause) BSD License.
 *
 * You should have received a copy of the license along with this
 * program.
 */

#ifdef USE_IOS
#ifndef GFX_CLASS
#define GFX_CLASS GfxProcCG

#include "mega.h"
#include <ImageIO/CGImageSource.h>

// bitmap graphics processor
class MEGA_API GfxProcCG : public mega::GfxProc
{
    CGImageSourceRef imageSource;
    CFDictionaryRef imageParams;
    CFMutableDictionaryRef thumbnailParams;
    CGImageRef createThumbnailWithMaxSize(int size);
    int maxSizeForThumbnail(const int rw, const int rh);
private: // mega::GfxProc implementations
    const char* supportedformats();
    bool readbitmap(mega::FileAccess*, mega::string*, int);
    bool resizebitmap(int, int, mega::string*);
    void freebitmap();
public:
    GfxProcCG();
    ~GfxProcCG();
};

void ios_statsid(std::string *statsid);
void ios_appbasepath(std::string *appbasepath);

#endif
#endif
