Стартовый пул

This commit is contained in:
2024-04-02 08:46:59 +03:00
parent fd57fffd3a
commit 3bb34d000b
5591 changed files with 3291734 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<%appSandboxKeys%>
</dict>
</plist>

View File

@@ -0,0 +1,5 @@
FmxDemoPasLibVlc.app\../\FmxDemoPasLibVlc.entitlements
FmxDemoPasLibVlc.app\Contents\MacOS\libcgunwind.1.0.dylib
FmxDemoPasLibVlc.app\Contents\Resources\FmxDemoPasLibVlc.icns
FmxDemoPasLibVlc.app\Contents\Info.plist
FmxDemoPasLibVlc.app\Contents\MacOS\FmxDemoPasLibVlc

View File

@@ -0,0 +1,106 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Condition="Exists('$(BDS)\bin\CodeGear.Deployment.targets')" Project="$(BDS)\bin\CodeGear.Deployment.targets"/>
<ProjectExtensions>
<ProjectFileVersion>12</ProjectFileVersion>
</ProjectExtensions>
<ItemGroup Condition="'$(Platform)'=='Android'"/>
<ItemGroup Condition="'$(Platform)'=='iOSDevice'"/>
<ItemGroup Condition="'$(Platform)'=='Win32'">
<DeployFile Include="Win32\Debug\FmxDemoPasLibVlc.exe" Condition="'$(Config)'=='Debug'">
<RemoteDir>FmxDemoPasLibVlc\</RemoteDir>
<RemoteName>FmxDemoPasLibVlc.exe</RemoteName>
<Operation>0</Operation>
<LocalCommand/>
<RemoteCommand/>
<Overwrite>True</Overwrite>
<Required>True</Required>
</DeployFile>
</ItemGroup>
<ItemGroup Condition="'$(Platform)'=='OSX32'">
<DeployFile Include="OSX32\Debug\FmxDemoPasLibVlc.info.plist" Condition="'$(Config)'=='Debug'">
<RemoteDir>FmxDemoPasLibVlc.app\Contents\</RemoteDir>
<RemoteName>Info.plist</RemoteName>
<Operation>1</Operation>
<LocalCommand/>
<RemoteCommand/>
<Overwrite>True</Overwrite>
</DeployFile>
<DeployFile Include="OSX32\Release\FmxDemoPasLibVlc.entitlements" Condition="'$(Config)'=='Release'">
<RemoteDir>FmxDemoPasLibVlc.app\../\</RemoteDir>
<RemoteName>FmxDemoPasLibVlc.entitlements</RemoteName>
<Operation>1</Operation>
<LocalCommand/>
<RemoteCommand/>
<Overwrite>True</Overwrite>
</DeployFile>
<DeployFile Include="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib">
<RemoteDir>FmxDemoPasLibVlc.app\Contents\MacOS\</RemoteDir>
<RemoteName>libcgunwind.1.0.dylib</RemoteName>
<Operation>1</Operation>
<LocalCommand/>
<RemoteCommand/>
<Overwrite>True</Overwrite>
</DeployFile>
<DeployFile Include="$(BDS)\bin\delphi_PROJECTICNS.icns" Condition="'$(Config)'=='Debug'">
<RemoteDir>FmxDemoPasLibVlc.app\Contents\Resources\</RemoteDir>
<RemoteName>FmxDemoPasLibVlc.icns</RemoteName>
<Operation>1</Operation>
<LocalCommand/>
<RemoteCommand/>
<Overwrite>True</Overwrite>
</DeployFile>
<DeployFile Include="$(BDS)\bin\delphi_PROJECTICNS.icns" Condition="'$(Config)'=='Release'">
<RemoteDir>FmxDemoPasLibVlc.app\Contents\Resources\</RemoteDir>
<RemoteName>FmxDemoPasLibVlc.icns</RemoteName>
<Operation>1</Operation>
<LocalCommand/>
<RemoteCommand/>
<Overwrite>True</Overwrite>
</DeployFile>
<DeployFile Include="OSX32\Release\FmxDemoPasLibVlc.info.plist" Condition="'$(Config)'=='Release'">
<RemoteDir>FmxDemoPasLibVlc.app\Contents\</RemoteDir>
<RemoteName>Info.plist</RemoteName>
<Operation>1</Operation>
<LocalCommand/>
<RemoteCommand/>
<Overwrite>True</Overwrite>
</DeployFile>
<DeployFile Include="OSX32\Debug\FmxDemoPasLibVlc" Condition="'$(Config)'=='Debug'">
<RemoteDir>FmxDemoPasLibVlc.app\Contents\MacOS\</RemoteDir>
<RemoteName>FmxDemoPasLibVlc</RemoteName>
<Operation>1</Operation>
<LocalCommand/>
<RemoteCommand/>
<Overwrite>True</Overwrite>
<Required>True</Required>
</DeployFile>
<DeployFile Include="OSX32\Debug\FmxDemoPasLibVlc.entitlements" Condition="'$(Config)'=='Debug'">
<RemoteDir>FmxDemoPasLibVlc.app\../\</RemoteDir>
<RemoteName>FmxDemoPasLibVlc.entitlements</RemoteName>
<Operation>1</Operation>
<LocalCommand/>
<RemoteCommand/>
<Overwrite>True</Overwrite>
</DeployFile>
<DeployFile Include="OSX32\Release\FmxDemoPasLibVlc" Condition="'$(Config)'=='Release'">
<RemoteDir>FmxDemoPasLibVlc.app\Contents\MacOS\</RemoteDir>
<RemoteName>FmxDemoPasLibVlc</RemoteName>
<Operation>1</Operation>
<LocalCommand/>
<RemoteCommand/>
<Overwrite>True</Overwrite>
<Required>True</Required>
</DeployFile>
</ItemGroup>
<ItemGroup Condition="'$(Platform)'=='iOSSimulator'">
<DeployFile Include="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib">
<RemoteDir>FmxDemoPasLibVlc.app\</RemoteDir>
<RemoteName>libcgunwind.1.0.dylib</RemoteName>
<Operation>1</Operation>
<LocalCommand/>
<RemoteCommand/>
<Overwrite>True</Overwrite>
</DeployFile>
</ItemGroup>
<ItemGroup Condition="'$(Platform)'=='Win64'"/>
</Project>

