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 // Copyright 2010-2013, Haiku, Inc. All Rights Reserved.
5 // This file may be used under the terms of the Be Sample Code License.
6 #ifndef MEDIA_CONVERTER_WINDOW_H
7 #define MEDIA_CONVERTER_WINDOW_H
10 #include <Directory.h>
11 #include <MediaDefs.h>
12 #include <MediaFormats.h>
24 class MediaFileInfoView
;
25 class MediaFileListView
;
28 class MediaConverterWindow
: public BWindow
{
30 MediaConverterWindow(BRect frame
);
31 virtual ~MediaConverterWindow();
34 virtual void MessageReceived(BMessage
* message
);
35 virtual bool QuitRequested();
38 void LanguageChanged();
40 void BuildFormatMenu();
41 void BuildAudioVideoMenus();
42 void GetSelectedFormatInfo(
43 media_file_format
** _format
,
44 media_codec_info
** _audio
,
45 media_codec_info
** _video
);
47 void SetStatusMessage(const char *message
);
48 void SetFileMessage(const char *message
);
50 bool AddSourceFile(BMediaFile
* file
,
51 const entry_ref
& ref
);
52 void RemoveSourceFile(int32 index
);
53 int32
CountSourceFiles();
54 status_t
GetSourceFileAt(int32 index
, BMediaFile
** _file
,
57 void SourceFileSelectionChanged();
59 void SetEnabled(bool enabled
, bool convertEnabled
);
62 const char* StartDuration() const;
63 const char* EndDuration() const;
65 int32
AudioQuality() const
66 { return fAudioQuality
; }
67 int32
VideoQuality() const
68 { return fVideoQuality
; }
70 void SetAudioQualityLabel(const char* label
);
71 void SetVideoQualityLabel(const char* label
);
73 BDirectory
OutputDirectory() const;
75 void TruncateOutputFolderPath();
79 void _UpdateBBoxLayoutInsets(BBox
* box
);
82 void _SetOutputFolder(BEntry entry
);
85 BButton
* fConvertButton
;
88 BButton
* fPreviewButton
;
94 BMenuField
* fFormatMenu
;
95 BMenuField
* fVideoMenu
;
96 BMenuField
* fAudioMenu
;
97 BStringView
* fFileStatus
;
99 MediaFileListView
* fListView
;
100 MediaFileInfoView
* fInfoView
;
101 BStringView
* fOutputFolder
;
102 BTextControl
* fStartDurationTC
;
103 BTextControl
* fEndDurationTC
;
105 BSlider
* fVideoQualitySlider
;
106 BSlider
* fAudioQualitySlider
;
111 BFilePanel
* fSaveFilePanel
;
112 BFilePanel
* fOpenFilePanel
;
114 BDirectory fOutputDir
;
115 bool fOutputDirSpecified
;
122 #endif // MEDIA_CONVERTER_WINDOW_H