1// Copyright 1999, Be Incorporated. All Rights Reserved.
2// Copyright 2000-2004, Jun Suzuki. All Rights Reserved.
3// Copyright 2007, Stephan Aßmus. All Rights Reserved.
4// This file may be used under the terms of the Be Sample Code License.
5#ifndef MEDIA_CONVERTER_APP_H
6#define MEDIA_CONVERTER_APP_H
7
8
9#include <Application.h>
10#include <Directory.h>
11#include <Entry.h>
12#include <MediaDefs.h>
13#include <MediaFormats.h>
14
15
16class BMediaFile;
17class MediaConverterWindow;
18
19class MediaConverterApp : public BApplication {
20	public:
21								MediaConverterApp();
22	virtual						~MediaConverterApp();
23
24	protected:
25
26	virtual void				MessageReceived(BMessage* message);
27	virtual void				ReadyToRun();
28	virtual void				RefsReceived(BMessage* message);
29
30	public:
31			bool				IsConverting() const;
32			void				StartConverting();
33
34			void				SetStatusMessage(const char* message);
35
36	private:
37			BEntry				_CreateOutputFile(BDirectory directory,
38									entry_ref* ref,
39									media_file_format* outputFormat);
40
41	static	int32				_RunConvertEntry(void* castToMediaConverterApp);
42			void				_RunConvert();
43			status_t			_ConvertFile(BMediaFile* inFile,
44									BMediaFile* outFile,
45									media_codec_info* audioCodec,
46									media_codec_info* videoCodec,
47									int32 audioQuality, int32 videoQuality,
48									bigtime_t StartTime, bigtime_t EndTime);
49
50			MediaConverterWindow* fWin;
51			thread_id			fConvertThreadID;
52			bool				fConverting;
53	volatile bool				fCancel;
54};
55
56#endif // MEDIA_CONVERTER_APP_H
57