/* vim: set ft=objc ts=4 et sw=4 nowrap: */
/*
 *  BurnProgressController.h
 *
 *  Copyright (c) 2002
 *
 *  Author: Andreas Heppel <aheppel@web.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.
 *
 *  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, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#ifndef BURNPROGRESSCONTROLLER_H_INC
#define BURNPROGRESSCONTROLLER_H_INC

#include <AppKit/AppKit.h>

#include "BurnProgress.h"
#include "Burn/ExternalTools.h"

@class ConvertAudioHelper;
@class CreateISOHelper;
@class GrabAudioCDHelper;
@class BurnCDHelper;

enum StartHelperStatus {
    Failed,
    Started,
    Done
};

@interface BurnProgressController : NSWindowController
{
    // ivars
    id closeButton;
    id abortButton;
    id entireLabel;
    id trackLabel;
    id entireProgress;
    id trackProgress;

	// data
	NSString *volumeId;
	NSArray *dataTracks;
	NSArray *audioTracks;
	NSDictionary *cdList;

	NSMutableDictionary *burnParameters;

	NSString *isoImageFile;

	// current status
	short processStatus;

    double mwTrack;
    double mwEntire;

    int stage;

    ConvertAudioHelper *convertHelper;
    GrabAudioCDHelper *grabHelper;
    BurnCDHelper *burnHelper;
    CreateISOHelper *createIsoHelper;
}

- (id) init;

- (id) initWithVolumeId: (NSString *) volId
             dataTracks: (NSArray *) dTracks
            audioTracks: (NSArray *) aTracks
                 cdList: (NSDictionary *) cds;

- (id) initWithIsoImage: (NSString *) isoImage;

- (void) startProcess;
- (void) nextStage: (BOOL)success;

//
// action methods
//
- (void) closeClicked: (id) sender;
- (void) abortClicked: (id) sender;

//
// access methods
//
- (NSDictionary *) burnParameters;
- (NSString *)isoImageFile;
- (NSDictionary *) cdList;
- (void) setTitle: (NSString *)title;
- (void) setTrackProgress: (double) value andLabel: (NSString *) label;
- (void) setEntireProgress: (double) value andLabel: (NSString *) label;
- (void) setAbortEnabled: (BOOL) enabled;
- (void) setMiniwindowToTrack: (double) track Entire: (double) entire;

//
// private methods
//
- (void) cleanUp: (BOOL) success;
- (BOOL) createTempDirectory;


@end


#endif


syntax highlighted by Code2HTML, v. 0.9.1