#ifndef _mtp_H_
#define _mtp_H_

#include <qstring.h>
#include <qcstring.h>

#include <kurl.h>
#include <kio/global.h>
#include <kio/slavebase.h>

#include <libmtp.h>

class QCString;

class kio_mtpProtocol : public KIO::SlaveBase
{
public:
    kio_mtpProtocol(const QCString &pool_socket, const QCString &app_socket);
    virtual ~kio_mtpProtocol();
    virtual void stat(const KURL& url);
    virtual void statRoot();
    virtual void listDir(const KURL& url);
    virtual void listRoot();
//    virtual void mimetype(const KURL& url);
//    virtual void get(const KURL& url);

private:
    void init_device_maps(LIBMTP_mtpdevice_t* device);
    void update_foldermap(LIBMTP_folder_t* folders);
    void update_filemap(LIBMTP_file_t* files);
    QString getType(LIBMTP_file_t* file);
};

#endif
