diff --git a/components/mplayer/examples/FullFeatured/FormMain.lfm b/components/mplayer/examples/FullFeatured/FormMain.lfm new file mode 100644 index 000000000..c7a51ba4b --- /dev/null +++ b/components/mplayer/examples/FullFeatured/FormMain.lfm @@ -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 [duration] [level]' + 'exit' + 'frame_step' + 'seek 2' + 'seek 1' + 'screenshot 0' + 'speed_mult ' + 'get_property ' + 'set_property ' + '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 diff --git a/components/mplayer/examples/FullFeatured/FormMain.pas b/components/mplayer/examples/FullFeatured/FormMain.pas new file mode 100644 index 000000000..9466357b2 --- /dev/null +++ b/components/mplayer/examples/FullFeatured/FormMain.pas @@ -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. diff --git a/components/mplayer/examples/FullFeatured/mplayerTestHarness.ico b/components/mplayer/examples/FullFeatured/mplayerTestHarness.ico new file mode 100644 index 000000000..0341321b5 Binary files /dev/null and b/components/mplayer/examples/FullFeatured/mplayerTestHarness.ico differ diff --git a/components/mplayer/examples/FullFeatured/mplayerTestHarness.lpi b/components/mplayer/examples/FullFeatured/mplayerTestHarness.lpi new file mode 100644 index 000000000..a6562aee2 --- /dev/null +++ b/components/mplayer/examples/FullFeatured/mplayerTestHarness.lpi @@ -0,0 +1,66 @@ + + + + + + + + + + <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> diff --git a/components/mplayer/examples/FullFeatured/mplayerTestHarness.lpr b/components/mplayer/examples/FullFeatured/mplayerTestHarness.lpr new file mode 100644 index 000000000..2738863a0 --- /dev/null +++ b/components/mplayer/examples/FullFeatured/mplayerTestHarness.lpr @@ -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. + diff --git a/components/mplayer/examples/FullFeatured/mplayerTestHarness.res b/components/mplayer/examples/FullFeatured/mplayerTestHarness.res new file mode 100644 index 000000000..7c6cf3e4b Binary files /dev/null and b/components/mplayer/examples/FullFeatured/mplayerTestHarness.res differ