aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Campus.jpgbin0 -> 4836 bytes
-rw-r--r--Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/MPEGPlay.dpr26
-rw-r--r--Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Main.dfmbin0 -> 1314 bytes
-rw-r--r--Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Main.pas91
-rw-r--r--Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Main.xfm106
-rw-r--r--Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/README.1ST21
-rw-r--r--Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/sdlmpegpanel.pas149
-rw-r--r--Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/video40.dpk33
-rw-r--r--Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/video50.dpk33
-rw-r--r--Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/video60.dpk35
10 files changed, 494 insertions, 0 deletions
diff --git a/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Campus.jpg b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Campus.jpg
new file mode 100644
index 00000000..366d7e91
--- /dev/null
+++ b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Campus.jpg
Binary files differ
diff --git a/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/MPEGPlay.dpr b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/MPEGPlay.dpr
new file mode 100644
index 00000000..a0687f4e
--- /dev/null
+++ b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/MPEGPlay.dpr
@@ -0,0 +1,26 @@
+program MPEGPlay;
+
+{$IFDEF VER140}
+{$DEFINE CLX}
+{$ELSE}
+{$DEFINE VCL}
+{$ENDIF}
+
+uses
+
+{$IFDEF CLX}
+ QForms,
+{$ENDIF}
+{$IFDEF VCL}
+ Forms,
+{$ENDIF}
+ Main in 'Main.pas' {Form1};
+
+{$R *.res}
+
+begin
+ Application.Initialize;
+ Application.CreateForm( TForm1, Form1 );
+ Application.Run;
+end.
+
diff --git a/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Main.dfm b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Main.dfm
new file mode 100644
index 00000000..f881f626
--- /dev/null
+++ b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Main.dfm
Binary files differ
diff --git a/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Main.pas b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Main.pas
new file mode 100644
index 00000000..5c2bd4f5
--- /dev/null
+++ b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Main.pas
@@ -0,0 +1,91 @@
+unit Main;
+
+interface
+
+{$IFDEF UNIX}
+{$DEFINE CLX}
+{$ELSE}
+{$DEFINE VCL}
+{$ENDIF}
+
+uses
+ SysUtils,
+ Classes,
+{$IFDEF CLX}
+ Types,
+ QGraphics,
+ QControls,
+ QForms,
+ QDialogs,
+ QExtCtrls,
+ QStdCtrls,
+{$ENDIF}
+{$IFDEF VCL}
+ Forms,
+ Graphics,
+ Dialogs,
+ StdCtrls,
+ Controls,
+ ExtCtrls,
+{$ENDIF}
+ sdlmpegpanel;
+
+type
+ TForm1 = class( TForm )
+ Panel1 : TPanel;
+ Panel2 : TPanel;
+ Button1 : TButton;
+ Button2 : TButton;
+ Button3 : TButton;
+ Panel3 : TPanel;
+ CheckBox1 : TCheckBox;
+ OpenDialog: TOpenDialog;
+ SDLMPEGPanel: TSDLMPEGPanel;
+ procedure Button1Click( Sender : TObject );
+ procedure Button2Click( Sender : TObject );
+ procedure Button3Click( Sender : TObject );
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ Form1 : TForm1;
+
+implementation
+
+{$IFDEF WIN32}
+{$R *.dfm}
+{$ENDIF}
+
+{$IFDEF UNIX}
+{$R *.xfm}
+{$ENDIF}
+
+procedure TForm1.Button1Click( Sender : TObject );
+begin
+ with OpenDialog do
+ begin
+ if Execute then
+ begin
+ SDLMPEGPanel.MPEGFile := FileName;
+ SDLMPEGPanel.Sound := CheckBox1.Checked;
+ SDLMPEGPanel.Play;
+ end;
+ end;
+end;
+
+procedure TForm1.Button2Click( Sender : TObject );
+begin
+ SDLMPEGPanel.Pause;
+end;
+
+procedure TForm1.Button3Click( Sender : TObject );
+begin
+ SDLMPEGPanel.Stop;
+end;
+
+end.
+
+ \ No newline at end of file
diff --git a/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Main.xfm b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Main.xfm
new file mode 100644
index 00000000..6b581787
--- /dev/null
+++ b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/Main.xfm
@@ -0,0 +1,106 @@
+object Form1: TForm1
+ Left = 377
+ Top = 273
+ Width = 351
+ Height = 308
+ VertScrollBar.Range = 44
+ ActiveControl = Button1
+ AutoScroll = False
+ Caption = 'The Tube'
+ Color = clBackground
+ Font.Color = clText
+ Font.Height = 11
+ Font.Name = 'MS Sans Serif'
+ Font.Pitch = fpVariable
+ Font.Style = []
+ ParentFont = False
+ Position = poScreenCenter
+ PixelsPerInch = 96
+ TextHeight = 18
+ TextWidth = 5
+ object Panel1: TPanel
+ Left = 0
+ Top = 264
+ Width = 351
+ Height = 44
+ Align = alBottom
+ TabOrder = 0
+ object Panel2: TPanel
+ Left = 1
+ Top = 1
+ Width = 282
+ Height = 42
+ Align = alClient
+ BevelOuter = bvNone
+ TabOrder = 0
+ object Button1: TButton
+ Left = 5
+ Top = 21
+ Width = 48
+ Height = 16
+ Caption = 'Play'
+ TabOrder = 0
+ OnClick = Button1Click
+ end
+ object Button2: TButton
+ Left = 57
+ Top = 21
+ Width = 48
+ Height = 16
+ Caption = 'Pause'
+ TabOrder = 1
+ OnClick = Button2Click
+ end
+ object Button3: TButton
+ Left = 109
+ Top = 21
+ Width = 48
+ Height = 16
+ Caption = 'Stop'
+ TabOrder = 2
+ OnClick = Button3Click
+ end
+ object CheckBox1: TCheckBox
+ Left = 5
+ Top = 0
+ Width = 65
+ Height = 20
+ Caption = 'Sound'
+ Checked = True
+ State = cbChecked
+ TabOrder = 3
+ end
+ end
+ object Panel3: TPanel
+ Left = 283
+ Top = 1
+ Width = 67
+ Height = 42
+ Align = alRight
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ BevelOuter = bvNone
+ TabOrder = 1
+ end
+ end
+ object SDLMPEGPanel: TSDLMPEGPanel
+ Left = 0
+ Top = 0
+ Width = 351
+ Height = 264
+ Align = alClient
+ BevelInner = bvRaised
+ BevelOuter = bvLowered
+ Caption = 'You Movie should play here...'
+ TabOrder = 1
+ Sound = False
+ end
+ object OpenDialog: TOpenDialog
+ Filter = 'MPEGs|*.mpeg;*.mpg|All Files|*.*'
+ FilterIndex = 0
+ Height = 0
+ Title = 'Open'
+ Width = 0
+ Left = 40
+ Top = 32
+ end
+end
diff --git a/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/README.1ST b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/README.1ST
new file mode 100644
index 00000000..07e09117
--- /dev/null
+++ b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/README.1ST
@@ -0,0 +1,21 @@
+0. This demo app makes use of SDL Beta 4 from the JEDI group.
+ Their full library is on this companion CD as well.
+
+1. You need to install libSDL-1.2 - www.libsdl.org if it is not already
+ installed on your system
+
+2. You need to install smpeg 0.4.4 - www.lokigames.com if it is not already
+ installed on your system.
+ Once smpeg is installed, navigate to your /usr/lib/ directory via a commandline and
+ create a symbolic link from libsmpeg-0.4.so.0 to libsmpeg.so. This is done
+ with the following command ( assuming you are in /usr/lib/ )...
+ ln -s libsmpeg-0.4.so.0 libsmpeg.so
+
+
+3. Then compile using:
+ dcc video60.dpk - Kylix or D6, video40.dpk - D4, video50 - D5
+ dcc MPEGPlay.dpr
+
+4. Run the app and play some MPEGs.
+
+
diff --git a/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/sdlmpegpanel.pas b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/sdlmpegpanel.pas
new file mode 100644
index 00000000..6e7e87de
--- /dev/null
+++ b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/sdlmpegpanel.pas
@@ -0,0 +1,149 @@
+unit sdlmpegpanel;
+
+interface
+
+{$IFDEF UNIX}
+{$DEFINE CLX}
+{$ELSE}
+{$DEFINE VCL}
+{$ENDIF}
+
+uses
+ SysUtils,
+ Classes,
+{$IFDEF VCL}
+ Graphics,
+ Controls,
+ Forms,
+ Dialogs,
+ ExtCtrls,
+{$ENDIF}
+{$IFDEF CLX}
+ Types,
+ QGraphics,
+ QControls,
+ QForms,
+ QDialogs,
+ QExtCtrls,
+{$ENDIF}
+ sdl,
+ smpeg;
+
+type
+ TSDLMPEGPanel = class( TPanel )
+ private
+ { Private declarations }
+ FSurface : PSDL_Surface;
+ FSMPEGHandle : PSMPEG;
+ FMPEGFile : TFileName;
+ FMPEGInfo : TSMPEG_Info;
+ FPlaying : Boolean;
+ FSound : Integer;
+ function GetSound : Boolean;
+ procedure SetSound( const Value : Boolean );
+ protected
+ { Protected declarations }
+ public
+ { Public declarations }
+ procedure Play;
+ procedure Stop;
+ procedure Pause;
+ published
+ { Published declarations }
+ property MPEGFile : TFileName read FMPEGFile write FMPEGFile;
+ property Sound : Boolean read GetSound write SetSound;
+ end;
+
+procedure Register;
+
+implementation
+
+{$IFDEF CLX}
+uses
+ Libc,
+ Qt;
+{$ENDIF}
+
+procedure TSDLMPEGPanel.Play;
+var
+ EnvVal : string;
+begin
+ if FPlaying then
+ Exit;
+ FPlaying := True;
+
+ if SDL_getenv( 'SDL_WINDOWID' ) = '' then
+ begin
+ {$IFDEF VCL}
+ SDL_putenv( 'SDL_VIDEODRIVER=windib' );
+ EnvVal := 'SDL_WINDOWID=' + inttostr( Integer( Handle ) );
+ {$ENDIF}
+
+ {$IFDEF CLX}
+ EnvVal := 'SDL_WINDOWID=' + inttostr( QWidget_WinId( ChildHandle ) );
+ {$ENDIF}
+
+ SDL_putenv( PChar( EnvVal ) );
+ end;
+
+ if SDL_getenv( 'SDL_VIDEO_YUV_HWACCEL' ) = '' then
+ SDL_putenv( 'SDL_VIDEO_YUV_HWACCEL=0' );
+
+ if SDL_Init( SDL_INIT_VIDEO or SDL_INIT_NOPARACHUTE ) < 0 then
+ raise Exception.Create( 'SDL_Init failed' );
+ {$IFDEF VCL}
+ FSurface := SDL_SetVideoMode( Width, Height, 16, SDL_SWSURFACE );
+ {$ENDIF}
+ {$IFDEF CLX}
+ FSurface := SDL_SetVideoMode( Width, Height, QPixmap_depth( Bitmap.Handle ), SDL_SWSURFACE );
+ {$ENDIF}
+ if FSurface = nil then
+ raise Exception.Create( 'SDL_SetVideoMode failed' );
+
+ FSMPEGHandle := SMPEG_new( PChar( FMPEGFile ), @FMPEGInfo, FSound );
+ if FSMPEGHandle = nil then
+ raise Exception.Create( 'Cannot create MPEG stream' );
+
+ if FSound = 0 then
+ SMPEG_enableaudio( FSMPEGHandle, 0 );
+
+ SMPEG_scaleXY( FSMPEGHandle, Width, Height );
+ SMPEG_setdisplay( FSMPEGHandle, FSurface, nil, nil );
+
+ SMPEG_play( FSMPEGHandle );
+end;
+
+procedure TSDLMPEGPanel.Stop;
+begin
+ if not FPlaying then
+ Exit;
+ FPlaying := False;
+ SMPEG_stop( FSMPEGHandle );
+ SMPEG_delete( FSMPEGHandle );
+ SDL_Quit;
+end;
+
+procedure TSDLMPEGPanel.Pause;
+begin
+ if FPlaying then
+ SMPEG_pause( FSMPEGHandle );
+end;
+
+function TSDLMPEGPanel.GetSound : Boolean;
+begin
+ Result := Boolean( FSound );
+end;
+
+procedure TSDLMPEGPanel.SetSound( const Value : Boolean );
+begin
+ FSound := Integer( Value );
+end;
+
+procedure Register;
+begin
+ RegisterComponents( 'SDL', [ TSDLMPEGPanel ] );
+end;
+
+end.
+
+
diff --git a/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/video40.dpk b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/video40.dpk
new file mode 100644
index 00000000..5af28450
--- /dev/null
+++ b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/video40.dpk
@@ -0,0 +1,33 @@
+package video40;
+
+{$R *.RES}
+{$ALIGN ON}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $00400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ Vcl40;
+
+contains
+ SDLMPEGPanel in 'SDLMPEGPanel.pas';
+
+end.
diff --git a/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/video50.dpk b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/video50.dpk
new file mode 100644
index 00000000..9c5612e4
--- /dev/null
+++ b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/video50.dpk
@@ -0,0 +1,33 @@
+package video50;
+
+{$R *.RES}
+{$ALIGN ON}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ Vcl50;
+
+contains
+ SDLMPEGPanel in 'SDLMPEGPanel.pas';
+
+end.
diff --git a/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/video60.dpk b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/video60.dpk
new file mode 100644
index 00000000..9af38841
--- /dev/null
+++ b/Game/Code/lib/JEDI-SDLv1.0/smpeg/Demos/MpegPlayer/video60.dpk
@@ -0,0 +1,35 @@
+package video60;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+requires
+ rtl,
+ visualclx;
+
+contains
+ SDLMPEGPanel in 'SDLMPEGPanel.pas';
+
+
+
+end. \ No newline at end of file