View File

@@ -0,0 +1,41 @@
(*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* Any non-GPL usage of this software or parts of this software is strictly
* forbidden.
*
* The "appropriate copyright message" mentioned in section 2c of the GPLv2
* must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com"
*
*)
{$I ..\..\source\compiler.inc}
program FmxDemoPasLibVlc;
uses
System.StartUpCopy,
FMX.Forms,
MainFormUnit in 'MainFormUnit.pas' {MainForm};
{$R *.res}
begin
ReportMemoryLeaksOnShutdown := True;
Application.Initialize;
Application.Title := 'FmxDemoPasLibVlc' + ' - ' + {$IFDEF CPUX64}'64'{$ELSE}'32'{$ENDIF} + ' bit';
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,5 @@
inherited MainForm_LgXhdpiPh: TMainForm_LgXhdpiPh
ClientHeight = 695
ClientWidth = 450
DesignerMasterStyle = 0
end

View File

@@ -0,0 +1,5 @@
inherited MainForm_SmXhdpiPh: TMainForm_SmXhdpiPh
ClientHeight = 375
ClientWidth = 250
DesignerMasterStyle = 0
end

View File

@@ -0,0 +1,5 @@
inherited MainForm_Surface: TMainForm_Surface
ClientHeight = 1920
ClientWidth = 1080
DesignerMasterStyle = 0
end

View File

@@ -0,0 +1,3 @@
inherited MainForm_Windows: TMainForm_Windows
DesignerMasterStyle = 0
end

View File

