mplayer: full example from Mike Thompson

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3219 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
mgaertner
2014-06-22 16:14:38 +00:00
parent 8a661dab91
commit 2f8c0cf4e4
6 changed files with 1038 additions and 0 deletions

View File

@ -0,0 +1,687 @@
object frmMain: TfrmMain
Left = 463
Height = 569
Top = 88
Width = 1248
ActiveControl = memResults
Caption = 'frmMain'
ClientHeight = 569
ClientWidth = 1248
OnCreate = FormCreate
LCLVersion = '1.2.4.0'
object pnlVideo: TPanel
Left = 640
Height = 504
Top = 42
Width = 608
Align = alClient
BevelOuter = bvNone
ClientHeight = 504
ClientWidth = 608
TabOrder = 0
object MPlayerControl1: TMPlayerControl
Left = 0
Height = 477
Top = 0
Width = 584
Align = alClient
Loop = 0
Volume = 0
OnFeedback = OnFeedback
OnError = OnError
OnPlaying = OnPlaying
OnPlay = OnPlay
OnStop = OnStop
end
object pnlTrackbar: TPanel
Left = 0
Height = 27
Top = 477
Width = 608
Align = alBottom
BevelOuter = bvNone
ClientHeight = 27
ClientWidth = 608
TabOrder = 1
object pnlPos: TPanel
Left = 502
Height = 27
Top = 0
Width = 106
Align = alRight
BevelOuter = bvNone
ClientHeight = 27
ClientWidth = 106
TabOrder = 0
object lblPos: TLabel
Left = 0
Height = 15
Top = 4
Width = 103
Caption = 'mmm:ss / mmm:ss'
ParentColor = False
end
end
object TrackBarPlaying: TTrackBar
Left = 0
Height = 27
Top = 0
Width = 502
Frequency = 5
OnChange = TrackBarPlayingChange
Position = 0
TickMarks = tmBoth
TickStyle = tsNone
Align = alClient
OnMouseDown = TrackBarPlayingMouseDown
OnMouseUp = TrackBarPlayingMouseUp
TabOrder = 1
end
end
object TrackBarVolume: TTrackBar
AnchorSideLeft.Control = MPlayerControl1
Left = 584
Height = 477
Top = 0
Width = 24
Max = 25
OnChange = TrackBarVolumeChange
Orientation = trVertical
Position = 10
Reversed = True
ScalePos = trBottom
TickMarks = tmBoth
TickStyle = tsNone
Align = alRight
Anchors = []
TabOrder = 2
end
end
object pnlFeedback: TPanel
Left = 0
Height = 504
Top = 42
Width = 635
Align = alLeft
BevelOuter = bvNone
ClientHeight = 504
ClientWidth = 635
TabOrder = 1
object memResults: TMemo
Left = 0
Height = 472
Top = 32
Width = 635
Align = alClient
Color = clBlack
Font.Color = clInfoBk
Lines.Strings = (
''
)
ParentFont = False
ReadOnly = True
ScrollBars = ssAutoBoth
TabOrder = 0
end
object pnlCommands: TPanel
Left = 0
Height = 32
Top = 0
Width = 635
Align = alTop
BevelOuter = bvNone
ClientHeight = 32
ClientWidth = 635
TabOrder = 1
object cboCommand: TComboBox
Left = 12
Height = 23
Top = 5
Width = 524
Anchors = [akTop, akLeft, akRight]
DropDownCount = 15
ItemHeight = 15
ItemIndex = 0
Items.Strings = (
'get_audio_bitrate'
'get_audio_codec'
'get_audio_samples'
'get_file_name'
'get_meta_comment'
'get_time_length'
'get_time_pos'
'get_video_bitrate'
'get_video_codec'
'get_video_resolution'
'mute '
'stop'
'osd [level]'
'osd_show_progression'
'osd_show_text <string> [duration] [level]'
'exit'
'frame_step'
'seek <seconds_From_Start> 2'
'seek <percent> 1'
'screenshot 0'
'speed_mult <value>'
'get_property <property>'
'set_property <property> <value>'
'Available properties:'
''
'name type min max get set step comment'
'================================================================='
''
'osdlevel int 0 3 X X X as -osdlevel'
'speed float 0.01 100 X X X as -speed'
'loop int -1 X X X as -loop'
'pause flag 0 1 X 1 if paused, use with pausing_keep_force'
'filename string X file playing w/o path'
'path string X file playing'
'demuxer string X demuxer used'
'stream_pos pos 0 X X position in stream'
'stream_start pos 0 X start pos in stream'
'stream_end pos 0 X end pos in stream'
'stream_length pos 0 X (end - start)'
'stream_time_pos time 0 X present position in stream (in seconds)'
'titles int X number of titles'
'chapter int 0 X X X select chapter'
'chapters int X number of chapters'
'angle int 0 X X X select angle'
'length time X length of file in seconds'
'percent_pos int 0 100 X X X position in percent'
'time_pos time 0 X X X position in seconds'
'metadata str list X list of metadata key/value'
'metadata/* string X metadata values'
'volume float 0 100 X X X change volume'
'balance float -1 1 X X X change audio balance'
'mute flag 0 1 X X X'
'audio_delay float -100 100 X X X'
'audio_format int X'
'audio_codec string X'
'audio_bitrate int X'
'samplerate int X'
'channels int X'
'switch_audio int -2 255 X X X select audio stream'
'switch_angle int -2 255 X X X select DVD angle'
'switch_title int -2 255 X X X select DVD title'
'capturing flag 0 1 X X X dump primary stream if enabled'
'fullscreen flag 0 1 X X X'
'deinterlace flag 0 1 X X X'
'ontop flag 0 1 X X X'
'rootwin flag 0 1 X X X'
'border flag 0 1 X X X'
'framedropping int 0 2 X X X 1 = soft, 2 = hard'
'gamma int -100 100 X X X'
'brightness int -100 100 X X X'
'contrast int -100 100 X X X'
'saturation int -100 100 X X X'
'hue int -100 100 X X X'
'panscan float 0 1 X X X'
'vsync flag 0 1 X X X'
'video_format int X'
'video_codec string X'
'video_bitrate int X'
'width int X "display" width'
'height int X "display" height'
'fps float X'
'aspect float X'
'switch_video int -2 255 X X X select video stream'
'switch_program int -1 65535 X X X (see TAB default keybinding)'
'sub int -1 X X X select subtitle stream'
'sub_source int -1 2 X X X select subtitle source'
'sub_file int -1 X X X select file subtitles'
'sub_vob int -1 X X X select VOBsubs'
'sub_demux int -1 X X X select subs from demux'
'sub_delay float X X X'
'sub_pos int 0 100 X X X subtitle position'
'sub_alignment int 0 2 X X X subtitle alignment'
'sub_visibility flag 0 1 X X X show/hide subtitles'
'sub_forced_only flag 0 1 X X X'
'sub_scale float 0 100 X X X subtitles font size'
'tv_brightness int -100 100 X X X'
'tv_contrast int -100 100 X X X'
'tv_saturation int -100 100 X X X'
'tv_hue int -100 100 X X X'
'teletext_page int 0 799 X X X'
'teletext_subpage int 0 64 X X X'
'teletext_mode flag 0 1 X X X 0 - off, 1 - on'
'teletext_format int 0 3 X X X 0 - opaque,'
' 1 - transparent,'
' 2 - opaque inverted,'
' 3 - transparency inverted,'
'teletext_half_page int 0 2 X X X 0 - off, 1 - top half,'
' 2- bottom half'
)
TabOrder = 0
Text = 'get_audio_bitrate'
end
object btnRunCommand: TButton
Left = 544
Height = 25
Top = 4
Width = 91
Anchors = [akTop, akRight]
Caption = 'Run Command'
OnClick = btnRunCommandClick
TabOrder = 1
end
end
end
object Splitter1: TSplitter
Left = 635
Height = 504
Top = 42
Width = 5
end
object tbMain: TToolBar
Left = 0
Height = 42
Top = 0
Width = 1248
AutoSize = True
ButtonHeight = 40
Caption = 'tbMain'
Images = ilTools
ShowCaptions = True
TabOrder = 3
object btnLoad: TToolButton
Left = 1
Top = 2
Caption = 'Load'
ImageIndex = 0
OnClick = btnLoadClick
end
object ToolButton2: TToolButton
Left = 35
Top = 2
Width = 5
Caption = 'ToolButton2'
Style = tbsDivider
end
object btnPlay: TToolButton
Left = 40
Top = 2
Caption = 'Play'
ImageIndex = 1
OnClick = btnPlayClick
end
object btnStop: TToolButton
Left = 70
Top = 2
Caption = 'Stop'
Enabled = False
ImageIndex = 2
OnClick = btnStopClick
end
object btnPause: TToolButton
Left = 102
Top = 2
Caption = 'Pause'
Enabled = False
ImageIndex = 3
OnClick = btnPauseClick
end
object ToolButton6: TToolButton
Left = 141
Top = 2
Width = 5
Caption = 'ToolButton6'
Style = tbsDivider
end
object btnRewind: TToolButton
Left = 146
Top = 2
Caption = 'Rewind'
Enabled = False
ImageIndex = 4
end
object btnFWD: TToolButton
Left = 193
Top = 2
Caption = 'Fast Forward'
Enabled = False
ImageIndex = 5
end
object ToolButton9: TToolButton
Left = 435
Top = 2
Width = 5
Caption = 'ToolButton9'
Style = tbsDivider
end
object btnFrameGrab: TToolButton
Left = 440
Top = 2
Caption = 'Grab Frame'
Enabled = False
ImageIndex = 6
end
object btnNudgeBack: TToolButton
Left = 273
Top = 2
Caption = 'Nudge Back'
Enabled = False
ImageIndex = 7
end
object btnNudgeForward: TToolButton
Left = 345
Top = 2
Caption = 'Nudge Forward'
Enabled = False
ImageIndex = 8
end
object ToolButton4: TToolButton
Left = 268
Top = 2
Width = 5
Caption = 'ToolButton4'
Style = tbsDivider
end
end
object StatusBar1: TStatusBar
Left = 0
Height = 23
Top = 546
Width = 1248
Panels = <>
end
object OpenDialog1: TOpenDialog
left = 32
top = 56
end
object ilTools: TImageList
left = 280
top = 72
Bitmap = {
4C69090000001000000010000000EBBA78CFEBBA78FFEBBA78FFEBBA78FFEBBA
78FFEBBA78FFEBBA78FFEBBA78FFEBBA78FFEBBA78FFEBBA78FFEBBA78FFEBBA
78FFEBBA78CFFFFFFF0000000000EBBA78FFFFF4E9FFFFF4E9FFFFF4E9FFFFF4
E9FFFFF4E9FFFFF4E9FFFFF4E9FFFFF4E9FFFFF4E9FFFFF4E9FFFFF4E9FFFFF4
E9FFEBBA78FFFFFFFF0000000000EBBA78FFFFF2E4FFFFE6CBFFFFE6CBFFFFCF
9CFFFFCF9CFFFFE6CBFFFFE6CBFFFFCF9CFFFFCF9CFFFFE6CBFFFFE6CBFFFFF2
E4FFEBBA78FFFFFFFF0000000000EBBA78FFFFEFDEFFFFE7CCFFFFE7CCFFFFD1
9FFFFFD19FFFFFE7CCFFFFE7CCFFFFD19FFFFFD19FFFFFE7CCFFFFE7CCFFFFEF
DEFFEBBA78FFFFFFFF0000000000EBBA78FFFFEDDAFFFFD4A3FFFFD4A3FFFFE8
CEFFFFE8CEFFFFD4A3FFFFD4A3FFFFE8CEFFFFE8CEFFFFD4A3FFFFD4A3FFFFED
DAFFEBBA78FFFFFFFF0000000000EBBA78FFFFEBD5FFFFD6A7FFFFD6A7FFFFE9
D0FFFFE9D0FFFFD6A7FFFFD6A7FFFFE9D0FFFFE9D0FFFFD6A7FFFFD6A7FFFFEB
D5FFEBBA78FFFFFFFF0000000000EBBA78FFFFEAD1FFF3E5D2FF69A9D3FF469A
D3FF469AD3FF469AD3FF469AD3FF74A9C8FFFFD8AAFFFFEAD2FFFFEAD2FFFFEA
D1FFEBBA78FFFFFFFF0000000000EBBA78FFFFE8CDFFF3E5D2FF469AD3FFBEEB
FCFFC3EDFCFFC3EDFCFFAEE6FBFF469AD3FF469AD3FF469AD3FF469AD3FF469A
D3FF6FA2BCFFFFFFFF0000000000EBBA78FFFFE7CAFFFFD6A7FF469AD3FFB2E8
FCFF6ED5F9FF6ED5F9FF8CD1F1FFA5D9F2FFA5D9F2FFA5D9F2FFA5D9F2FFA5D9
F2FF469AD3FFFFFFFF00FFFFFF00EBBA78FFFFE7C8FFFFD6A7FF469AD3FFA8E7
FCFF74D9FAFF5DB9E6FF469AD3FF469AD3FF469AD3FF469AD3FF469AD3FF469A
D3FF469AD3FF469AD3FF469AD3CFEBBA78FFFFE6C6FFF3E5D2FF469AD3FF9EE6
FCFF73D4F6FF54AFE1FFC2ECFCFFC2ECFCFFC2ECFCFFC2ECFCFFC2ECFCFFC2EC
FCFFC2ECFCFFBFE9FAFF4598D1F2EBBA78FFFFE6C4FFF3E5D2FF469AD3FF96E6
FDFF54ABDDFF89D8F6FFA5E6FBFF74D9FAFF74D9FAFF74D9FAFF74D9FAFF74D9
FAFF95E2FBFFA0D2EEFF3B82B298EBBA78FFFFE6C2FFFFD6A7FF469AD3FF79CF
F0FF61B6E2FFA2E8FDFF88E2FCFF7EE0FCFF7EE0FCFF7EE0FCFF7EE0FCFF85E1
FCFFA5E4F9FF57A2D4F20000001AE0B172D9EBBA78FFEBBA78FF469AD3FF4FA4
D8FF8FE0F9FF94E9FEFF89E7FEFF89E7FEFF89E7FEFF89E7FEFF89E7FEFF99EA
FEFF6EBCE5FF3B82B298000000000000002900000033000000334393C9D9469A
D3FF469AD3FF469AD3FF469AD3FF469AD3FF469AD3FF469AD3FF469AD3FF469A
D3FF4290C6CC0000001A00000000000000000000000000000000000000290000
0033000000330000003300000033000000330000003300000033000000330000
003300000026000000000000000000000000000000000000000000000000B781
3E95B57E39F7B47C37FFB47C37FFB47C37FFB57E39F7B7813E95000000000000
00000000000000000000FFFFFF000000000000000000B9834146B57D38FFDFC1
A1FFFFF4F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F0FFDFC1A1FFB57D38FFB983
41460000000000000000FFFFFF0000000000B8834146B98543FFF8ECE3FFFFF3
E6FFF7D9B2FFF3CF9FFFF3CF9FFFF3CF9FFFF6D9B1FFFFF3E6FFF8ECE3FFB985
43FFB883414600000000FFFFFF0000000000B57D38FFF8ECE0FFFEEBD4FFF4D2
A4FFF5D4A9FFF7D7ADFFF7D8AEFFF6D6ABFFF4D3A7FFF4D2A4FFFEEBD4FFF8EC
E0FFB57D38FF00000000FFFFFF00B7813E95DEC19EFFFFF5E8FFF5D7ABFFF5D8
AEFFF8DDB5FFCC9E65FFAF7631FFFBE1BAFFF7DBB3FFF5D8AEFFF5D7ACFFFFF5
E8FFDEC19EFFB7813E95FFFFFF00B47E3AF8FEF4E8FFFAE2BFFFF6DAB2FFF7DC
B5FFFBE2BDFFB17935FFE4D0B0FFB07733FFFCE4C1FFF8DEB8FFF6DBB3FFFAE2
BFFFFEF4E8FFB47E3AF8FFFFFF00B47C37FFFFFFFFFFF7DFB8FFF7DFB9FFF8E1
BCFFFDE8C5FFB27A38FFC28A38FFDCBE8FFFB07734FFFDE9C7FFF9E1BDFFF8DF
B8FFFFFFFFFFB47C37FFFFFFFF00B47C37FFFFFFFCFFFAE2BEFFF9E2BFFFFAE4
C2FFFFEBCDFFB27A38FFD29E4FFFD19C4DFFD09A49FFAD722DFFFCE6C6FFFAE2
BFFFFFFFFCFFB47C37FFFFFFFF00B47C37FFFFFFFBFFFBE7C6FFFAE6C6FFFBE8
C8FFFFEFD3FFB17936FFE2AF62FFE7BA77FFAF7632FFFFF0D4FFFCE9C9FFFBE7
C6FFFFFFFBFFB47C37FFFFFFFF00B47D3AF9FEF2E1FFFEEFD4FFFBEACBFFFCEC
CDFFFFF3D6FFAF7632FFF5CB89FFAE7430FFFFF5DAFFFEEED0FFFCEBCCFFFEEF
D4FFFEF2E1FFB47D3AF9FFFFFF00A17237A9DEC098FFFFFBEAFFFDEFD3FFFDEE
D2FFFFF3D9FFCEA46FFFAD712BFFFFF8E0FFFEF1D6FFFDEED2FFFDEFD3FFFFFB
EAFFDEC098FFA17237A9FFFFFF000000001EB47C38FFF8EAD2FFFFF9E5FFFFF3
DAFFFFF4DBFFFFF7DFFFFCEFD4FFFFF5DCFFFFF3D9FFFFF3D9FFFFF9E5FFF8EA
D2FFB47C38FF0000001EFFFFFF000000000079562B6BB98443FFF8EAD1FFFFFE
EBFFFFF9E2FFFFF8E1FFFFF7E1FFFFF7E0FFFFF9E2FFFFFEEBFFF8EAD1FFB984
43FF79562B6B00000000FFFFFF00000000000000000E79562B6BB47C38FFDEC0
95FFFDF2DBFFFFFFF1FFFFFFF0FFFFFFF1FFFDF2DBFFDEC095FFB47C38FF7956
2B6B0000000E00000000FFFFFF0000000000000000000000000E00000033A171
36AAB47D3AF9B47C38FFB47C37FFB47C38FFB47D3AF9A17136AA000000330000
000E0000000000000000FFFFFF00000000000000000000000000000000000000
001E00000031000000330000003300000033000000310000001E000000000000
00000000000000000000FFFFFF0000000000000000000000000000000000B781
3E95B57E39F7B47C37FFB47C37FFB47C37FFB57E39F7B7813E95000000000000
00000000000000000000FFFFFF000000000000000000B9834146B57D38FFDFC1
A1FFFFF4F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F0FFDFC1A1FFB57D38FFB983
41460000000000000000FFFFFF0000000000B8834146B98543FFF9ECE4FFFFF4
E7FFF7DAB3FFF4D0A0FFF4D0A0FFF4D0A0FFF7DAB3FFFFF4E7FFF9ECE4FFB985
43FFB883414600000000FFFFFF0000000000B57D38FFF9ECE0FFFFEDD6FFF7D7
AAFFF9D9AFFFF9DAB1FFF9DBB1FFF9DAB1FFF9D9AFFFF7D7AAFFFFEDD6FFF9EC
E0FFB57D38FF00000000FFFFFF00B7813E95DEC19EFFFFF6E9FFF8DCB2FFCC9D
63FFBA823DFFBA823DFFBA823DFFBA823DFFBA823DFFCC9D63FFF8DCB2FFFFF6
E9FFDEC19EFFB7813E95FFFFFF00B47E3AF8FEF4E8FFFBE3C1FFFBE1BBFFBA82
3DFFDDC5A2FFDDC5A3FFDEC5A3FFDDC5A3FFDDC5A2FFBA823DFFFBE1BBFFFBE3
C1FFFEF4E8FFB47E3AF8FFFFFF00B47C37FFFFFFFFFFF8E0BAFFFCE7C3FFBA82
3DFFDEC29AFFC08733FFC18836FFC08733FFDEC29AFFBA823DFFFCE7C3FFF8E0
BAFFFFFFFFFFB47C37FFFFFFFF00B47C37FFFFFFFCFFFBE3C0FFFFEACBFFBA82
3DFFDEBB8AFFCF9A4BFFD09C4EFFCF9A4BFFDEBB8AFFBA823DFFFFEACBFFFBE3
C0FFFFFFFCFFB47C37FFFFFFFF00B47C37FFFFFFFBFFFCE8C8FFFFEFD2FFBA82
3DFFE0B87DFFDFAC60FFDFAC62FFDFAC60FFE0B87DFFBA823DFFFFEFD2FFFCE8
C8FFFFFFFBFFB47C37FFFFFFFF00B47D3AF9FEF2E1FFFFF1D6FFFFF3D6FFBA82
3DFFE8B974FFF0BE74FFEFBE74FFF0BE74FFF3C782FFBA823DFFFFF3D6FFFFF1
D6FFFEF2E1FFB47D3AF9FFFFFF00A17237A9DEC098FFFFFCEBFFFFF4DAFFCEA4
70FFBA823DFFBA823DFFBA823DFFBA823DFFBA823DFFCEA470FFFFF4DAFFFFFC
EBFFDEC098FFA17237A9FFFFFF000000001EB47C38FFF8EAD3FFFFFBE8FFFFF9
E2FFFFFAE4FFFFFBE5FFFFFBE5FFFFFBE5FFFFFAE4FFFFF9E2FFFFFBE8FFF8EA
D3FFB47C38FF0000001EFFFFFF000000000079562B6BB98443FFF8EAD1FFFFFF
ECFFFFFAE4FFFFF8E2FFFFF8E1FFFFF8E2FFFFFAE4FFFFFFECFFF8EAD1FFB984
43FF79562B6B00000000FFFFFF00000000000000000E79562B6BB47C38FFDEC0
95FFFDF2DBFFFFFFF1FFFFFFF0FFFFFFF1FFFDF2DBFFDEC095FFB47C38FF7956
2B6B0000000E00000000FFFFFF0000000000000000000000000E00000033A171
36AAB47D3AF9B47C38FFB47C37FFB47C38FFB47D3AF9A17136AA000000330000
000E0000000000000000FFFFFF00000000000000000000000000000000000000
001E00000031000000330000003300000033000000310000001E000000000000
00000000000000000000FFFFFF0000000000000000000000000000000000B781
3E95B57E39F7B47C37FFB47C37FFB47C37FFB57E39F7B7813E95000000000000
00000000000000000000FFFFFF000000000000000000B9834146B57D38FFDFC1
A1FFFFF4F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F0FFDFC1A1FFB57D38FFB983
41460000000000000000FFFFFF0000000000B8834146B98543FFF9ECE4FFFFF4
E7FFF7DAB2FFF3CF9FFFF3CF9FFFF3CF9FFFF7DAB2FFFFF4E7FFF9ECE4FFB985
43FFB883414600000000FFFFFF0000000000B57D38FFF9ECE0FFFFEDD6FFF7D7
ABFFF8D9AFFFF7D8AEFFF6D7ACFFF7D8AEFFF8D9AFFFF7D7ABFFFFEDD6FFF9EC
E0FFB57D38FF00000000FFFFFF00B7813E95DEC19EFFFFF6E9FFF8DCB2FFCC9E
65FFB17936FFCDA068FFFCE2BCFFCDA068FFB17936FFCC9E65FFF8DCB2FFFFF6
E9FFDEC19EFFB7813E95FFFFFF00B47E3AF8FEF4E8FFFBE3C1FFFBE2BCFFB27A
36FFE5C092FFB27C39FFFFEAC8FFB27C39FFE5C092FFB27A36FFFBE2BCFFFBE3
C1FFFEF4E8FFB47E3AF8FFFFFF00B47C37FFFFFFFFFFF8E0BAFFFDE7C5FFB27B
38FFDFA769FFB37C3AFFFFF0D1FFB37C3AFFDFA769FFB27B38FFFDE7C5FFF8E0
BAFFFFFFFFFFB47C37FFFFFFFF00B47C37FFFFFFFCFFFBE3C0FFFFEBCBFFB17A
37FFE7B26EFFB27C39FFFFF4D8FFB27C39FFE7B26EFFB17A37FFFFEBCBFFFBE3
C0FFFFFFFCFFB47C37FFFFFFFF00B47C37FFFFFFFBFFFCE8C8FFFFEFD2FFB079
36FFF0BB76FFB27A38FFFFF8DFFFB27A38FFF0BB76FFB07936FFFFEFD2FFFCE8
C8FFFFFFFBFFB47C37FFFFFFFF00B47D3AF9FEF2E1FFFFF1D6FFFFF3D6FFAF76
32FFF7C57BFFB07834FFFFFBE2FFB07834FFF7C57BFFAF7632FFFFF3D6FFFFF1
D6FFFEF2E1FFB47D3AF9FFFFFF00A17237A9DEC098FFFFFCEBFFFFF4DAFFCEA4
70FFAE742EFFCFA571FFFFF9E1FFCFA571FFAE742EFFCEA470FFFFF4DAFFFFFC
EBFFDEC098FFA17237A9FFFFFF000000001EB47C38FFF8EAD3FFFFFBE8FFFFF9
E1FFFFF9E2FFFFF7E0FFFFF6DDFFFFF7E0FFFFF9E2FFFFF9E1FFFFFBE8FFF8EA
D3FFB47C38FF0000001EFFFFFF000000000079562B6BB98443FFF8EAD1FFFFFF
ECFFFFFAE4FFFFF7E1FFFFF7E0FFFFF7E1FFFFFAE4FFFFFFECFFF8EAD1FFB984
43FF79562B6B00000000FFFFFF00000000000000000E79562B6BB47C38FFDEC0
95FFFDF2DBFFFFFFF1FFFFFFF0FFFFFFF1FFFDF2DBFFDEC095FFB47C38FF7956
2B6B0000000E00000000FFFFFF0000000000000000000000000E00000033A171
36AAB47D3AF9B47C38FFB47C37FFB47C38FFB47D3AF9A17136AA000000330000
000E0000000000000000FFFFFF00000000000000000000000000000000000000
001E00000031000000330000003300000033000000310000001E000000000000
00000000000000000000FFFFFF0000000000000000000000000000000000B781
3E95B57E39F7B47C37FFB47C37FFB47C37FFB57E39F7B7813E95000000000000
00000000000000000000FFFFFF000000000000000000B9834146B57D38FFDFC1
A1FFFFF4F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F0FFDFC1A1FFB57D38FFB983
41460000000000000000FFFFFF0000000000B8834146B98543FFF9ECE3FFFFF4
E7FFF7DAB2FFF3CF9FFFF3CF9EFFF3CF9EFFF7D9B2FFFFF4E7FFF9EDE4FFB985
43FFB983414600000000FFFFFF0000000000B57D38FFF8ECE0FFFFECD5FFF6D5
A7FFF7D8ADFFF7D7ADFFF5D5AAFFF4D4A8FFF6D5AAFFF8D7ABFFFFF0DAFFFAED
E2FFB57D38FF00000000FFFFFF00B7813E95DEC19EFFFFF6E9FFF7DAB0FFFBE0
B8FFB17A37FFCDA16CFFF9DDB6FFF8DCB4FFFBE0BAFFB17A37FFCDA16CFFFFFA
EEFFDFC19FFFB7813E95FFFFFF00B47E3AF8FFF4E9FFFCE5C3FFFCE3BEFFB17A
37FFF5CB89FFB17A37FFFDE5C1FFFDE6C2FFB17A37FFF5CB89FFB17A37FFFFE9
C9FFFFF5EAFFB47E3AF8FFFFFF00B47C37FFFFFFFFFFFCE5C0FFB17A37FFF5CB
89FFC28A38FFB17A37FFFFEECFFFB17A37FFF5CB89FFC28A38FFB17A37FFFDE7
C3FFFFFFFFFFB47C37FFFFFFFF00B47C37FFFFFFFEFFD19D4DFFD19D4DFFD19D
4DFFD29E4FFFB17A37FFD19D4DFFD19D4DFFD19D4DFFD29E4FFFB17A37FFFFEB
CBFFFFFFFEFFB47C37FFFFFFFF00B47C37FFFFFFFDFFFFEECFFFB17A37FFE7BA
76FFE2AF62FFB17A37FFFFF6DCFFB17A37FFE7BA76FFE2AF62FFB17A37FFFFF0
D3FFFFFFFDFFB47C37FFFFFFFF00B47D3AF9FEF3E1FFFFF2D8FFFFF5D9FFB17A
37FFF5CB89FFB17A37FFFFF6DBFFFFF6DCFFB17A37FFF5CB89FFB17A37FFFFF8
E0FFFFF4E3FFB47D3AF9FFFFFF00A17237A9DEC098FFFFFCEBFFFFF2D8FFFFF8
E0FFB17A37FFCDA16CFFFFF3DAFFFFF2D8FFFFF8E0FFB17A37FFCDA16CFFFFFF
F2FFDFC199FFA17237A9FFFFFF000000001EB47C38FFF8EAD2FFFFFAE6FFFFF6
DEFFFCEFD5FFFFF7DFFFFFF3DAFFFFF3D9FFFFF5DDFFFDF0D6FFFFFFECFFF9EC
D5FFB57D38FF0000001EFFFFFF000000000079562B6BB98443FFF8EAD1FFFFFF
EBFFFFFAE4FFFFF8E1FFFFF7DFFFFFF7E0FFFFF9E3FFFFFFECFFF8EBD2FFB984
44FF79562B6B00000000FFFFFF00000000000000000E79562B6BB47C38FFDEC0
95FFFDF2DBFFFFFFF1FFFFFFF0FFFFFFF1FFFDF2DBFFDEC095FFB47C38FF7956
2B6B0000000E00000000FFFFFF0000000000000000000000000E00000033A171
36AAB47D3AF9B47C38FFB47C37FFB47C38FFB47D3AF9A17136AA000000330000
000E0000000000000000FFFFFF00000000000000000000000000000000000000
001E00000031000000330000003300000033000000310000001E000000000000
00000000000000000000FFFFFF0000000000000000000000000000000000B781
3E95B57E39F7B47C37FFB47C37FFB47C37FFB57E39F7B7813E95000000000000
00000000000000000000FFFFFF000000000000000000B9834146B57D38FFDFC1
A1FFFFF4F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F0FFDFC1A1FFB57D38FFB983
41460000000000000000FFFFFF0000000000B9834146B98543FFF9EDE4FFFFF4
E7FFF7D9B2FFF3CF9EFFF3CF9EFFF3CF9FFFF7DAB2FFFFF4E7FFF9ECE3FFB985
43FFB883414600000000FFFFFF0000000000B57D38FFFAEDE2FFFFF0DAFFF8D7
ABFFF6D5AAFFF4D4A8FFF5D5AAFFF7D7ADFFF7D8ADFFF6D5A7FFFFECD5FFF8EC
E0FFB57D38FF00000000FFFFFF00B7813E95DFC19FFFFFFAEEFFCDA16CFFB17A
37FFFBE0BAFFF8DCB4FFF9DDB6FFCDA16CFFB17A37FFFBE0B8FFF7DAB0FFFFF6
E9FFDEC19EFFB7813E95FFFFFF00B47E3AF8FFF5EAFFFFE9C9FFB17A37FFF5CB
89FFB17A37FFFDE6C2FFFDE5C1FFB17A37FFF5CB89FFB17A37FFFCE3BEFFFCE5
C3FFFFF4E9FFB47E3AF8FFFFFF00B47C37FFFFFFFFFFFDE7C3FFB17A37FFC28A
38FFF5CB89FFB17A37FFFFEECFFFB17A37FFC28A38FFF5CB89FFB17A37FFFCE5
C0FFFFFFFFFFB47C37FFFFFFFF00B47C37FFFFFFFEFFFFEBCBFFB17A37FFD29E
4FFFD19D4DFFD19D4DFFD19D4DFFB17A37FFD29E4FFFD19D4DFFD19D4DFFD19D
4DFFFFFFFEFFB47C37FFFFFFFF00B47C37FFFFFFFDFFFFF0D3FFB17A37FFE2AF
62FFE7BA76FFB17A37FFFFF6DCFFB17A37FFE2AF62FFE7BA76FFB17A37FFFFEE
CFFFFFFFFDFFB47C37FFFFFFFF00B47D3AF9FFF4E3FFFFF8E0FFB17A37FFF5CB
89FFB17A37FFFFF6DCFFFFF6DBFFB17A37FFF5CB89FFB17A37FFFFF5D9FFFFF2
D8FFFEF3E1FFB47D3AF9FFFFFF00A17237A9DFC199FFFFFFF2FFCDA16CFFB17A
37FFFFF8E0FFFFF2D8FFFFF3DAFFCDA16CFFB17A37FFFFF8E0FFFFF2D8FFFFFC
EBFFDEC098FFA17237A9FFFFFF000000001EB57D38FFF9ECD5FFFFFFECFFFDF0
D6FFFFF5DDFFFFF3D9FFFFF3DAFFFFF7DFFFFCEFD5FFFFF6DEFFFFFAE6FFF8EA
D2FFB47C38FF0000001EFFFFFF000000000079562B6BB98444FFF8EBD2FFFFFF
ECFFFFF9E3FFFFF7E0FFFFF7DFFFFFF8E1FFFFFAE4FFFFFFEBFFF8EAD1FFB984
43FF79562B6B00000000FFFFFF00000000000000000E79562B6BB47C38FFDEC0
95FFFDF2DBFFFFFFF1FFFFFFF0FFFFFFF1FFFDF2DBFFDEC095FFB47C38FF7956
2B6B0000000E00000000FFFFFF0000000000000000000000000E00000033A171
36AAB47D3AF9B47C38FFB47C37FFB47C38FFB47D3AF9A17136AA000000330000
000E0000000000000000FFFFFF00000000000000000000000000000000000000
001E00000031000000330000003300000033000000310000001E000000000000
00000000000000000000FFFFFF004398D2A73D94D0FF3A92CFFF3A92CFFF3D94
D0FF4197D19FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00469AD300469AD3003D94D0FFDCFCFFFFD8F7FFFFD8F7FFFFDBFA
FFFF358ECDFF3991CEFF3A92CFFF3A92CFFF3A92CFFF3A92CFFF3A92CFFF3D94
D0FF4298D2A3FFFFFF00449AD5003B92CFFFD5F7FFFF60D1F9FF61D0F8FFB4EB
FDFFD8F7FFFFD9F9FFFFD9FAFFFFD9FAFFFFD9FAFFFFD9F9FFFFD8FAFFFFDDFE
FFFF3B94D3FFFFFFFF003D9BDD003B92CFFFCAF6FFFF69D5F9FF6CD5F9FF69D6
FCFF65D9FFFF62DBFFFF60DBFFFF60DBFFFF60DBFFFF60DBFFFF5EDBFFFFCFFE
FFFF3094DCFFFFFFFF00CB8946003C92CFFFC0F3FFFF70D9FBFF73DAFCFF6FDE
FFFFA1A087FFBE7B3BFFBB7B3BFFBB7B3BFFBA7B3CFFB97B3DFFB87A3DFFB87B
3EFFBC7F40FFBD8346FFBD8951EC3D92CFFFB8F3FFFF77DFFEFF7AE1FFFF74E5
FFFFBF7C3BFFFFF7DFFFFFF5DAFFFFF4DBFFFFF4DFFFFFF4E2FFFFF5E2FFFFF4
E2FFFFF5E2FFFFFAE6FFB5854FFF3E93CFFFB2F6FFFF51ACDEFF348BCDFF2C8F
D7FFBC7C3CFFFFFFFBFF7AC9D5FF1BCAFFFFFFCD7BFFFFCE81FFFFCE82FFFFCD
81FFFFCB80FFFFFFFFFFB3824CFF4095D0FF90DDF8FF44A0D8FFDCFDFFFFD4FF
FFFFB97A3BFFFFFFF0FF14B9FFFF76C5DFFFFFD58BFFC6CA92FF16B09AFFC4C9
91FFFFD38BFFFFFFFAFFB3824CFF4296D1FF71C4EAFF6CBCE6FFBBF4FFFF6FE5
FFFFB8793BFFFFFBEBFFFFD790FFFFD894FFFFDB9AFF48B08FFF22AA8DFF48B0
8EFFFFDA98FFFFFCF1FFB3824CFF4397D1FF56ACDDFF8EDAF5FFA1EFFFFF7BEC
FFFFB8793BFFFFF7E5FFFFDCA1FFFFDDA4FFFFE1A7FF139E82FF22A384FF139E
81FFFFE1A5FFFFF9E9FFB3824CFF4499D2FF3F94D0FFABFBFFFF9AF4FFFF8AF6
FFFFBB7B3DFFFFF6E1FFFFE4AFFFFFE5B1FFFFE9B4FFC4CFA1FF1B8780FFC3CE
A0FFFFE8B1FFFFF8E4FFB4834DFF3F8BBEB74398D2FF4094D0FF3D93D1FF3394
DBFFBF7F3FFFFFF6DDFF2DBD90FF37BF93FF3DC295FF45C796FF255D8EFF42C6
95FF30BF91FFFFF6DFFFB5834EFF000000210000003300000033000000330000
0033C08141FFFFF6DBFF4BB48DFF25A77FFF29A980FF2BAA81FF2BAC81FF27A9
7FFF4CB58DFFFFF6DCFFB5834EFF469AD300469AD300469AD300419BD800339B
E400BF8447FFFFFADEFFFFF4D5FFFFF4D6FFFFF5D6FFFFF5D7FFFFF6D6FFFFF5
D6FFFFF4D5FFFFFADFFFB58551FF469AD300469AD300449AD5003D9BDD00CB89
4600AD7E4AC0B68550FFB5834FFFB5834EFFB6834FFFB6834FFFB6834FFFB583
4EFFB5834FFFB58551FFA67C4EB9000000000000000000000000000000000000
0000000000230000003300000033000000330000003300000033000000330000
0033000000330000003300000021FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D5B5
8EFFB6823FFFB47C37FFB47C37FFB47C37FFB6803FFFC1A27AFFE1E1E1FFFFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00ECDDCBFFB57D38FFDEC1
9EFFFEF4E8FFFFFFFF00FFFFFCFFFFFFFBFFFEF2E1FFDEC098FFB47C38FFC7B8
A6FFF1F1F1FFFFFFFF00FFFFFF00FFFFFF00ECDDCBFFB98543FFF8ECE0FFFFF5
E8FFFAE2C0FFF8DFB9FFFAE3C0FFFBE7C6FFFFF0D5FFFFFCEBFFF8EAD3FFB984
43FFC7B8A6FFF1F1F1FFFFFFFF00FFFFFF00B57D38FFF8ECE3FFFEEBD4FFF5D7
ACFFF8DDB6FFFAE4C0FFFCE7C6FFFDE9CBFFFEEFD2FFFFF3D9FFFFFBE8FFF8EA
D1FFB47C38FFCCCCCCFFFFFFFF00D5B58EFFDFC1A1FFFFF3E6FFF4D3A5FFF7DB
B2FFFCE4C0FFAE742FFFCDA16CFFFFF1D5FFD4A96BFFBF9867FFFFF9E2FFFFFF
ECFFDEC095FFC0A079FFE1E1E1FFB7823FFFFFF4F0FFF7D9B2FFF6D6AAFFFBE1
BAFFAF7733FFF3C887FFB07834FFFFF6DDFFCE9948FFB17A37FFFFFCE5FFFFFA
E4FFFDF2DBFFB6803FFFCECECEFFB47C37FFFFFFFF00F5D1A1FFFADBB2FFB077
34FFDEB881FFEAB86CFFB17A37FFFFF8E0FFCE9948FFB17A37FFFFFDE7FFFFF9
E2FFFFFFF1FFB47C38FFCCCCCCFFB47C37FFFFFFFF00F6D3A3FFAD742FFFDEB8
81FFCE9948FFEAB96DFFB17A38FFFFF9E1FFCE9948FFB17A37FFFFFDE7FFFFF8
E1FFFFFFF0FFB47C37FFCCCCCCFFB47C37FFFFFFFF00F5D1A1FFFADBB2FFB077
34FFDEB881FFEAB86CFFB17A37FFFFF8E0FFCE9948FFB17A37FFFFFDE7FFFFF9
E2FFFFFFF1FFB47C38FFCCCCCCFFB7823FFFFFF4F0FFF7D9B2FFF6D6AAFFFBE1
BAFFAF7733FFF3C887FFB07834FFFFF7DEFFCE9948FFB17A37FFFFFCE5FFFFFA
E4FFFDF2DBFFB6803FFFCECECEFFD5B58EFFDFC1A1FFFFF3E6FFF4D3A5FFF7DB
B2FFFCE4C0FFAE742FFFCDA16CFFFFF1D6FFD4A96BFFBF9868FFFFFAE2FFFFFF
ECFFDEC095FFC0A079FFE1E1E1FFFFFFFF00B57D38FFF8ECE3FFFEEBD4FFF5D7
ACFFF8DDB6FFFAE4C0FFFDE7C6FFFDEACBFFFFF0D3FFFFF4DAFFFFFBE8FFF8EA
D1FFB47C38FFCCCCCCFFFFFFFF00FFFFFF00ECDDCBFFB98543FFF8ECE0FFFFF5
E8FFFAE2C0FFF8DFB9FFFAE3C0FFFBE7C7FFFFF0D5FFFFFCEBFFF8EAD3FFB984
43FFC7B8A6FFF1F1F1FFFFFFFF00FFFFFF00FFFFFF00ECDDCBFFB57D38FFDEC1
9EFFFEF4E8FFFFFFFF00FFFFFCFFFFFFFBFFFEF2E1FFDEC098FFB47C38FFC7B8
A6FFF1F1F1FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D5B5
8EFFB6823FFFB47C37FFB47C37FFB47C37FFB6803FFFC1A27AFFE1E1E1FFFFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E1E1
E1FFC1A27AFFB6803FFFB47C37FFB47C37FFB47C37FFB6823FFFD5B58EFFFFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00F1F1F1FFC7B8A6FFB47C
38FFDEC098FFFEF2E1FFFFFFFBFFFFFFFCFFFFFFFF00FEF4E8FFDEC19EFFB57D
38FFECDDCBFFFFFFFF00FFFFFF00FFFFFF00F1F1F1FFC7B8A6FFB98443FFF8EA
D3FFFFFCEBFFFFF0D5FFFBE7C7FFFAE3C0FFF8DFB9FFFAE2C0FFFFF5E8FFF8EC
E0FFB98543FFECDDCBFFFFFFFF00FFFFFF00CCCCCCFFB47C38FFF8EAD1FFFFFB
E8FFFFF4DAFFFFF0D3FFFDEACBFFFDE7C6FFFAE4C0FFF8DDB6FFF5D7ACFFFEEB
D4FFF8ECE3FFB57D38FFFFFFFF00E1E1E1FFC0A079FFDEC095FFFFFFECFFFFFA
E2FFBF9868FFD4A96BFFFFF1D6FFCDA16CFFAE742FFFFCE4C0FFF7DBB2FFF4D3
A5FFFFF3E6FFDFC1A1FFD5B58EFFCECECEFFB6803FFFFDF2DBFFFFFAE4FFFFFC
E5FFB17A37FFCE9948FFFFF7DEFFB07834FFF3C887FFAF7733FFFBE1BAFFF6D6
AAFFF7D9B2FFFFF4F0FFB7823FFFCCCCCCFFB47C38FFFFFFF1FFFFF9E2FFFFFD
E7FFB17A37FFCE9948FFFFF8E0FFB17A37FFEAB86CFFDEB881FFB07734FFFADB
B2FFF5D1A1FFFFFFFF00B47C37FFCCCCCCFFB47C37FFFFFFF0FFFFF8E1FFFFFD
E7FFB17A37FFCE9948FFFFF9E1FFB17A38FFEAB96DFFCE9948FFDEB881FFAD74
2FFFF6D3A3FFFFFFFF00B47C37FFCCCCCCFFB47C38FFFFFFF1FFFFF9E2FFFFFD
E7FFB17A37FFCE9948FFFFF8E0FFB17A37FFEAB86CFFDEB881FFB07734FFFADB
B2FFF5D1A1FFFFFFFF00B47C37FFCECECEFFB6803FFFFDF2DBFFFFFAE4FFFFFC
E5FFB17A37FFCE9948FFFFF6DDFFB07834FFF3C887FFAF7733FFFBE1BAFFF6D6
AAFFF7D9B2FFFFF4F0FFB7823FFFE1E1E1FFC0A079FFDEC095FFFFFFECFFFFF9
E2FFBF9867FFD4A96BFFFFF1D5FFCDA16CFFAE742FFFFCE4C0FFF7DBB2FFF4D3
A5FFFFF3E6FFDFC1A1FFD5B58EFFFFFFFF00CCCCCCFFB47C38FFF8EAD1FFFFFB
E8FFFFF3D9FFFEEFD2FFFDE9CBFFFCE7C6FFFAE4C0FFF8DDB6FFF5D7ACFFFEEB
D4FFF8ECE3FFB57D38FFFFFFFF00FFFFFF00F1F1F1FFC7B8A6FFB98443FFF8EA
D3FFFFFCEBFFFFF0D5FFFBE7C6FFFAE3C0FFF8DFB9FFFAE2C0FFFFF5E8FFF8EC
E0FFB98543FFECDDCBFFFFFFFF00FFFFFF00FFFFFF00F1F1F1FFC7B8A6FFB47C
38FFDEC098FFFEF2E1FFFFFFFBFFFFFFFCFFFFFFFF00FEF4E8FFDEC19EFFB57D
38FFECDDCBFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E1E1
E1FFC1A27AFFB6803FFFB47C37FFB47C37FFB47C37FFB6823FFFD5B58EFFFFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00
}
end
end

