/***************************************************************************
                          statebag.h  -  description
                             -------------------
    begin                : Di Jan 25 2005
    copyright            : (C) 2005 by Holger Brunn
    email                : holger.brunn@stud.uni-karlsruhe.de
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   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.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef ROASTER_STATEBAG_H
#define ROASTER_STATEBAG_H

#include <vdr/tools.h>
#include <vdr/plugin.h>

//Forward declarations for used classes
class cStringContainerList;
#ifdef ROASTER_PLUGIN_BUILD
class cThreadList;
#endif
class cRoasterCommands;

class cRoasterStatebag
{
  protected:
    cStringContainerList* SelectedFiles;
#ifdef ROASTER_PLUGIN_BUILD
    cThreadList* Threads;
#endif
    cRoasterCommands* Commands;

  public:
    cRoasterStatebag();
    ~cRoasterStatebag();

    cStringContainerList* GetSelectedFiles() { return SelectedFiles; };
#ifdef ROASTER_PLUGIN_BUILD
    cThreadList* GetThreads() { return Threads; };
#endif
    cRoasterCommands* GetCommands() { return Commands; };

    char BaseDir[_POSIX_PATH_MAX];
    bool ShowHiddenFiles;
    bool ShowFullPath;
    
    cString Filter;
    cString CurrentDirectory;
    cString ConfigDirectory;
    cStringContainerList* CurrentFiles;

#ifdef ROASTER_PLUGIN_BUILD
    /*
    Is an update requested by some thread?
    */
    bool UpdateRequested;

    cPlugin* RoasterPlugin;
#endif
};

#endif