@@ -0,0 +1,39 @@
object MainForm: TMainForm
Left = 0
Top = 0
Caption = 'FmxDemoPasLibVlc'
ClientHeight = 480
ClientWidth = 640
Position = ScreenCenter
FormFactor.Width = 320
FormFactor.Height = 480
FormFactor.Devices = [Desktop]
OnActivate = FormActivate
OnCreate = FormCreate
OnClose = FormClose
DesignerMasterStyle = 0
object MainMenu: TMainMenu
Left = 128
Top = 80
object MenuFile: TMenuItem
Text = 'File'
object MenuOpen: TMenuItem
Locked = True
ShortCut = 16463
Text = 'Open'
OnClick = MenuOpenClick
end
object MenuQuit: TMenuItem
Locked = True
ShortCut = 16465
Text = 'Quit'
OnClick = MenuQuitClick
end
end
end
object OpenDialog: TOpenDialog
InitialDir = 'C:\_LibXE\vlc\_testFiles'
Left = 40
Top = 80
end
end

View File

@@ -0,0 +1,5 @@
inherited MainForm_iPad: TMainForm_iPad
ClientHeight = 1004
ClientWidth = 768
DesignerMasterStyle = 0
end

View File

@@ -0,0 +1,5 @@
inherited MainForm_iPhone55in: TMainForm_iPhone55in
ClientHeight = 716
ClientWidth = 414
DesignerMasterStyle = 0
end

View File