View File

@ -0,0 +1,264 @@
Unit FormMain;
{$mode objfpc}{$H+}
Interface
Uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Buttons, ExtCtrls, ComCtrls,
StdCtrls, MPlayerCtrl;
Type
{ TfrmMain }
TfrmMain = Class(TForm)
btnRunCommand: TButton;
cboCommand: TComboBox;
ilTools: TImageList;
lblPos: TLabel;
memResults: TMemo;
MPlayerControl1: TMPlayerControl;
OpenDialog1: TOpenDialog;
pnlTrackbar: TPanel;
pnlPos: TPanel;
pnlCommands: TPanel;
pnlFeedback: TPanel;
pnlVideo: TPanel;
Splitter1: TSplitter;
StatusBar1: TStatusBar;
tbMain: TToolBar;
btnLoad: TToolButton;
btnFrameGrab: TToolButton;
btnNudgeBack: TToolButton;
ToolButton2: TToolButton;
btnPlay: TToolButton;
btnStop: TToolButton;
btnPause: TToolButton;
btnNudgeForward: TToolButton;
ToolButton4: TToolButton;
ToolButton6: TToolButton;
btnRewind: TToolButton;
btnFWD: TToolButton;
ToolButton9: TToolButton;
TrackBarPlaying: TTrackBar;
TrackBarVolume: TTrackBar;
Procedure btnLoadClick(Sender: TObject);
Procedure btnPauseClick(Sender: TObject);
Procedure btnPlayClick(Sender: TObject);
Procedure btnRunCommandClick(Sender: TObject);
Procedure btnStopClick(Sender: TObject);
Procedure FormCreate(Sender: TObject);
Procedure OnError(ASender: TObject; AStrings: TStringList);
Procedure OnFeedback(ASender: TObject; AStrings: TStringList);
Procedure OnPlay(Sender: TObject);
Procedure OnPlaying(ASender: TObject; APosition: Single);
Procedure OnStop(Sender: TObject);
Procedure TrackBarPlayingChange(Sender: TObject);
Procedure TrackBarPlayingMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Procedure TrackBarPlayingMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Procedure TrackBarVolumeChange(Sender: TObject);
Private
Function GetUpdatingPosition: Boolean;
Procedure SetUpdatingPosition(AValue: Boolean);
Private
FUpdatingPosition: Integer;
FLastPosition: Integer;
Property UpdatingPosition: Boolean read GetUpdatingPosition write SetUpdatingPosition;
End;
Var
frmMain: TfrmMain;
Implementation
{$R *.lfm}
{ TfrmMain }
Procedure TfrmMain.FormCreate(Sender: TObject);
Begin
FUpdatingPosition := 0;
FLastPosition := -1;
TrackBarPlaying.Max := 50;
MPlayerControl1.Volume := 50;
{$IFDEF Linux}
MPlayerControl1.MPlayerPath := '';
MPlayerControl1.StartParam := '-vo x11 -zoom -fs';
{$else $IFDEF Windows}
// Download MPlayer generic for Windows and save under Programm Folder Directory
// http://sourceforge.net/projects/mplayer-win32/
MPlayerControl1.MPlayerPath :=
IncludeTrailingBackslash(ExtractFileDir(Application.ExeName)) + 'mplayer\mplayer.exe';
MPlayerControl1.StartParam := '-vo gl_nosw';
//MPlayerControl1.StartParam := '-vo direct3d';
//MPlayerControl1.StartParam := '-vf screenshot';
{$ENDIF}
End;
Procedure TfrmMain.btnLoadClick(Sender: TObject);
Begin
If OpenDialog1.Execute Then
Begin
MPlayerControl1.Stop;
memResults.Lines.Clear;
MPlayerControl1.Filename := OpenDialog1.Filename;
MPlayerControl1.Play;
End;
End;
Procedure TfrmMain.btnPauseClick(Sender: TObject);
Begin
MPlayerControl1.Paused := Not MPlayerControl1.Paused;
btnPause.Down := MPlayerControl1.Paused;
End;
Procedure TfrmMain.btnPlayClick(Sender: TObject);
Begin
MPlayerControl1.Play;
End;
Procedure TfrmMain.btnRunCommandClick(Sender: TObject);
Begin
memResults.Lines.Add(cboCommand.Text);
MPlayerControl1.SendMPlayerCommand(cboCommand.Text);
End;
Procedure TfrmMain.btnStopClick(Sender: TObject);
Begin
MPlayerControl1.Stop;
End;
Procedure TfrmMain.OnFeedback(ASender: TObject; AStrings: TStringList);
Begin
memResults.Lines.AddStrings(AStrings);
memResults.SelStart := Length(memResults.Text);
//memResults.SelLength := 0;
End;
Procedure TfrmMain.OnError(ASender: TObject; AStrings: TStringList);
Var
i: Integer;
Begin
For i := 0 To AStrings.Count - 1 Do
memResults.Lines.Add(' Err: ' + AStrings[i]);
End;
Procedure TfrmMain.OnPlaying(ASender: TObject; APosition: Single);
Begin
If (MPlayerControl1.Duration <> -1) Then
Begin
UpdatingPosition := True;
Try
btnPause.Down := MPlayerControl1.Paused;
TrackBarPlaying.SelEnd := Trunc(TrackBarPlaying.Max * APosition / MPlayerControl1.Duration);
If ActiveControl <> TrackBarPlaying Then
TrackBarPlaying.Position := TrackBarPlaying.SelEnd;
lblPos.Caption := FormatDateTime('nnn:ss', APosition / (24 * 60 * 60)) +
' / ' + FormatDateTime('nnn:ss', MPlayerControl1.Duration / (24 * 60 * 60));
pnlPos.Width := lblPos.Width + 3;
// Reversed := True doesn't seem to apply for SelStart/SelEnd...
// TODO: Talk about on Forum/Consider lodging item on Bugtracker...
TrackBarVolume.SelEnd := TrackBarVolume.Max;
TrackBarVolume.SelStart := TrackBarVolume.Max - Trunc(TrackBarVolume.Max *
MPlayerControl1.Volume / 100);
If ActiveControl <> TrackBarVolume Then
TrackBarVolume.Position := TrackBarVolume.SelEnd - TrackBarVolume.SelStart;
Finally
UpdatingPosition := False;
End;
End;
End;
Procedure TfrmMain.TrackBarPlayingChange(Sender: TObject);
Begin
If (MPlayerControl1.Duration <> -1) And Not UpdatingPosition Then
If TrackBarPlaying.Position <> FLastPosition Then
Begin
MPlayerControl1.Position := MPlayerControl1.Duration * TrackBarPlaying.Position /
TrackBarPlaying.Max;
FLastPosition := TrackBarPlaying.Position;
End;
End;
Procedure TfrmMain.TrackBarPlayingMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Begin
MPlayerControl1.Paused := True;
End;
Procedure TfrmMain.TrackBarPlayingMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Begin
MPlayerControl1.Paused := False;
Self.ActiveControl := memResults;
End;
Procedure TfrmMain.TrackBarVolumeChange(Sender: TObject);
Begin
If (TrackBarVolume.Position <> TrackBarVolume.Tag) And Not UpdatingPosition Then
Begin
MPlayerControl1.Volume := Trunc(100 * TrackBarVolume.Position / TrackBarVolume.Max);
TrackBarVolume.Tag := TrackBarVolume.Position;
End;
End;
Function TfrmMain.GetUpdatingPosition: Boolean;
Begin
Result := FUpdatingPosition <> 0;
End;
Procedure TfrmMain.SetUpdatingPosition(AValue: Boolean);
Begin
If AValue Then
Inc(FUpdatingPosition)
Else
Dec(FUpdatingPosition);
End;
Procedure TfrmMain.OnPlay(Sender: TObject);
Begin
memResults.Lines.Add('OnPlay message received');
StatusBar1.SimpleText := 'Playing ' + MPlayerControl1.Filename;
btnStop.Enabled := MPlayerControl1.Running;
btnPause.Enabled := MPlayerControl1.Running;
End;
Procedure TfrmMain.OnStop(Sender: TObject);
Begin
If csDestroying In ComponentState Then
exit;
memResults.Lines.Add('OnStop message received');
StatusBar1.SimpleText := '';
UpdatingPosition := True;
Try
TrackBarPlaying.Position := 0;
TrackBarPlaying.SelStart := 0;
Finally
UpdatingPosition := False;
End;
btnStop.Enabled := MPlayerControl1.Running;
btnPause.Enabled := MPlayerControl1.Running;
lblPos.Caption := '';
End;
End.

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

View File

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="9"/>
<PathDelim Value="\"/>
<General>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="mplayerTestHarness"/>
<ResourceType Value="res"/>
<UseXPManifest Value="True"/>
<Icon Value="0"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<BuildModes Count="1">
<Item1 Name="Default" Default="True"/>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="MPlayerControlLaz"/>
<DefaultFilename Value="..\..\mplayercontrollaz.lpk"/>
</Item1>
<Item2>
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="2">
<Unit0>
<Filename Value="mplayerTestHarness.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="FormMain.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="frmMain"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
</Unit1>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
</CompilerOptions>
</CONFIG>

View File

@ -0,0 +1,21 @@
program mplayerTestHarness;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, FormMain, mplayercontrollaz
{ you can add units after this };
{$R *.res}
begin
RequireDerivedFormResource := True;
Application.Initialize;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.