/*
 * Copyright 2010  Jonas Emanuel Müller <zanoi@zanoi.net>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of 
 * the License, or (at your option) any later version.

 * This program 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.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef LOADER_H
#define LOADER_H

#include "config.h" //krazy:exclude=includes

#include "channel.h"

#include <QObject>

namespace Videocatcher {

enum ErrorCode {
    Loader_Success,
    Loader_File_Not_Found,
    Loader_Connection_Problem,
    Loader_Aborted,
    Loader_Parse_Error,
    Loader_Other_Error
};

class Loader : public QObject
{
    Q_OBJECT
    
public:
    static Loader* create(QString url);
    virtual void load() = 0;
    
signals:
    void loadingComplete(Channel *channel, ErrorCode status, const QString);
    
protected:

};

} //namespace Videocatcher

#endif