@@ -0,0 +1,238 @@
(*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* Any non-GPL usage of this software or parts of this software is strictly
* forbidden.
*
* The "appropriate copyright message" mentioned in section 2c of the GPLv2
* must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com"
*
*)
{$I ..\..\source\compiler.inc}
unit MainFormUnit;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Menus,
{$IFDEF MSWINDOWS}
FMX.Platform.Win,
{$ENDIF}
{$IFDEF MACOS}
FMX.Platform.Mac,
Macapi.AppKit,
Macapi.CocoaTypes,
Macapi.Foundation,
Macapi.Helpers,
Macapi.ObjectiveC,
Macapi.CoreGraphics,
Macapi.CoreFoundation,
{$ENDIF}
FMX.StdCtrls, FMX.Viewport3D, FMX.Objects, FMX.Media,
FMX.ExtCtrls, FMX.Advertising,
PasLibVlcUnit;
type
TMainForm = class(TForm)
MainMenu: TMainMenu;
MenuFile: TMenuItem;
MenuOpen: TMenuItem;
OpenDialog: TOpenDialog;
MenuQuit: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure MenuOpenClick(Sender: TObject);
procedure MenuQuitClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormActivate(Sender: TObject);
private
p_li : libvlc_instance_t_ptr;
p_mi : libvlc_media_t_ptr;
public
procedure PlayerInit();
procedure PlayerStop();
procedure PlayerPlay(fileName: WideString);
procedure PlayerDestroy();
end;
var
MainForm: TMainForm;
implementation
{$R *.fmx}
{$R *.Windows.fmx MSWINDOWS}
{$R *.Surface.fmx MSWINDOWS}
{$R *.SmXhdpiPh.fmx ANDROID}
{$R *.LgXhdpiPh.fmx ANDROID}
{$R *.iPad.fmx IOS}
{$R *.iPhone55in.fmx IOS}
procedure TMainForm.PlayerInit();
begin
// libvlc_dynamic_dll_init_with_path('C:\Program Files (x86)\VideoLAN\VLC');
libvlc_dynamic_dll_init();
if (libvlc_dynamic_dll_error <> '') then
begin
ShowMessage(libvlc_dynamic_dll_error);
Application.Terminate;
exit;
end;
with TArgcArgs.Create([
libvlc_dynamic_dll_path,
'--intf=dummy',
'--ignore-config',
'--quiet',
'--no-video-title-show',
'--no-video-on-top'
]) do
begin
p_li := libvlc_new(ARGC, ARGS);
Free;
end;
if (p_li <> NIL) then
begin
p_mi := libvlc_media_player_new(p_li);
end;
end;
procedure TMainForm.PlayerStop();
begin
if (p_mi <> NIL) then
begin
if (libvlc_media_player_is_playing(p_mi) = 1) then
begin
libvlc_media_player_stop(p_mi);
Sleep(50);
while (libvlc_media_player_is_playing(p_mi) = 1) do
begin
Sleep(50);
end;
end;
libvlc_media_player_release(p_mi);
p_mi := NIL;
Sleep(50);
end;
end;
procedure TMainForm.PlayerPlay(fileName: WideString);
var
p_md : libvlc_media_t_ptr;
begin
if (p_li <> NIL) then
begin
p_md := libvlc_media_new_path(p_li, PAnsiChar(UTF8Encode(fileName)));
if (p_md <> NIL) then
begin
if (p_mi <> NIL) then
begin
// libvlc_video_set_key_input(p_mi, 1);
// libvlc_video_set_mouse_input(p_mi, 1);
{$IFDEF MSWINDOWS}
libvlc_media_player_set_display_window(p_mi, WindowHandleToPlatform(MainForm.Handle).Wnd);
{$ENDIF}
{$IFDEF MACOS}
libvlc_media_player_set_display_window(p_mi, WindowHandleToPlatform(MainForm.Handle).View.superview);
{$ENDIF}
libvlc_media_player_set_media(p_mi, p_md);
libvlc_media_player_play(p_mi);
end;
libvlc_media_release(p_md);
end;
end;
end;
procedure TMainForm.PlayerDestroy();
begin
if (p_li <> NIL) then
begin
PlayerStop();
libvlc_release(p_li);
p_li := NIL;
end;
libvlc_dynamic_dll_done();
end;
procedure TMainForm.FormActivate(Sender: TObject);
{$IFDEF MACOS}
var
windowHandle : TMacWindowHandle;
size : NSSize;
begin
windowHandle := WindowHandleToPlatform( Handle );
// set the minimum size of the window
size.width := 512;
size.height := 512;
windowHandle.Wnd.setContentMinSize( size );
// set the maximum size of the window
size.width := 1024;
size.height := 768;
windowHandle.Wnd.setContentMaxSize( size );
// set window remember screen size
windowHandle.Wnd.setFrameAutosaveName(StrToNSStr('MainForm'));
// Allow dragging of an FMX form by clicking anywhere in the client area, not just the title bar
windowHandle.Wnd.setMovableByWindowBackground( true );
end;
{$ELSE}
begin
end;
{$ENDIF}
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
PlayerDestroy();
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
p_li := NIL;
p_mi := NIL;
PlayerInit();
Caption := Caption + ' - ' + {$IFDEF CPUX64}'64'{$ELSE}'32'{$ENDIF} + ' bit';
if (libvlc_dynamic_dll_error = '') then
begin
Caption := Caption + ', libvlc: ' + libvlc_dynamic_dll_vlc_version_str;
if (ParamStr(1) <> '') then
begin
PlayerPlay(ParamStr(1));
end;
end;
end;
procedure TMainForm.MenuOpenClick(Sender: TObject);
begin
if OpenDialog.Execute() then
begin
PlayerPlay(OpenDialog.FileName);
OpenDialog.InitialDir := ExtractFilePath(OpenDialog.FileName);
end;
end;
procedure TMainForm.MenuQuitClick(Sender: TObject);
begin
Application.Terminate;
end;
end.

View File

@@ -0,0 +1,13 @@
object PlayForm: TPlayForm
Left = 0
Top = 0
Border.Styling = False
BorderIcons = []
Caption = 'Form1'
ClientHeight = 200
ClientWidth = 200
FormFactor.Width = 320
FormFactor.Height = 480
FormFactor.Devices = [Desktop]
DesignerMasterStyle = 0
end

View File

@@ -0,0 +1,49 @@
(*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* Any non-GPL usage of this software or parts of this software is strictly
* forbidden.
*
* The "appropriate copyright message" mentioned in section 2c of the GPLv2
* must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com"
*
*)
{$I ..\..\source\compiler.inc}
unit PlayFormUnit;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs;
type
TPlayForm = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
PlayForm: TPlayForm;
implementation
{$R *.fmx}
end.