summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AUTHORS41
-rw-r--r--CREDITS4
-rwxr-xr-xDownloadMacOsXContribBinaries.sh4
-rw-r--r--NEWS19
-rw-r--r--THANKS11
-rw-r--r--beos/HBApp.cpp85
-rw-r--r--beos/HBApp.h28
-rw-r--r--beos/HandBrake.rsrcbin4217 -> 0 bytes
-rw-r--r--beos/MainWindow.cpp986
-rw-r--r--beos/MainWindow.h121
-rw-r--r--beos/PicWindow.cpp369
-rw-r--r--beos/PicWindow.h54
-rw-r--r--beos/QueueWindow.cpp132
-rw-r--r--beos/QueueWindow.h38
-rw-r--r--beos/ScanWindow.cpp320
-rw-r--r--beos/ScanWindow.h56
-rw-r--r--beos/Stepper.cpp130
-rw-r--r--beos/Stepper.h31
18 files changed, 65 insertions, 2364 deletions
diff --git a/AUTHORS b/AUTHORS
index 744cdf8b7..1e85043c7 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,6 +1,6 @@
-$Id: AUTHORS,v 1.5 2005/03/23 13:14:50 titer Exp $
+AUTHORS file for MediaFork <http://mediafork.dynalias.com/>
-AUTHORS file for HandBrake <http://handbrake.m0k.org/>
+Originally forked from HandBrake <http://handbrake.m0k.org/>
Eric Petit <[email protected]>
+ Core (construct, multithreading, BeOS/OS X/Linux ports)
@@ -22,3 +22,40 @@ Laurent Aimar <[email protected]>
+ Gtk2 interface
+ wxWidgets interface
+John Allen (?) <[email protected]> (johnallen)
+ + Core enhancements
+ + Threading enhancements
+ + Simplified Mac OS X GUI
+
+Joe Crain <[email protected]> (dynaflash)
+ + Mac OS X GUI enhancements/rewrite
+
+Rodney Hester <[email protected]> (rhester)
+ + iPod firmware 1.2+ 640x480 MPEG-4/H.264 support
+
+Benjamin Lake <[email protected]> (benlake)
+ + Mac OS X GUI enhancements/rewrite
+
+Chris Long <[email protected]> (chrislong)
+ + iPod firmware 1.2+ 640x480 MPEG-4/H.264 support
+
+Philippe Rigaux <[email protected]> (prigaux)
+ + 3rd party library integration
+ + Mac OS X GUI enhancements
+ + PAR/anamorphic support
+ + Universal binary build process
+ + Conversion from jam to make for compiles
+
+Jonathon Rubin <[email protected]> (jbrjake)
+ + Massive core enhancements
+ + Significant improvements to H.264 support
+
+Scott <[email protected]> (sr55)
+ + Windows GUI
+ + mpeg4ip patches for cygwin compile
+
+Unknown <[email protected]> (maurj)
+ + AAC audio improvements
+
+Unknown <[email protected]> (mirkwood)
+ + Windows CLI port
diff --git a/CREDITS b/CREDITS
index 4310c76d1..dda23acc9 100644
--- a/CREDITS
+++ b/CREDITS
@@ -1,6 +1,4 @@
-$Id: CREDITS,v 1.7 2004/04/24 10:49:56 titer Exp $
-
-CREDITS file for HandBrake <http://handbrake.m0k.org/>
+CREDITS file for MediaFork <http://mediafork.dynalias.com/>
HandBrake uses many cool libraries from the GNU/Linux world.
Thank their authors!
diff --git a/DownloadMacOsXContribBinaries.sh b/DownloadMacOsXContribBinaries.sh
index 93be47cd6..b8df22270 100755
--- a/DownloadMacOsXContribBinaries.sh
+++ b/DownloadMacOsXContribBinaries.sh
@@ -10,9 +10,9 @@ if [ -f contrib/DarwinContribVersion.txt ]; then
fi
fi
-HOST=download.m0k.org
+HOST=download.mediafork.dynalias.com
FILE=contribbin-darwin-$VERSION.tar.gz
-URL=http://download.mediafork.dynalias.com/contrib/$FILE
+URL=http://$HOST/contrib/$FILE
# Check for internet connectivity
if ! host $HOST > /dev/null 2>&1; then
diff --git a/NEWS b/NEWS
index 3c8eea0a1..9434f4411 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,19 @@
-$Id: NEWS,v 1.28 2005/11/04 16:01:19 titer Exp $
-
-NEWS file for HandBrake <http://handbrake.m0k.org/>
+NEWS file for MediaFork <http://mediafork.dynalias.com/>
+
+Changes between 0.7.1 and 0.8.0
+ + MediaFork project forked from HandBrake source <http://handbrake.m0k.org/>
+ + Updated libraries (meaning better quality, hopefully fewer bugs, and increased speeds)
+ + iPod 5.5G support
+ + Revamped graphical interface (Mac OS X)
+ + Anamorphic encoding with pixel aspect ratio
+ + Brighter color reproduction in QuickTime
+ + Lists disks by DVD name instead of by drive name (Mac OS X)
+ + Titles output movies based on the DVD name (Mac OS X)
+ + 32Khz audio output
+ + Constant rate factor encoding with x264
+ + New preference item to turn deinterlacing on by default (Mac OS X)
+ + New preference item to select the default audio language (Mac OS X)
+ + Bugfix for reading straight from a DVD
Changes between 0.7.0 and 0.7.1
+ Universal Binary for PPC and Intel
diff --git a/THANKS b/THANKS
index 81b04f46c..287867c34 100644
--- a/THANKS
+++ b/THANKS
@@ -1,11 +1,14 @@
-$Id: THANKS,v 1.16 2004/08/05 17:03:05 titer Exp $
+THANKS file for MediaFork <http://mediafork.dynalias.com/>
-THANKS file for HandBrake <http://handbrake.m0k.org/>
+Originally forked from HandBrake <http://handbrake.m0k.org/>
-Several people noticeably contributed to HandBrake development without
-writing code (submitting/checking translations, DVD samples, etc).
+Several people noticeably contributed to MediaFork and HandBrake development
+without writing code (submitting/checking translations, DVD samples, etc).
Let's thank them here!
+Chris (audley)
+ + Inspiration and example of patching mpeg4ip for iPod atom support
+
Omar Ahmad Bhatti
+ Intensive beta testing, suggestions. Convinced me to port HandBrake
to OS X, which finally was a pretty good idea.
diff --git a/beos/HBApp.cpp b/beos/HBApp.cpp
deleted file mode 100644
index 702c74d94..000000000
--- a/beos/HBApp.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-#include "HBApp.h"
-#include "MainWindow.h"
-#include "ScanWindow.h"
-
-#include "hb.h"
-
-int main()
-{
- HBApp * app = new HBApp();
- app->Run();
- delete app;
- return 0;
-}
-
-HBApp::HBApp()
- : BApplication( "application/x-vnd.titer-handbrake" )
-{
- fHandle = hb_init( HB_DEBUG_ALL, 0 );
-
- fMainWin = new MainWindow( fHandle );
- fScanWin = new ScanWindow( fHandle );
- fScanWin->AddToSubset( fMainWin );
-
- fMainWin->Show();
- fScanWin->Show();
-
- SetPulseRate( 200000 ); /* 0.2 second */
-}
-
-void HBApp::MessageReceived( BMessage * message )
-{
- switch( message->what )
- {
- default:
- BApplication::MessageReceived( message );
- break;
- }
-}
-
-void HBApp::RefsReceived( BMessage * message )
-{
-}
-
-void HBApp::Pulse()
-{
- hb_state_t s;
- hb_get_state( fHandle, &s );
-
- switch( s.state )
- {
- case HB_STATE_IDLE:
- break;
-
- case HB_STATE_SCANNING:
- fScanWin->Update( &s );
- break;
-
- case HB_STATE_SCANDONE:
- if( hb_list_count( hb_get_titles( fHandle ) ) )
- {
- /* Success */
- fScanWin->Hide();
- fMainWin->Update( &s );
- }
- else
- {
- /* Invalid volume */
- fScanWin->Update( &s );
- }
- break;
-
- case HB_STATE_WORKING:
- case HB_STATE_PAUSED:
- case HB_STATE_WORKDONE:
- fMainWin->Update( &s );
- break;
- }
-}
-
-bool HBApp::QuitRequested()
-{
- hb_close( &fHandle );
- return BApplication::QuitRequested();
-}
-
diff --git a/beos/HBApp.h b/beos/HBApp.h
deleted file mode 100644
index 042a791b9..000000000
--- a/beos/HBApp.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef HB_APP_H
-#define HB_APP_H
-
-#include <Application.h>
-
-#include "hb.h"
-
-class MainWindow;
-class ScanWindow;
-
-class HBApp : public BApplication
-{
- public:
- HBApp();
- void MessageReceived( BMessage * message );
- void RefsReceived( BMessage * message );
- void Pulse();
- bool QuitRequested();
-
- private:
- MainWindow * fMainWin;
- ScanWindow * fScanWin;
-
- hb_handle_t * fHandle;
-};
-
-#endif
-
diff --git a/beos/HandBrake.rsrc b/beos/HandBrake.rsrc
deleted file mode 100644
index d9f87ee44..000000000
--- a/beos/HandBrake.rsrc
+++ /dev/null
Binary files differ
diff --git a/beos/MainWindow.cpp b/beos/MainWindow.cpp
deleted file mode 100644
index 5b2741bb9..000000000
--- a/beos/MainWindow.cpp
+++ /dev/null
@@ -1,986 +0,0 @@
-#include <app/Application.h>
-#include <interface/Box.h>
-#include <interface/Button.h>
-#include <interface/CheckBox.h>
-#include <interface/MenuField.h>
-#include <interface/MenuItem.h>
-#include <interface/PopUpMenu.h>
-#include <interface/RadioButton.h>
-#include <interface/Screen.h>
-#include <interface/Slider.h>
-#include <interface/StatusBar.h>
-#include <interface/StringView.h>
-#include <interface/TextControl.h>
-#include <storage/FilePanel.h>
-#include <storage/Path.h>
-#include <support/String.h>
-
-#include "MainWindow.h"
-#include "PicWindow.h"
-#include "QueueWindow.h"
-
-#define MSG_TITLEPOPUP 'titl'
-#define MSG_CHAPTERPOPUP 'chap'
-#define MSG_FORMATPOPUP 'form'
-#define MSG_CODECSPOPUP 'code'
-#define MSG_BROWSE 'brow'
-#define MSG_QUALITYRADIO 'radi'
-#define MSG_SLIDER 'slid'
-#define MSG_PICSETTINGS 'pise'
-#define MSG_QUEUE_ENABLE 'quen'
-#define MSG_QUEUE_ADD 'quad'
-#define MSG_QUEUE_SHOW 'qush'
-#define MSG_PAUSE 'paus'
-#define MSG_START 'star'
-
-static int FormatSettings[3][4] =
- { { HB_MUX_MP4 | HB_VCODEC_FFMPEG | HB_ACODEC_FAAC,
- HB_MUX_MP4 | HB_VCODEC_X264 | HB_ACODEC_FAAC,
- 0,
- 0 },
- { HB_MUX_AVI | HB_VCODEC_FFMPEG | HB_ACODEC_LAME,
- HB_MUX_AVI | HB_VCODEC_FFMPEG | HB_ACODEC_AC3,
- HB_MUX_AVI | HB_VCODEC_X264 | HB_ACODEC_LAME,
- HB_MUX_AVI | HB_VCODEC_X264 | HB_ACODEC_AC3 },
- { HB_MUX_OGM | HB_VCODEC_FFMPEG | HB_ACODEC_VORBIS,
- HB_MUX_OGM | HB_VCODEC_FFMPEG | HB_ACODEC_LAME,
- 0,
- 0 } };
-
-MainView::MainView( hb_handle_t * handle )
- : BView( BRect( 0,0,700,475 ), NULL, B_FOLLOW_NONE, B_WILL_DRAW )
-{
- fHandle = handle;
-
- BRect r, b;
- BBox * box;
-
- SetViewColor( ui_color( B_PANEL_BACKGROUND_COLOR ) );
-
- /* Source box */
- b = Bounds();
- r = BRect( 10,10,b.right/2-5,135 );
- box = new BBox( r );
- box->SetLabel( "Source" );
- AddChild( box );
-
- b = box->Bounds();
-
- r = BRect( 10,15,b.right/4,35 );
- fSrcDVD1String = new BStringView( r, NULL, "DVD:" );
- box->AddChild( fSrcDVD1String );
-
- r = BRect( b.right/4+1,15,b.right-10,35 );
- fSrcDVD2String = new BStringView( r, NULL, "" );
- fSrcDVD2String->SetAlignment( B_ALIGN_RIGHT );
- box->AddChild( fSrcDVD2String );
-
- r = BRect( 10,40,b.right-10,60 );
- fSrcTitlePopUp = new BPopUpMenu( "" );
- fSrcTitleMenu = new BMenuField( r, NULL, "Title:", fSrcTitlePopUp,
- true );
- fSrcTitleMenu->SetDivider( b.right-130 );
- box->AddChild( fSrcTitleMenu );
-
- r = BRect( 10,65,b.right-120,85 );
- fSrcChapString = new BStringView( r, NULL, "Chapters:" );
- box->AddChild( fSrcChapString );
-
- r = BRect( b.right-119,65,b.right-80,85 );
- fSrcChapStartPopUp = new BPopUpMenu( "" );
- fSrcChapStartMenu = new BMenuField( r, NULL, "",
- fSrcChapStartPopUp, true );
- fSrcChapStartMenu->SetDivider( 0.0 );
- box->AddChild( fSrcChapStartMenu );
-
- r = BRect( b.right-79,65,b.right-50,85 );
- fSrcChapToString = new BStringView( r, NULL, "to" );
- fSrcChapToString->SetAlignment( B_ALIGN_CENTER );
- box->AddChild( fSrcChapToString );
-
- r = BRect( b.right-49,65,b.right-10,85 );
- fSrcChapEndPopUp = new BPopUpMenu( "" );
- fSrcChapEndMenu = new BMenuField( r, NULL, "", fSrcChapEndPopUp,
- true );
- fSrcChapEndMenu->SetDivider( 0.0 );
- box->AddChild( fSrcChapEndMenu );
-
- r = BRect( 10,90,b.right/2,110 );
- fSrcDur1String = new BStringView( r, NULL, "Duration:" );
- box->AddChild( fSrcDur1String );
-
- r = BRect( b.right/2+1,90,b.right-10,110 );
- fSrcDur2String = new BStringView( r, NULL, "00:00:00" );
- fSrcDur2String->SetAlignment( B_ALIGN_RIGHT );
- box->AddChild( fSrcDur2String );
-
- /* Destination box */
- b = Bounds();
- r = BRect( b.right/2+5,10,b.right-10,135 );
- box = new BBox( r );
- box->SetLabel( "Destination" );
- AddChild( box );
-
- b = box->Bounds();
-
- r = BRect( 10,15,b.right-10,35 );
- fDstFormatPopUp = new BPopUpMenu( "" );
-#define ADDITEM(a) fDstFormatPopUp->AddItem( new BMenuItem( a, \
- new BMessage( MSG_FORMATPOPUP ) ) )
- ADDITEM( "MP4 file" );
- ADDITEM( "AVI file" );
- ADDITEM( "OGM file" );
-#undef ADDITEM
- fDstFormatPopUp->ItemAt( 0 )->SetMarked( true );
- fDstFormat = -1;
- fDstFormatMenu = new BMenuField( r, NULL, "File format:",
- fDstFormatPopUp, true );
- fDstFormatMenu->SetDivider( b.right/3 );
- box->AddChild( fDstFormatMenu );
-
- r = BRect( 10,40,b.right-10,60 );
- fDstCodecsPopUp = new BPopUpMenu( "" );
- fDstCodecsMenu = new BMenuField( r, NULL, "Codecs:",
- fDstCodecsPopUp, true );
- fDstCodecsMenu->SetDivider( b.right/3 );
- box->AddChild( fDstCodecsMenu );
-
- r = BRect( 10,65,b.right-10,85 );
- fDstFileControl = new BTextControl( r, NULL, "File:",
- "/boot/home/Desktop/Movie", new BMessage() );
- fDstFileControl->SetDivider( b.right/3 );
- box->AddChild( fDstFileControl );
-
- r = BRect( b.right-90,90,b.right-10,115 );
- fBrowseButton = new BButton( r, NULL, "Browse",
- new BMessage( MSG_BROWSE ) );
- box->AddChild( fBrowseButton );
-
- /* Video box */
- b = Bounds();
- r = BRect( 10,145,b.right/2-5,395 );
- box = new BBox( r );
- box->SetLabel( "Video" );
- AddChild( box );
-
- b = box->Bounds();
-
- r = BRect( 10,15,b.right-10,35 );
- fVidRatePopUp = new BPopUpMenu( "" );
- fVidRatePopUp->AddItem( new BMenuItem( "Same as source",
- new BMessage() ) );
- for( int i = 0; i < hb_video_rates_count; i++ )
- {
- fVidRatePopUp->AddItem( new BMenuItem( hb_video_rates[i].string,
- new BMessage() ) );
- }
- fVidRatePopUp->ItemAt( 0 )->SetMarked( true );
- fVidRateMenu = new BMenuField( r, NULL, "Framerate (fps):",
- fVidRatePopUp, true );
- box->AddChild( fVidRateMenu );
-
- r = BRect( 10,40,b.right-10,60 );
- fVidEncoderPopUp = new BPopUpMenu( "" );
- fVidEncoderMenu = new BMenuField( r, NULL, "Encoder:",
- fVidEncoderPopUp, true );
- box->AddChild( fVidEncoderMenu );
-
- r = BRect( 10,65,b.right-10,85 );
- fVidQualityString = new BStringView( r, NULL, "Quality:" );
- box->AddChild( fVidQualityString );
-
- r = BRect( 10,90,b.right*2/3,110);
- fVidTargetRadio = new BRadioButton( r, NULL, "Target size (MB):",
- new BMessage( MSG_QUALITYRADIO ) );
- box->AddChild( fVidTargetRadio );
-
- r = BRect( b.right*2/3+1,90,b.right-10,110);
- fVidTargetControl = new BTextControl( r, NULL, "", "700",
- new BMessage() );
- fVidTargetControl->SetDivider( 0 );
- box->AddChild( fVidTargetControl );
-
- r = BRect( 10,115,b.right/2,135);
- fVidAverageRadio = new BRadioButton( r, NULL, "Average bitrate (kbps):",
- new BMessage( MSG_QUALITYRADIO ) );
- fVidAverageRadio->SetValue( 1 );
- box->AddChild( fVidAverageRadio );
-
- r = BRect( b.right*2/3+1,115,b.right-10,135);
- fVidAverageControl = new BTextControl( r, NULL, "", "1000",
- new BMessage() );
- fVidAverageControl->SetDivider( 0 );
- box->AddChild( fVidAverageControl );
-
- r = BRect( 10,140,b.right/2,160);
- fVidConstantRadio = new BRadioButton( r, NULL, "Constant quality:",
- new BMessage( MSG_QUALITYRADIO ) );
- box->AddChild( fVidConstantRadio );
-
- r = BRect( 20,165,b.right-10,195);
- fVidConstantSlider = new BSlider( r, NULL, NULL,
- new BMessage( MSG_SLIDER ), 0, 100 );
- fVidConstantSlider->SetValue( 50 );
- SliderChanged();
- box->AddChild( fVidConstantSlider );
-
- r = BRect( 10,200,b.right-10,220);
- fVidGrayCheck = new BCheckBox( r, NULL, "Grayscale encoding", new BMessage() );
- box->AddChild( fVidGrayCheck );
- r = BRect( 10,220,b.right-10,240);
- fVidTwoPassCheck = new BCheckBox( r, NULL, "2-pass encoding", new BMessage() );
- box->AddChild( fVidTwoPassCheck );
-
- /* Subtitles box */
- b = Bounds();
- r = BRect( b.right/2+5,145,b.right-10,190 );
- box = new BBox( r );
- box->SetLabel( "Subtitles" );
- AddChild( box );
-
- b = box->Bounds();
-
- r = BRect( 10,15,b.right-10,35 );
- fSubPopUp = new BPopUpMenu( "" );
- fSubMenu = new BMenuField( r, NULL, "Language:",
- fSubPopUp, true );
- box->AddChild( fSubMenu );
-
- /* Audio box */
- b = Bounds();
- r = BRect( b.right/2+5,200,b.right-10,320 );
- box = new BBox( r );
- box->SetLabel( "Audio" );
- AddChild( box );
-
- b = box->Bounds();
-
- r = BRect( 10,15,b.right-10,35 );
- fAudLang1PopUp = new BPopUpMenu( "" );
- fAudLang1Menu = new BMenuField( r, NULL, "Language 1:",
- fAudLang1PopUp, true );
- box->AddChild( fAudLang1Menu );
- r = BRect( 10,40,b.right-10,60 );
- fAudLang2PopUp = new BPopUpMenu( "" );
- fAudLang2Menu = new BMenuField( r, NULL, "Language 2:",
- fAudLang2PopUp, true );
- box->AddChild( fAudLang2Menu );
- r = BRect( 10,65,b.right-10,85 );
- fAudRatePopUp = new BPopUpMenu( "" );
- for( int i = 0; i < hb_audio_rates_count; i++ )
- {
- fAudRatePopUp->AddItem( new BMenuItem( hb_audio_rates[i].string,
- new BMessage ) );
- }
- fAudRatePopUp->ItemAt( hb_audio_rates_default )->SetMarked( true );
- fAudRateMenu = new BMenuField( r, NULL, "Sample rate (Hz):",
- fAudRatePopUp, true );
- box->AddChild( fAudRateMenu );
- r = BRect( 10,90,b.right-10,110 );
- fAudBitratePopUp = new BPopUpMenu( "" );
- for( int i = 0; i < hb_audio_bitrates_count; i++ )
- {
- fAudBitratePopUp->AddItem( new BMenuItem(
- hb_audio_bitrates[i].string, new BMessage ) );
- }
- fAudBitratePopUp->ItemAt(
- hb_audio_bitrates_default )->SetMarked( true );
- fAudBitrateMenu = new BMenuField( r, NULL, "Bitrate (kbps):",
- fAudBitratePopUp, true );
- box->AddChild( fAudBitrateMenu );
-
- /* Picture settings */
- b = Bounds();
- r = BRect( b.right-110,370,b.right-10,395 );
- fPictureButton = new BButton( r, NULL, "Picture settings...",
- new BMessage( MSG_PICSETTINGS ) );
- AddChild( fPictureButton );
-
- /* Bottom */
- r = BRect( 10,405,b.right-10,435 );
- fProgressBar = new BStatusBar( r, NULL );
- AddChild( fProgressBar );
-
- r = BRect( 10,450,b.right-370,470);
- fQueueCheck = new BCheckBox( r, NULL, "Enable Queue",
- new BMessage( MSG_QUEUE_ENABLE ) );
- AddChild( fQueueCheck );
-
- r = BRect( b.right-360,445,b.right-280,470 );
- fAddButton = new BButton( r, NULL, "Add to Queue",
- new BMessage( MSG_QUEUE_ADD ) );
-
- r = BRect( b.right-270,445,b.right-190,470 );
- fShowButton = new BButton( r, NULL, "Show queue",
- new BMessage( MSG_QUEUE_SHOW ) );
-
- r = BRect( b.right-180,445,b.right-100,470 );
- fPauseButton = new BButton( r, NULL, "Pause",
- new BMessage( MSG_PAUSE ) );
- AddChild( fPauseButton );
-
- r = BRect( b.right-90,445,b.right-10,470 );
- fRipButton = new BButton( r, NULL, "Rip",
- new BMessage( MSG_START ) );
- AddChild( fRipButton );
-
- EnableUI( false );
- fPauseButton->SetEnabled( false );
- fRipButton->SetEnabled( false );
-
- FormatPopUpChanged();
-
- fFilePanel = NULL;
-}
-
-void MainView::HandleMessage( BMessage * msg )
-{
- switch( msg->what )
- {
- case MSG_TITLEPOPUP:
- TitlePopUpChanged();
- break;
-
- case MSG_CHAPTERPOPUP:
- ChapterPopUpChanged();
- break;
-
- case MSG_FORMATPOPUP:
- FormatPopUpChanged();
- break;
-
- case MSG_CODECSPOPUP:
- CodecsPopUpChanged();
- break;
-
- case MSG_BROWSE:
- if( !fFilePanel )
- {
- fFilePanel = new BFilePanel( B_SAVE_PANEL,
- new BMessenger( Window() ), NULL, 0, false );
- }
- fFilePanel->Show();
- break;
-
- case B_SAVE_REQUESTED:
- {
- entry_ref ref;
- BString string;
- if( msg->FindRef( "directory", 0, &ref ) == B_OK &&
- msg->FindString( "name", &string ) == B_OK )
- {
- BPath * path = new BPath( &ref );
- string.Prepend( "/" );
- string.Prepend( path->Path() );
- fDstFileControl->SetText( string.String() );
- CheckExtension();
- }
- break;
- }
-
- case MSG_QUALITYRADIO:
- QualityRadioChanged();
- break;
-
- case MSG_SLIDER:
- SliderChanged();
- break;
-
- case MSG_PICSETTINGS:
- fPicWin = new PicWindow( fHandle, fSrcTitlePopUp->IndexOf(
- fSrcTitlePopUp->FindMarked() ) );
- fPicWin->Show();
- break;
-
- case MSG_QUEUE_ENABLE:
- if( fQueueCheck->Value() )
- {
- AddChild( fAddButton );
- AddChild( fShowButton );
- }
- else
- {
- RemoveChild( fAddButton );
- RemoveChild( fShowButton );
- }
- break;
-
- case MSG_QUEUE_ADD:
- AddJob();
- break;
-
- case MSG_QUEUE_SHOW:
- fQueueWin = new QueueWindow( fHandle );
- fQueueWin->Show();
- break;
-
- case MSG_PAUSE:
- fPauseButton->SetEnabled( false );
- fRipButton->SetEnabled( false );
- if( !strcmp( fPauseButton->Label(), "Resume" ) )
- {
- hb_resume( fHandle );
- }
- else
- {
- hb_pause( fHandle );
- }
- break;
-
- case MSG_START:
- {
- if( !strcmp( fRipButton->Label(), "Cancel" ) )
- {
- fPauseButton->SetEnabled( false );
- fRipButton->SetEnabled( false );
- hb_stop( fHandle );
- break;
- }
-
- EnableUI( false );
- fPauseButton->SetEnabled( false );
- fRipButton->SetEnabled( false );
-
- if( !fQueueCheck->Value() )
- {
- AddJob();
- }
-
- hb_start( fHandle );
- break;
- }
- }
-}
-
-void MainView::Update( hb_state_t * s )
-{
- if( !LockLooper() )
- {
- fprintf( stderr, "LockLooper failed\n" );
- return;
- }
-
- switch( s->state )
- {
-#define p s->param.scandone
- case HB_STATE_SCANDONE:
- {
- hb_list_t * list;
- hb_title_t * title;
- char string[1024];
-
- list = hb_get_titles( fHandle );
- for( int i = 0; i < hb_list_count( list ); i++ )
- {
- title = (hb_title_t *) hb_list_item( list, i );
- fSrcDVD2String->SetText( title->dvd );
- snprintf( string, 1024, "%d - %02dh%02dm%02ds",
- title->index, title->hours, title->minutes,
- title->seconds );
- fSrcTitlePopUp->AddItem( new BMenuItem( string,
- new BMessage( MSG_TITLEPOPUP ) ) );
- }
- fSrcTitlePopUp->ItemAt( 0 )->SetMarked( true );
- fSrcTitle = -1;
- TitlePopUpChanged();
-
- EnableUI( true );
- fRipButton->SetEnabled( true );
- fPauseButton->SetEnabled( false );
- break;
- }
-#undef p
-
-#define p s->param.working
- case HB_STATE_WORKING:
- {
- float progress_total;
- char text[1024];
- progress_total = ( p.progress + p.job_cur - 1 ) / p.job_count;
- snprintf( text, 1024, "Encoding: task %d of %d, %.2f %%",
- p.job_cur, p.job_count, 100.0 * p.progress );
- if( p.seconds > -1 )
- {
- snprintf( text + strlen( text ), 1024 - strlen( text ),
- " (%.2f fps, avg %.2f fps, ETA %02dh%02dm%02ds)",
- p.rate_cur, p.rate_avg, p.hours, p.minutes,
- p.seconds );
- }
- fProgressBar->Update( fProgressBar->MaxValue() *
- progress_total - fProgressBar->CurrentValue(), text );
-
- fPauseButton->SetLabel( "Pause" );
- fPauseButton->SetEnabled( true );
- fRipButton->SetLabel( "Cancel" );
- fRipButton->SetEnabled( true );
- break;
- }
-#undef p
-
- case HB_STATE_PAUSED:
- fProgressBar->Update( 0, "Paused" );
- fPauseButton->SetLabel( "Resume" );
- fPauseButton->SetEnabled( true );
- fRipButton->SetLabel( "Cancel" );
- fRipButton->SetEnabled( true );
- break;
-
-#define p s->param.workdone
- case HB_STATE_WORKDONE:
- fProgressBar->Update( - fProgressBar->CurrentValue(),
- "Done." );
- EnableUI( true );
- fPauseButton->SetLabel( "Pause" );
- fPauseButton->SetEnabled( false );
- fRipButton->SetLabel( "Rip" );
- fRipButton->SetEnabled( true );
-
- /* FIXME */
- hb_job_t * job;
- while( ( job = hb_job( fHandle, 0 ) ) )
- {
- hb_rem( fHandle, job );
- }
- break;
-#undef p
- }
-
- UnlockLooper();
-}
-
-void MainView::EnableUI( bool b )
-{
-
- rgb_color mycolor;
- mycolor.red = mycolor.green = mycolor.blue = b ? 0 : 128;
- mycolor.alpha = 255;
-
- BStringView * strings[] =
- { fSrcDVD1String, fSrcDVD2String, fSrcChapString,
- fSrcChapToString, fSrcDur1String, fSrcDur2String,
- fVidQualityString };
- for( unsigned i = 0; i < sizeof( strings ) / sizeof( void * ); i++ )
- {
- strings[i]->SetHighColor( mycolor );
- strings[i]->Invalidate(); /* Force redraw */
- }
-
- BMenuField * fields[] =
- { fSrcTitleMenu, fSrcChapStartMenu, fSrcChapEndMenu,
- fDstFormatMenu, fDstCodecsMenu, fVidRateMenu, fVidEncoderMenu,
- fSubMenu, fAudLang1Menu, fAudLang2Menu, fAudRateMenu,
- fAudBitrateMenu };
- for( unsigned i = 0; i < sizeof( fields ) / sizeof( void * ); i++ )
- {
- fields[i]->SetEnabled( b );
- }
-
- BControl * controls[] =
- { fDstFileControl, fBrowseButton, fVidTargetRadio,
- fVidTargetControl, fVidAverageRadio, fVidAverageControl,
- fVidConstantRadio, fVidConstantSlider, fVidGrayCheck,
- fVidTwoPassCheck, fPictureButton };
- for( unsigned i = 0; i < sizeof( controls ) / sizeof( void * ); i++ )
- {
- controls[i]->SetEnabled( b );
- }
-
- if( b )
- {
- QualityRadioChanged();
- }
-}
-
-void MainView::TitlePopUpChanged()
-{
- int index = fSrcTitlePopUp->IndexOf( fSrcTitlePopUp->FindMarked() );
- if( index == fSrcTitle )
- {
- /* No change actually */
- return;
- }
- fSrcTitle = index;
-
- /* Get a pointer to the title */
- hb_list_t * list;
- hb_title_t * title;
- list = hb_get_titles( fHandle );
- title = (hb_title_t *) hb_list_item( list, index );
-
- char text[1024];
- BMenuItem * item;
-
- /* Update chapters popups */
- while( ( item = fSrcChapStartPopUp->RemoveItem( 0L ) ) )
- {
- delete item;
- }
- while( ( item = fSrcChapEndPopUp->RemoveItem( 0L ) ) )
- {
- delete item;
- }
- for( int i = 0; i < hb_list_count( title->list_chapter ); i++ )
- {
- snprintf( text, 1024, "%d", i + 1 );
- fSrcChapStartPopUp->AddItem( new BMenuItem( text,
- new BMessage( MSG_CHAPTERPOPUP ) ) );
- fSrcChapEndPopUp->AddItem( new BMenuItem( text,
- new BMessage( MSG_CHAPTERPOPUP ) ) );
- }
- fSrcChapStartPopUp->ItemAt( 0 )->SetMarked( true );
- fSrcChapEndPopUp->ItemAt( hb_list_count( title->list_chapter )
- - 1 )->SetMarked( true );
- ChapterPopUpChanged();
-
- /* Update subtitles popup */
- hb_subtitle_t * sub;
- while( ( item = fSubPopUp->RemoveItem( 0L ) ) )
- {
- delete item;
- }
- fSubPopUp->AddItem( new BMenuItem( "None", new BMessage() ) );
- for( int i = 0; i < hb_list_count( title->list_subtitle ); i++ )
- {
- sub = (hb_subtitle_t *) hb_list_item( title->list_subtitle, i );
- fSubPopUp->AddItem( new BMenuItem( sub->lang, new BMessage() ) );
- }
- fSubPopUp->ItemAt( 0 )->SetMarked( true );
-
- /* Update audio popups */
- hb_audio_t * audio;
- while( ( item = fAudLang1PopUp->RemoveItem( 0L ) ) )
- {
- delete item;
- }
- while( ( item = fAudLang2PopUp->RemoveItem( 0L ) ) )
- {
- delete item;
- }
- fAudLang1PopUp->AddItem( new BMenuItem( "None", new BMessage() ) );
- fAudLang2PopUp->AddItem( new BMenuItem( "None", new BMessage() ) );
- for( int i = 0; i < hb_list_count( title->list_audio ); i++ )
- {
- audio = (hb_audio_t *) hb_list_item( title->list_audio, i );
- fAudLang1PopUp->AddItem( new BMenuItem( audio->lang, new BMessage() ) );
- fAudLang2PopUp->AddItem( new BMenuItem( audio->lang, new BMessage() ) );
- }
- fAudLang1PopUp->ItemAt( 1 )->SetMarked( true );
- fAudLang2PopUp->ItemAt( 0 )->SetMarked( true );
-}
-
-void MainView::ChapterPopUpChanged()
-{
- /* Get a pointer to the title */
- hb_list_t * list;
- hb_title_t * title;
- list = hb_get_titles( fHandle );
- title = (hb_title_t *) hb_list_item( list,
- fSrcTitlePopUp->IndexOf( fSrcTitlePopUp->FindMarked() ) );
-
- hb_chapter_t * chapter;
- int64_t duration = 0;
- for( int i = fSrcChapStartPopUp->IndexOf(
- fSrcChapStartPopUp->FindMarked() );
- i <= fSrcChapEndPopUp->IndexOf(
- fSrcChapEndPopUp->FindMarked() );
- i++ )
- {
- chapter = (hb_chapter_t *) hb_list_item( title->list_chapter, i );
- duration += chapter->duration;
- }
- duration /= 90000; /* pts -> seconds */
-
- char text[1024];
- snprintf( text, sizeof(text), "%02lld:%02lld:%02lld",
- duration / 3600, ( duration / 60 ) % 60, duration % 60 );
- fSrcDur2String->SetText( text );
-}
-
-void MainView::FormatPopUpChanged()
-{
- int format;
- BMenuItem * item;
-
- format = fDstFormatPopUp->IndexOf( fDstFormatPopUp->FindMarked() );
- if( format == fDstFormat )
- {
- /* No change actually */
- CheckExtension();
- return;
- }
- fDstFormat = format;
-
- /* Empty codecs popup */
- while( ( item = fDstCodecsPopUp->RemoveItem( 0L ) ) )
- {
- delete item;
- }
-
- /* Add acceptable video codec / audio codec combinations */
-#define ADDITEM(a) \
- fDstCodecsPopUp->AddItem( new BMenuItem( a, new BMessage( MSG_CODECSPOPUP ) ) )
- switch( format )
- {
- case 0:
- ADDITEM( "MPEG-4 Video / AAC Audio" );
- ADDITEM( "AVC/H.264 Video / AAC Audio" );
- break;
- case 1:
- ADDITEM( "MPEG-4 Video / MP3 Audio" );
- ADDITEM( "MPEG-4 Video / AC-3 Audio" );
- ADDITEM( "AVC/H.264 Video / MP3 Audio" );
- ADDITEM( "AVC/H.264 Video / AC-3 Audio" );
- break;
- case 2:
- ADDITEM( "MPEG-4 Video / Vorbis Audio" );
- ADDITEM( "MPEG-4 Video / MP3 Audio" );
- break;
- }
-#undef ADDITEM
-
- fDstCodecsPopUp->ItemAt( 0 )->SetMarked( true );
-
- CheckExtension();
- CodecsPopUpChanged();
-}
-
-void MainView::CodecsPopUpChanged()
-{
- int format = fDstFormatPopUp->IndexOf( fDstFormatPopUp->FindMarked() );
- int codecs = fDstCodecsPopUp->IndexOf( fDstCodecsPopUp->FindMarked() );
-
- BMenuItem * item;
-
- /* Update the encoder popup if necessary */
- if( ( FormatSettings[format][codecs] & HB_VCODEC_X264 ) &&
- fVidEncoderPopUp->CountItems() > 1 )
- {
- /* MPEG-4 -> H.264 */
- while( ( item = fVidEncoderPopUp->RemoveItem( 0L ) ) )
- delete item;
- fVidEncoderPopUp->AddItem( new BMenuItem( "x264", new BMessage() ) );
- fVidEncoderPopUp->ItemAt( 0 )->SetMarked( true );
- }
- else if( ( FormatSettings[format][codecs] & HB_VCODEC_FFMPEG ) &&
- fVidEncoderPopUp->CountItems() < 2 )
- {
- /* H.264 -> MPEG-4 */
- while( ( item = fVidEncoderPopUp->RemoveItem( 0L ) ) )
- delete item;
- fVidEncoderPopUp->AddItem( new BMenuItem( "FFmpeg", new BMessage() ) );
- fVidEncoderPopUp->AddItem( new BMenuItem( "XviD", new BMessage() ) );
- fVidEncoderPopUp->ItemAt( 0 )->SetMarked( true );
- }
-
- if( FormatSettings[format][codecs] & HB_ACODEC_AC3 )
- {
- /* AC-3 pass-through: disable samplerate and bitrate */
- fAudRatePopUp->SetEnabled( false );
- fAudBitratePopUp->SetEnabled( false );
- }
- else if( fVidEncoderPopUp->IsEnabled() )
- {
- fAudRatePopUp->SetEnabled( true );
- fAudBitratePopUp->SetEnabled( true );
- }
-}
-
-void MainView::CheckExtension()
-{
- char * ext = NULL;
- switch( fDstFormat )
- {
- case 0:
- ext = ".mp4";
- break;
- case 1:
- ext = ".avi";
- break;
- case 2:
- ext = ".ogm";
- break;
- }
-
- char newname[1024];
- const char * oldname = fDstFileControl->Text();
- memcpy( newname, oldname, strlen( oldname ) );
- if( strlen( oldname ) > 4 &&
- oldname[strlen( oldname ) - 4] == '.' )
- {
- /* Replace extension */
- memcpy( &newname[strlen( oldname ) - 4], ext, 5 );
- }
- else
- {
- /* Add extension */
- memcpy( &newname[strlen( oldname )], ext, 5 );
- }
- fDstFileControl->SetText( newname );
-}
-
-void MainView::QualityRadioChanged()
-{
- fVidTargetControl->SetEnabled( fVidTargetRadio->Value() );
- fVidAverageControl->SetEnabled( fVidAverageRadio->Value() );
- fVidConstantSlider->SetEnabled( fVidConstantRadio->Value() );
- fVidTwoPassCheck->SetEnabled( !fVidConstantRadio->Value() );
- if( fVidConstantRadio->Value() )
- fVidTwoPassCheck->SetValue( 0 );
-}
-
-void MainView::SliderChanged()
-{
- char text[1024];
- snprintf( text, 1024, "Constant quality: %ld %%",
- fVidConstantSlider->Value() );
- fVidConstantRadio->SetLabel( text );
-}
-
-void MainView::AddJob()
-{
- hb_list_t * list;
- hb_title_t * title;
- hb_job_t * job;
- list = hb_get_titles( fHandle );
- title = (hb_title_t *) hb_list_item( list,
- fSrcTitlePopUp->IndexOf( fSrcTitlePopUp->FindMarked() ) );
- job = title->job;
-
- job->chapter_start = fSrcChapStartPopUp->IndexOf(
- fSrcChapStartPopUp->FindMarked() ) + 1;
- job->chapter_end = fSrcChapEndPopUp->IndexOf(
- fSrcChapEndPopUp->FindMarked() ) + 1;
-
- int format = fDstFormatPopUp->IndexOf(
- fDstFormatPopUp->FindMarked() );
- int codecs = fDstCodecsPopUp->IndexOf(
- fDstCodecsPopUp->FindMarked() );
-
- job->mux = FormatSettings[format][codecs] & HB_MUX_MASK;
- job->vcodec = FormatSettings[format][codecs] & HB_VCODEC_MASK;
- job->acodec = FormatSettings[format][codecs] & HB_ACODEC_MASK;
-
- if( ( job->vcodec & HB_VCODEC_FFMPEG ) &&
- fVidEncoderPopUp->IndexOf(
- fVidEncoderPopUp->FindMarked() ) > 0 )
- {
- job->vcodec = HB_VCODEC_XVID;
- }
-
- int index;
- index = fVidRatePopUp->IndexOf(
- fVidRatePopUp->FindMarked() );
- if( index > 0 )
- {
- job->vrate_base = hb_video_rates[index-1].rate;
- }
- else
- {
- job->vrate_base = title->rate_base;
- }
-
- job->grayscale = fVidGrayCheck->Value();
-
- job->subtitle = fSubPopUp->IndexOf(
- fSubPopUp->FindMarked() ) - 1;
-
- job->audios[0] = fAudLang1PopUp->IndexOf(
- fAudLang1PopUp->FindMarked() ) - 1;
- job->audios[1] = fAudLang2PopUp->IndexOf(
- fAudLang2PopUp->FindMarked() ) - 1;
- job->audios[2] = -1;
-
- job->arate = hb_audio_rates[fAudRatePopUp->IndexOf(
- fAudRatePopUp->FindMarked() )].rate;
- job->abitrate = hb_audio_bitrates[fAudBitratePopUp->IndexOf(
- fAudBitratePopUp->FindMarked() )].rate;
-
- if( fVidConstantRadio->Value() )
- {
- job->vquality = 0.01 * fVidConstantSlider->Value();
- job->vbitrate = 0;
- }
- else if( fVidTargetRadio->Value() )
- {
- job->vquality = -1.0;
- job->vbitrate = hb_calc_bitrate( job,
- atoi( fVidTargetControl->Text() ) );
- }
- else
- {
- job->vquality = -1.0;
- job->vbitrate = atoi( fVidAverageControl->Text() );
- }
-
- job->file = strdup( fDstFileControl->Text() );
-
- if( fVidTwoPassCheck->Value() )
- {
- job->pass = 1;
- hb_add( fHandle, job );
- job->pass = 2;
- hb_add( fHandle, job );
- }
- else
- {
- job->pass = 0;
- hb_add( fHandle, job );
- }
-}
-
-MainWindow::MainWindow( hb_handle_t * handle )
- : BWindow( BRect( 0,0,10,10 ), "HandBrake " HB_VERSION,
- B_TITLED_WINDOW, B_NOT_RESIZABLE | B_NOT_ZOOMABLE )
-{
- fHandle = handle;
-
- /* Add the main view */
- fView = new MainView( fHandle );
- AddChild( fView );
-
- /* Resize to fit */
- ResizeTo( fView->Bounds().Width(), fView->Bounds().Height() );
-
- /* Center */
- BScreen screen;
- MoveTo( ( screen.Frame().Width() - fView->Bounds().Width() ) / 2,
- ( screen.Frame().Height() - fView->Bounds().Height() ) / 2 );
-}
-
-void MainWindow::MessageReceived( BMessage * msg )
-{
- switch( msg->what )
- {
- case MSG_TITLEPOPUP:
- case MSG_CHAPTERPOPUP:
- case MSG_FORMATPOPUP:
- case MSG_CODECSPOPUP:
- case MSG_BROWSE:
- case MSG_QUALITYRADIO:
- case MSG_SLIDER:
- case MSG_PICSETTINGS:
- case MSG_QUEUE_ENABLE:
- case MSG_QUEUE_ADD:
- case MSG_QUEUE_SHOW:
- case MSG_PAUSE:
- case MSG_START:
- case B_SAVE_REQUESTED:
- fView->HandleMessage( msg );
- break;
-
- default:
- BWindow::MessageReceived( msg );
- break;
- }
-}
-
-bool MainWindow::QuitRequested()
-{
- be_app_messenger.SendMessage( B_QUIT_REQUESTED );
- return true;
-}
-
-void MainWindow::Update( hb_state_t * s )
-{
- fView->Update( s );
-}
diff --git a/beos/MainWindow.h b/beos/MainWindow.h
deleted file mode 100644
index 1558556f0..000000000
--- a/beos/MainWindow.h
+++ /dev/null
@@ -1,121 +0,0 @@
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <interface/Window.h>
-#include <interface/View.h>
-
-#include "hb.h"
-
-class BButton;
-class BCheckBox;
-class BMenuField;
-class BPopUpMenu;
-class BRadioButton;
-class BSlider;
-class BStatusBar;
-class BStringView;
-class BTextControl;
-class BFilePanel;
-
-class PicWindow;
-class QueueWindow;
-
-class MainView : public BView
-{
- public:
- MainView( hb_handle_t * handle );
-
- void HandleMessage( BMessage * msg );
- void Update( hb_state_t * s );
-
- private:
- void EnableUI( bool );
- void TitlePopUpChanged();
- void ChapterPopUpChanged();
- void FormatPopUpChanged();
- void CodecsPopUpChanged();
- void CheckExtension();
- void QualityRadioChanged();
- void SliderChanged();
- void AddJob();
-
- hb_handle_t * fHandle;
-
- BStringView * fSrcDVD1String;
- BStringView * fSrcDVD2String;
- BPopUpMenu * fSrcTitlePopUp;
- BMenuField * fSrcTitleMenu;
- int fSrcTitle;
- BStringView * fSrcChapString;
- BPopUpMenu * fSrcChapStartPopUp;
- BMenuField * fSrcChapStartMenu;
- BStringView * fSrcChapToString;
- BPopUpMenu * fSrcChapEndPopUp;
- BMenuField * fSrcChapEndMenu;
- BStringView * fSrcDur1String;
- BStringView * fSrcDur2String;
-
- BPopUpMenu * fDstFormatPopUp;
- BMenuField * fDstFormatMenu;
- int fDstFormat;
- BPopUpMenu * fDstCodecsPopUp;
- BMenuField * fDstCodecsMenu;
- BTextControl * fDstFileControl;
- BButton * fBrowseButton;
-
- BPopUpMenu * fVidRatePopUp;
- BMenuField * fVidRateMenu;
- BPopUpMenu * fVidEncoderPopUp;
- BMenuField * fVidEncoderMenu;
- BStringView * fVidQualityString;
- BRadioButton * fVidTargetRadio;
- BTextControl * fVidTargetControl;
- BRadioButton * fVidAverageRadio;
- BTextControl * fVidAverageControl;
- BRadioButton * fVidConstantRadio;
- BSlider * fVidConstantSlider;
- BCheckBox * fVidGrayCheck;
- BCheckBox * fVidTwoPassCheck;
-
- BPopUpMenu * fSubPopUp;
- BMenuField * fSubMenu;
-
- BPopUpMenu * fAudLang1PopUp;
- BMenuField * fAudLang1Menu;
- BPopUpMenu * fAudLang2PopUp;
- BMenuField * fAudLang2Menu;
- BPopUpMenu * fAudRatePopUp;
- BMenuField * fAudRateMenu;
- BPopUpMenu * fAudBitratePopUp;
- BMenuField * fAudBitrateMenu;
-
- BButton * fPictureButton;
-
- BStatusBar * fProgressBar;
- BCheckBox * fQueueCheck;
- BButton * fAddButton;
- BButton * fShowButton;
- BButton * fPauseButton;
- BButton * fRipButton;
-
- BFilePanel * fFilePanel;
- PicWindow * fPicWin;
- QueueWindow * fQueueWin;
-};
-
-class MainWindow : public BWindow
-{
- public:
- MainWindow( hb_handle_t * handle );
- void MessageReceived( BMessage * msg );
- bool QuitRequested();
-
- void Update( hb_state_t * s );
-
- private:
- MainView * fView;
-
- hb_handle_t * fHandle;
-};
-
-#endif
diff --git a/beos/PicWindow.cpp b/beos/PicWindow.cpp
deleted file mode 100644
index 6b30f27c2..000000000
--- a/beos/PicWindow.cpp
+++ /dev/null
@@ -1,369 +0,0 @@
-#include <app/Application.h>
-#include <interface/Bitmap.h>
-#include <interface/Box.h>
-#include <interface/Button.h>
-#include <interface/CheckBox.h>
-#include <interface/RadioButton.h>
-#include <interface/Screen.h>
-#include <interface/StringView.h>
-
-#include "PicWindow.h"
-#include "Stepper.h"
-
-#define MSG_PREV 'prev'
-#define MSG_NEXT 'next'
-#define MSG_CLOSE 'clos'
-#define MSG_WIDTH 'widt'
-#define MSG_HEIGHT 'heig'
-#define MSG_RADIO 'radi'
-
-PicView::PicView( hb_handle_t * handle, int index )
- : BView( BRect( 0,0,10,10 ), NULL, B_FOLLOW_NONE, B_WILL_DRAW )
-{
- fHandle = handle;
-
- /* Get the title and the job */
- hb_list_t * list;
- list = hb_get_titles( fHandle );
- fTitle = (hb_title_t *) hb_list_item( list, index );
- fJob = fTitle->job;
-
- /* We'll start with the first picture */
- fIndex = 0;
-
- /* Allocate a buffer large enough to call hb_get_preview() later */
- fRawPic = (uint8_t *) malloc( ( fTitle->width + 2 ) *
- ( fTitle->height + 2 ) * 4 );
-
- /* Create the RGB BBitmap we'll use to display */
- fBitmap = new BBitmap( BRect( 0, 0, fTitle->width + 1,
- fTitle->height + 1 ), 0, B_RGB32 );
-
- /* Now build the interface */
- BRect r, b;
- BBox * box;
- BButton * button;
- BStringView * stringView;
-
- /* Resize ourselves so the picture fits just fine */
- b = fBitmap->Bounds();
- ResizeTo( b.Width()+170, b.Height()+65 );
-
- /* Now build the UI around the BBitmap */
- SetViewColor( ui_color( B_PANEL_BACKGROUND_COLOR ) );
-
- /* "Size" box */
- b = Bounds();
- r = BRect( b.right-150,10,b.right-10,105 );
- box = new BBox( r );
- box->SetLabel( "Size" );
- AddChild( box );
-
- b = box->Bounds();
-
- /* Width */
- r = BRect( 10,15,b.right/2,35 );
- stringView = new BStringView( r, NULL, "Width:" );
- box->AddChild( stringView );
- r = BRect( b.right/2+1,15,b.right-10,35 );
- fWidthStepper = new HBStepper( r, 16, 16, fTitle->width,
- fJob->width, new BMessage( MSG_WIDTH ) );
- box->AddChild( fWidthStepper );
-
- /* Height */
- r = BRect( 10,40,b.right/2,60 );
- stringView = new BStringView( r, NULL, "Height:" );
- box->AddChild( stringView );
- r = BRect( b.right/2+1,40,b.right-10,60 );
- fHeightStepper = new HBStepper( r, 16, 16, fTitle->height,
- fJob->height, new BMessage( MSG_HEIGHT ) );
- box->AddChild( fHeightStepper );
-
- /* Aspect ratio */
- r = BRect( 10,65,b.right-10,85 );
- fRatioCheck = new BCheckBox( r, NULL, "Keep aspect ratio",
- new BMessage( MSG_WIDTH ) );
- fRatioCheck->SetValue( fJob->keep_ratio );
- box->AddChild( fRatioCheck );
-
- /* "Crop" box */
- b = Bounds();
- r = BRect( b.right-150,115,b.right-10,260 );
- box = new BBox( r );
- box->SetLabel( "Crop" );
- AddChild( box );
-
- b = box->Bounds();
-
- /* Automatic */
- r = BRect( 10,15,b.right-10,35 );
- fAutoRadio = new BRadioButton( r, NULL, "Automatic",
- new BMessage( MSG_RADIO ) );
- box->AddChild( fAutoRadio );
-
- /* Custom */
- r = BRect( 10,40,b.right-10,60 );
- fCustomRadio = new BRadioButton( r, NULL, "Custom:",
- new BMessage( MSG_RADIO ) );
- box->AddChild( fCustomRadio );
- float width = ( b.Width() - 30 ) / 2;
- r = BRect( (b.right-width)/2,65,(b.right+width)/2,85 );
- fCropSteppers[0] = new HBStepper( r, 2, 0, fTitle->height/2-2,
- fJob->crop[0], new BMessage( MSG_WIDTH ) );
- box->AddChild( fCropSteppers[0] );
- r = BRect( (b.right-width)/2,115,(b.right+width)/2,135 );
- fCropSteppers[1] = new HBStepper( r, 2, 0, fTitle->height/2-2,
- fJob->crop[1], new BMessage( MSG_WIDTH ) );
- box->AddChild( fCropSteppers[1] );
- r = BRect( 10,90,10+width,110 );
- fCropSteppers[2] = new HBStepper( r, 2, 0, fTitle->width/2-2,
- fJob->crop[2], new BMessage( MSG_HEIGHT ) );
- box->AddChild( fCropSteppers[2] );
- r = BRect( width+20,90,b.right-10,110 );
- fCropSteppers[3] = new HBStepper( r, 2, 0, fTitle->width/2-2,
- fJob->crop[3], new BMessage( MSG_HEIGHT ) );
- box->AddChild( fCropSteppers[3] );
-
- if( memcmp( fTitle->crop, fJob->crop, 4 * sizeof( int ) ) )
- {
- fCustomRadio->SetValue( 1 );
- }
- else
- {
- fAutoRadio->SetValue( 1 );
- }
-
- /* "Misc" box */
- b = Bounds();
- r = BRect( b.right-150,270,b.right-10,315 );
- box = new BBox( r );
- box->SetLabel( "Misc" );
- AddChild( box );
-
- b = box->Bounds();
-
- /* Deinterlace */
- r = BRect( 10,15,b.right-10,35 );
- fDeintCheck = new BCheckBox( r, NULL, "Deinterlace picture",
- new BMessage( MSG_WIDTH ) );
- fDeintCheck->SetValue( fJob->deinterlace );
- box->AddChild( fDeintCheck );
-
- b = Bounds();
-
- /* Next/Prev buttons */
- r = BRect( b.right-90,325,b.right-10,350 );
- fPrevButton = new BButton( r, NULL, "Previous",
- new BMessage( MSG_PREV ) );
- AddChild( fPrevButton );
- r = BRect( b.right-90,355,b.right-10,380 );
- fNextButton = new BButton( r, NULL, "Next",
- new BMessage( MSG_NEXT ) );
- AddChild( fNextButton );
-
- /* Info string and OK button */
- r = BRect( 10,b.bottom-30,b.right-100,b.bottom-10 );
- fInfoString = new BStringView( r, NULL, "" );
- AddChild( fInfoString );
- r = BRect( b.right-90,b.bottom-35,b.right-10,b.bottom-10 );
- button = new BButton( r, NULL, "OK", new BMessage( MSG_CLOSE ) );
- AddChild( button );
-
- /* Process and draw a first picture */
- RadioChanged();
- UpdateBitmap();
-}
-
-PicView::~PicView()
-{
- free( fRawPic );
- delete fBitmap;
-}
-
-/************************************************************************
- * PicView::Draw
- ************************************************************************
- * Calls the inherited BView::Draw, plus draws the BBitmap preview
- * and the horizontal line above the info string and OK button
- ***********************************************************************/
-void PicView::Draw( BRect rect )
-{
- BRect b;
-
- BView::Draw( rect );
-
- if( LockLooper() )
- {
- b = fBitmap->Bounds();
- DrawBitmap( fBitmap, BRect( 10,10,b.Width()+10,b.Height()+10 ) );
- UnlockLooper();
- }
-
- b = Bounds();
- SetHighColor( 128,128,128 );
- StrokeLine( BPoint( 10,b.bottom-45 ), BPoint( b.right-10,b.bottom-45 ) );
- SetHighColor( 255,255,255 );
- StrokeLine( BPoint( 10,b.bottom-44 ), BPoint( b.right-10,b.bottom-44 ) );
-}
-
-void PicView::HandleMessage( BMessage * msg )
-{
- switch( msg->what )
- {
- case MSG_PREV:
- fIndex--;
- UpdateBitmap();
- break;
-
- case MSG_NEXT:
- fIndex++;
- UpdateBitmap();
- break;
-
- case MSG_WIDTH:
- case MSG_HEIGHT:
- UpdateSettings( msg->what );
- UpdateBitmap();
- break;
-
- case MSG_RADIO:
- RadioChanged();
- break;
-
- }
-}
-
-void PicView::RadioChanged()
-{
- int cus = fCustomRadio->Value();
- for( int i = 0; i < 4; i++ )
- {
- fCropSteppers[i]->SetEnabled( cus );
- }
- if( !cus )
- {
- memcpy( fJob->crop, fTitle->crop, 4 * sizeof( int ) );
- for( int i = 0; i < 4; i++ )
- {
- fCropSteppers[i]->SetValue( fJob->crop[i] );
- }
- UpdateSettings( MSG_WIDTH );
- UpdateBitmap();
- }
-}
-
-void PicView::UpdateSettings( uint32 what )
-{
- fJob->width = fWidthStepper->Value();
- fJob->height = fHeightStepper->Value();
- fJob->keep_ratio = fRatioCheck->Value();
- fJob->deinterlace = fDeintCheck->Value();
- for( int i = 0; i < 4; i++ )
- {
- fJob->crop[i] = fCropSteppers[i]->Value();
- }
-
- if( fJob->keep_ratio )
- {
- if( what == MSG_WIDTH )
- {
- hb_fix_aspect( fJob, HB_KEEP_WIDTH );
- if( fJob->height > fTitle->height )
- {
- fJob->height = fTitle->height;
- hb_fix_aspect( fJob, HB_KEEP_HEIGHT );
- }
- }
- else
- {
- hb_fix_aspect( fJob, HB_KEEP_HEIGHT );
- if( fJob->width > fTitle->width )
- {
- fJob->width = fTitle->width;
- hb_fix_aspect( fJob, HB_KEEP_WIDTH );
- }
- }
- }
-
- fWidthStepper->SetValue( fJob->width );
- fHeightStepper->SetValue( fJob->height );
-}
-
-void PicView::UpdateBitmap()
-{
- /* Sanity checks */
- if( fIndex < 0 )
- {
- fIndex = 0;
- return;
- }
- if( fIndex > 9 )
- {
- fIndex = 9;
- return;
- }
-
- /* Enable/disable buttons */
- fPrevButton->SetEnabled( fIndex > 0 );
- fNextButton->SetEnabled( fIndex < 9 );
-
- /* Get new preview and copy it in our BBitmap */
- hb_get_preview( fHandle, fTitle, fIndex, fRawPic );
- for( int i = 0; i < fTitle->height + 2; i++ )
- {
- memcpy( ( (uint8_t *) fBitmap->Bits() ) +
- i * fBitmap->BytesPerRow(),
- fRawPic + 4 * ( fTitle->width + 2 ) * i,
- 4 * ( fTitle->width + 2 ) );
- }
-
- /* Update size info */
- char text[1024];
- snprintf( text, 1024, "Source: %dx%d, output: %dx%d",
- fTitle->width, fTitle->height,
- fJob->width, fJob->height );
- fInfoString->SetText( text );
-
- /* Force redraw */
- Draw( Bounds() );
-}
-
-PicWindow::PicWindow( hb_handle_t * handle, int index )
- : BWindow( BRect( 0,0,10,10 ), "Picture settings",
- B_FLOATING_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL,
- B_NOT_CLOSABLE | B_NOT_RESIZABLE | B_NOT_ZOOMABLE )
-{
- /* Add the PicView */
- fView = new PicView( handle, index );
- AddChild( fView );
-
- /* Resize to fit */
- ResizeTo( fView->Bounds().Width(), fView->Bounds().Height() );
-
- /* Center */
- BScreen screen;
- MoveTo( ( screen.Frame().Width() - fView->Bounds().Width() ) / 2,
- ( screen.Frame().Height() - fView->Bounds().Height() ) / 2 );
-}
-
-void PicWindow::MessageReceived( BMessage * msg )
-{
- switch( msg->what )
- {
- case MSG_PREV:
- case MSG_NEXT:
- case MSG_WIDTH:
- case MSG_HEIGHT:
- case MSG_RADIO:
- fView->HandleMessage( msg );
- break;
-
- case MSG_CLOSE:
- Lock();
- Quit();
- break;
-
- default:
- BWindow::MessageReceived( msg );
- }
-}
diff --git a/beos/PicWindow.h b/beos/PicWindow.h
deleted file mode 100644
index 9fe5d3131..000000000
--- a/beos/PicWindow.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef PICWINDOW_H
-#define PICWINDOW_H
-
-#include <interface/Window.h>
-#include <interface/View.h>
-
-#include "hb.h"
-
-class HBStepper;
-
-class PicView : public BView
-{
- public:
- PicView( hb_handle_t * handle, int index );
- ~PicView();
- void Draw( BRect rect );
-
- void HandleMessage( BMessage * msg );
-
- private:
- void UpdateBitmap();
- void RadioChanged();
- void UpdateSettings( uint32 what );
-
- hb_handle_t * fHandle;
- hb_title_t * fTitle;
- hb_job_t * fJob;
- int fIndex;
- uint8_t * fRawPic;
- BBitmap * fBitmap;
-
- HBStepper * fWidthStepper;
- HBStepper * fHeightStepper;
- BCheckBox * fRatioCheck;
- BRadioButton * fAutoRadio;
- BRadioButton * fCustomRadio;
- HBStepper * fCropSteppers[4];
- BCheckBox * fDeintCheck;
- BButton * fPrevButton;
- BButton * fNextButton;
- BStringView * fInfoString;
-};
-
-class PicWindow : public BWindow
-{
- public:
- PicWindow( hb_handle_t * handle, int index );
- void MessageReceived( BMessage * msg );
-
- private:
- PicView * fView;
-};
-
-#endif
diff --git a/beos/QueueWindow.cpp b/beos/QueueWindow.cpp
deleted file mode 100644
index 2b0319e32..000000000
--- a/beos/QueueWindow.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-#include <app/Message.h>
-#include <interface/Button.h>
-#include <interface/Screen.h>
-#include <interface/ScrollView.h>
-#include <interface/StringView.h>
-
-#include "QueueWindow.h"
-
-#define MSG_REMOVE 'remo'
-#define MSG_CLOSE 'clos'
-
-QueueView::QueueView( hb_handle_t * handle )
- : BView( BRect( 0,0,500,300 ), NULL, B_FOLLOW_NONE, B_WILL_DRAW )
-{
- fHandle = handle;
-
- BRect b = Bounds(), r;
-
- r = BRect( b.right-90,b.bottom-35,b.right-10,b.bottom-10 );
- BButton * button = new BButton( r, NULL, "Close", new BMessage( MSG_CLOSE ) );
- AddChild( button );
-
- fScrollView = NULL;
- UpdateQueue();
-}
-
-QueueView::~QueueView()
-{
-}
-
-void QueueView::HandleMessage( BMessage * msg )
-{
- switch( msg->what )
- {
- case MSG_REMOVE:
- break;
- }
-}
-
-void QueueView::AddStringView( char * string, BRect * r )
-{
- BStringView * stringView;
-
- stringView = new BStringView( *r, NULL, string );
- fQueueView->AddChild( stringView );
- free( string );
-
- r->top += 20;
- r->bottom += 20;
-}
-
-void QueueView::UpdateQueue()
-{
- BRect b = Bounds(), r;
-
- if( fScrollView )
- {
- RemoveChild( fScrollView );
- delete fScrollView;
- }
-
- r = BRect( b.left+10,b.top+10,b.right-B_V_SCROLL_BAR_WIDTH-10,b.bottom-45 );
- fQueueView = new BView( r, NULL, B_FOLLOW_NONE, B_WILL_DRAW );
- fScrollView = new BScrollView( NULL, fQueueView, B_FOLLOW_NONE, 0,
- false, true, B_FANCY_BORDER );
- AddChild( fScrollView );
-
- hb_job_t * j;
- hb_title_t * t;
- int i;
- char * s;
-
- b = fQueueView->Bounds();
- r = BRect( b.left+10,b.top+10,b.right-10,b.top+25 );
-
- for( i = 0; i < hb_count( fHandle ); i++ )
- {
- j = hb_job( fHandle, i );
- t = j->title;
-
- asprintf( &s, "DVD: %s", t->dvd );
- AddStringView( s, &r );
-
- asprintf( &s, "Title: %d", t->index );
- AddStringView( s, &r );
-
- asprintf( &s, "Chapters: %d to %d", j->chapter_start, j->chapter_end );
- AddStringView( s, &r );
-
- asprintf( &s, "Pass: %d of %d", MAX( 1, j->pass ), MIN( 2, j->pass + 1 ) );
- AddStringView( s, &r );
-
- asprintf( &s, "Destination: %s", j->file );
- AddStringView( s, &r );
- }
-}
-
-QueueWindow::QueueWindow( hb_handle_t * handle )
- : BWindow( BRect( 0,0,10,10 ), "Queue",
- B_FLOATING_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL,
- B_NOT_CLOSABLE | B_NOT_RESIZABLE | B_NOT_ZOOMABLE )
-{
- /* Add the QueueView */
- fView = new QueueView( handle );
- AddChild( fView );
-
- /* Resize to fit */
- ResizeTo( fView->Bounds().Width(), fView->Bounds().Height() );
-
- /* Center */
- BScreen screen;
- MoveTo( ( screen.Frame().Width() - fView->Bounds().Width() ) / 2,
- ( screen.Frame().Height() - fView->Bounds().Height() ) / 2 );
-}
-
-void QueueWindow::MessageReceived( BMessage * msg )
-{
- switch( msg->what )
- {
- case MSG_REMOVE:
- fView->HandleMessage( msg );
- break;
-
- case MSG_CLOSE:
- Lock();
- Quit();
- break;
-
- default:
- BWindow::MessageReceived( msg );
- }
-}
diff --git a/beos/QueueWindow.h b/beos/QueueWindow.h
deleted file mode 100644
index e9b86e3a7..000000000
--- a/beos/QueueWindow.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef QUEUE_WINDOW_H
-#define QUEUE_WINDOW_H
-
-#include <interface/Window.h>
-#include <interface/View.h>
-
-#include "hb.h"
-
-class QueueView : public BView
-{
- public:
- QueueView( hb_handle_t * handle );
- ~QueueView();
-
- void HandleMessage( BMessage * msg );
-
- private:
- void AddStringView( char * string, BRect * r );
- void UpdateQueue();
-
- hb_handle_t * fHandle;
-
- BScrollView * fScrollView;
- BView * fQueueView;
- BButton * fCloseButton;
-};
-
-class QueueWindow : public BWindow
-{
- public:
- QueueWindow( hb_handle_t * handle );
- void MessageReceived( BMessage * msg );
-
- private:
- QueueView * fView;
-};
-
-#endif
diff --git a/beos/ScanWindow.cpp b/beos/ScanWindow.cpp
deleted file mode 100644
index 615731f11..000000000
--- a/beos/ScanWindow.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
-#include <drivers/Drivers.h>
-#include <interface/Box.h>
-#include <interface/Button.h>
-#include <interface/MenuField.h>
-#include <interface/MenuItem.h>
-#include <interface/PopUpMenu.h>
-#include <interface/RadioButton.h>
-#include <interface/Screen.h>
-#include <interface/StatusBar.h>
-#include <interface/StringView.h>
-#include <interface/TextControl.h>
-#include <kernel/fs_info.h>
-#include <storage/FilePanel.h>
-#include <storage/Path.h>
-#include <storage/Query.h>
-#include <storage/VolumeRoster.h>
-#include <sys/ioctl.h>
-
-#include "ScanWindow.h"
-
-#define MSG_RADIO 'radi'
-#define MSG_BROWSE 'brow'
-#define MSG_CANCEL 'canc'
-#define MSG_OPEN 'open'
-
-ScanView::ScanView( hb_handle_t * handle )
- : BView( BRect( 0,0,400,215 ), NULL, B_FOLLOW_NONE, B_WILL_DRAW )
-{
- fHandle = handle;
-
- BRect r, b;
- BBox * box;
- BStringView * stringView;
-
- SetViewColor( ui_color( B_PANEL_BACKGROUND_COLOR ) );
-
- b = Bounds();
-
- r = BRect( 10,10,b.right-10,130 );
- box = new BBox( r );
- AddChild( box );
-
- b = box->Bounds();
-
- r = BRect( 10,10,b.right-10,30 );
- stringView = new BStringView( r, NULL, "Select a DVD:" );
- box->AddChild( stringView );
-
- r = BRect( 10,35,b.right/2,55 );
- fDetectedRadio = new BRadioButton( r, NULL, "Detected volume",
- new BMessage( MSG_RADIO ) );
- box->AddChild( fDetectedRadio );
-
- r = BRect( b.right/2+1,35,b.right-10,55 );
- fPopUp = new BPopUpMenu( "No volume detected" );
- fMenu = new BMenuField( r, NULL, "", fPopUp, true );
- fMenu->SetDivider( 0 );
- box->AddChild( fMenu );
-
- r = BRect( 10,60,b.right/2,80 );
- fFolderRadio = new BRadioButton( r, NULL, "DVD Folder / Image",
- new BMessage( MSG_RADIO ) );
- box->AddChild( fFolderRadio );
-
- r = BRect( b.right/2+1,60,b.right-10,80 );
- fControl = new BTextControl( r, NULL, "", "", new BMessage() );
- fControl->SetDivider( 0 );
- box->AddChild( fControl );
-
- r = BRect( b.right-90,85,b.right-10,110 );
- fBrowseButton = new BButton( r, NULL, "Browse",
- new BMessage( MSG_BROWSE ) );
- box->AddChild( fBrowseButton );
-
- b = Bounds();
-
- r = BRect( 10,b.bottom-75,b.right-10,b.bottom-45 );
- fBar = new BStatusBar( r, NULL, NULL, NULL );
- AddChild( fBar );
-
- r = BRect( b.right-180,b.bottom-35,b.right-100,b.bottom-10 );
- fCancelButton = new BButton( r, NULL, "Cancel",
- new BMessage( MSG_CANCEL ) );
- AddChild( fCancelButton );
-
- r = BRect( b.right-90,b.bottom-35,b.right-10,b.bottom-10 );
- fOpenButton = new BButton( r, NULL, "Open", new BMessage( MSG_OPEN ) );
- AddChild( fOpenButton );
-
- DetectVolumes();
-
- if( fPopUp->CountItems() > 0 )
- {
- fDetectedRadio->SetValue( true );
- }
- else
- {
- fFolderRadio->SetValue( true );
- }
- RadioChanged();
-
- fFilePanel = NULL;
-}
-
-void ScanView::HandleMessage( BMessage * msg )
-{
- switch( msg->what )
- {
- case MSG_RADIO:
- RadioChanged();
- break;
-
- case MSG_BROWSE:
- if( !fFilePanel )
- {
- fFilePanel = new BFilePanel( B_OPEN_PANEL,
- new BMessenger( Window() ), NULL,
- B_FILE_NODE | B_DIRECTORY_NODE, false, NULL, NULL,
- true );
- }
- fFilePanel->Show();
- break;
-
- case B_REFS_RECEIVED:
- {
- entry_ref ref;
- if( msg->FindRef( "refs", 0, &ref ) == B_OK )
- {
- BPath * path = new BPath( &ref );
- fControl->SetText( path->Path());
- }
- break;
- }
-
- case MSG_CANCEL:
- Window()->Hide();
- break;
-
- case MSG_OPEN:
- SetEnabled( false );
- fBar->Update( - fBar->CurrentValue(), "Opening..." );
- if( fDetectedRadio->Value() && fPopUp->CountItems() > 0 )
- {
- hb_scan( fHandle, fPopUp->FindMarked()->Label(), 0 );
- }
- else if( fFolderRadio->Value() )
- {
- hb_scan( fHandle, fControl->Text(), 0 );
- }
- break;
- }
-}
-
-void ScanView::Update( hb_state_t * s )
-{
- if( !LockLooper() )
- {
- return;
- }
-
- switch( s->state )
- {
-#define p s->param.scanning
- case HB_STATE_SCANNING:
- {
- char text[1024];
- snprintf( text, 1024, "Scanning title %d of %d...", p.title_cur,
- p.title_count );
- fBar->Update( fBar->MaxValue() * ( - 0.5 + p.title_cur ) /
- p.title_count - fBar->CurrentValue(), text );
- break;
- }
-#undef p
-
- case HB_STATE_SCANDONE:
- /* If we are still here, then no title was found */
- fBar->Update( - fBar->CurrentValue(),
- "No valid title found." );
- SetEnabled( true );
- break;
- }
-
- UnlockLooper();
-}
-
-void ScanView::RadioChanged()
-{
- bool b = fDetectedRadio->Value();
- fMenu->SetEnabled( b );
- fControl->SetEnabled( !b );
- fBrowseButton->SetEnabled( !b );
- fOpenButton->SetEnabled( !b || ( fPopUp->CountItems() > 0 ) );
-}
-
-void ScanView::SetEnabled( bool b )
-{
- fDetectedRadio->SetEnabled( b );
- fMenu->SetEnabled( b );
- fFolderRadio->SetEnabled( b );
- fControl->SetEnabled( b );
- fBrowseButton->SetEnabled( b );
- fOpenButton->SetEnabled( b );
-
- if( b )
- {
- RadioChanged();
- }
-}
-
-void ScanView::DetectVolumes()
-{
- BVolumeRoster * roster = new BVolumeRoster();
- BVolume * volume = new BVolume();
- fs_info info;
- int device;
- device_geometry geometry;
-
- while( roster->GetNextVolume( volume ) == B_NO_ERROR )
- {
- /* open() and ioctl() for more informations */
- fs_stat_dev( volume->Device(), &info );
- if( ( device = open( info.device_name, O_RDONLY ) ) < 0 )
- {
- continue;
- }
-
- if( ioctl( device, B_GET_GEOMETRY, &geometry,
- sizeof( geometry ) ) < 0 )
- {
- continue;
- }
-
- /* Get the volume name */
- char volumeName[B_FILE_NAME_LENGTH];
- volume->GetName( volumeName );
-
- if( volume->IsReadOnly() && geometry.device_type == B_CD )
- {
- /* May be a DVD */
- fPopUp->AddItem( new BMenuItem( info.device_name, NULL ) );
- }
- else if( geometry.device_type == B_DISK )
- {
- /* May be a hard drive. Look for VIDEO_TS folders on it */
- BQuery * query = new BQuery();
-
- if( query->SetVolume( volume ) != B_OK )
- {
- delete query;
- continue;
- }
-
- if( query->SetPredicate( "name = VIDEO_TS.IFO" ) != B_OK )
- {
- delete query;
- continue;
- }
-
- query->Fetch();
-
- BEntry entry, parentEntry;
- BPath path;
- while( query->GetNextEntry( &entry ) == B_OK )
- {
- entry.GetParent( &parentEntry );
- parentEntry.GetPath( &path );
-
- fPopUp->AddItem( new BMenuItem( path.Path(), NULL ) );
- }
-
- delete query;
- }
- }
-
- if( fPopUp->CountItems() > 0 )
- {
- fPopUp->ItemAt( 0 )->SetMarked( true );
- }
-}
-
-ScanWindow::ScanWindow( hb_handle_t * handle )
- : BWindow( BRect( 0,0,10,10 ), "Scan", B_FLOATING_WINDOW_LOOK,
- B_MODAL_SUBSET_WINDOW_FEEL, B_NOT_CLOSABLE |
- B_NOT_RESIZABLE | B_NOT_ZOOMABLE )
-{
- /* Add the scan view */
- fView = new ScanView( handle );
- AddChild( fView );
-
- /* Resize to fit */
- ResizeTo( fView->Bounds().Width(), fView->Bounds().Height() );
-
- /* Center */
- BScreen screen;
- MoveTo( ( screen.Frame().Width() - fView->Bounds().Width() ) / 2,
- ( screen.Frame().Height() - fView->Bounds().Height() ) / 2 );
-}
-
-void ScanWindow::MessageReceived( BMessage * msg )
-{
- switch( msg->what )
- {
- case MSG_RADIO:
- case MSG_BROWSE:
- case MSG_CANCEL:
- case MSG_OPEN:
- case B_REFS_RECEIVED:
- fView->HandleMessage( msg );
- break;
-
- default:
- BWindow::MessageReceived( msg );
- }
-}
-
-void ScanWindow::Update( hb_state_t * s )
-{
- fView->Update( s );
-}
-
diff --git a/beos/ScanWindow.h b/beos/ScanWindow.h
deleted file mode 100644
index f46c1c14f..000000000
--- a/beos/ScanWindow.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef SCANWINDOW_H
-#define SCANWINDOW_H
-
-#include <interface/Window.h>
-#include <interface/View.h>
-
-#include "hb.h"
-
-class BButton;
-class BMenuField;
-class BPopUpMenu;
-class BRadioButton;
-class BStatusBar;
-class BTextControl;
-
-class ScanView : public BView
-{
- public:
- ScanView( hb_handle_t * handle );
-
- void HandleMessage( BMessage * msg );
- void Update( hb_state_t * s );
- void RadioChanged();
- void SetEnabled( bool );
-
- private:
- void DetectVolumes();
-
- hb_handle_t * fHandle;
-
- BRadioButton * fDetectedRadio;
- BPopUpMenu * fPopUp;
- BMenuField * fMenu;
- BRadioButton * fFolderRadio;
- BTextControl * fControl;
- BButton * fBrowseButton;
- BStatusBar * fBar;
- BButton * fCancelButton;
- BButton * fOpenButton;
-
- BFilePanel * fFilePanel;
-};
-
-class ScanWindow : public BWindow
-{
- public:
- ScanWindow( hb_handle_t * handle );
- void MessageReceived( BMessage * msg );
-
- void Update( hb_state_t * s );
-
- private:
- ScanView * fView;
-};
-
-#endif
diff --git a/beos/Stepper.cpp b/beos/Stepper.cpp
deleted file mode 100644
index 8f2733ac5..000000000
--- a/beos/Stepper.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-#include <interface/Region.h>
-#include <interface/TextControl.h>
-#include <interface/Window.h>
-
-#include "Stepper.h"
-
-#include <stdio.h>
-
-HBStepper::HBStepper( BRect rect, int step, int min, int max, int val,
- BMessage * message )
- : BView( rect, NULL, B_FOLLOW_NONE, B_WILL_DRAW )
-{
- fStep = step;
- fMin = min;
- fMax = max;
- fMessage = message;
-
- BRect b = Bounds();
-
- fEnabled = true;
-
- fControl = new BTextControl( BRect( 0,1,b.Width()-14,b.Height()-1 ),
- NULL, NULL, "", new BMessage() );
- fControl->SetDivider( 0.0 );
- fControl->TextView()->MakeEditable( false );
- AddChild( fControl );
-
- SetValue( val );
-}
-
-void HBStepper::Draw( BRect rect )
-{
- /* Why do we have to do this here!? */
- fControl->TextView()->MakeEditable( false );
- fControl->TextView()->MakeSelectable( false );
-
- BRect b = Bounds();
- BRegion region;
-
- SetHighColor( 128,128,128 ); /* Dark gray */
- region.MakeEmpty();
- region.Include( BRect( 3, 0,10, 0 ) );
- region.Include( BRect( 2, 1, 3, 1 ) );
- region.Include( BRect( 10, 1,11, 1 ) );
- region.Include( BRect( 1, 2, 2, 2 ) );
- region.Include( BRect( 11, 2,12, 2 ) );
- region.Include( BRect( 1, 2, 1,18 ) );
- region.Include( BRect( 1,10,12,10 ) );
- region.Include( BRect( 12, 2,12,18 ) );
- region.Include( BRect( 1,18, 2,18 ) );
- region.Include( BRect( 11,18,12,18 ) );
- region.Include( BRect( 2,19, 3,19 ) );
- region.Include( BRect( 10,19,11,19 ) );
- region.Include( BRect( 3,20,10,20 ) );
- region.OffsetBy( b.Width()-12,0 );
- FillRegion( &region );
-
- SetHighColor( 0,0,0 ); /* Black */
- region.MakeEmpty();
- region.Include( BRect( 6, 4, 7, 4 ) );
- region.Include( BRect( 5, 5, 8, 6 ) );
- region.Include( BRect( 5,14, 8,15 ) );
- region.Include( BRect( 6,16, 7,16 ) );
- region.OffsetBy( b.Width()-12,0 );
- FillRegion( &region );
-
- BView::Draw( rect );
-}
-
-void HBStepper::AttachedToWindow()
-{
- if( Parent() )
- {
- SetViewColor( Parent()->ViewColor() );
- }
-}
-
-void HBStepper::MouseDown( BPoint point )
-{
- BRect r, b = Bounds();
-
- if( !fEnabled )
- {
- return;
- }
-
- BMessenger messenger( Window() );
-
- r = BRect( 2,1,11,9 );
- r.OffsetBy( b.Width()-12,0 );
- if( r.Contains( point ) )
- {
- SetValue( fValue + fStep );
- messenger.SendMessage( fMessage );
- }
- r.OffsetBy( 0,10 );
- if( r.Contains( point ) )
- {
- SetValue( fValue - fStep );
- messenger.SendMessage( fMessage );
- }
-}
-
-void HBStepper::SetValue( int val )
-{
- fValue = val;
- if( fValue < fMin )
- {
- fValue = fMin;
- }
- if( fValue > fMax )
- {
- fValue = fMax;
- }
-
- char text[16];
- snprintf( text, 16, "%d", fValue );
- fControl->SetText( text );
-}
-
-int HBStepper::Value()
-{
- return fValue;
-}
-
-void HBStepper::SetEnabled( bool e )
-{
- fEnabled = e;
- fControl->SetEnabled( fEnabled );
-}
diff --git a/beos/Stepper.h b/beos/Stepper.h
deleted file mode 100644
index 2b0493f6e..000000000
--- a/beos/Stepper.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef STEPPER_H
-#define STEPPER_H
-
-#include <interface/View.h>
-
-class BTextControl;
-
-class HBStepper : public BView
-{
- public:
- HBStepper( BRect rect, int step, int min, int max, int val,
- BMessage * message );
- void Draw( BRect rect );
- void AttachedToWindow();
- void MouseDown( BPoint point );
- void SetValue( int val );
- int Value();
- void SetEnabled( bool e );
-
- private:
- int fStep;
- int fMin;
- int fMax;
- int fValue;
- BMessage * fMessage;
-
- bool fEnabled;
- BTextControl * fControl;
-};
-
-#endif