diff --git a/README.md b/README.md
index 75e14321..37313d9d 100644
--- a/README.md
+++ b/README.md
@@ -3,10 +3,10 @@ CEF4Delphi is an open source project created by Salvador D
CEF4Delphi is based on DCEF3, made by Henri Gourvest. The original license of DCEF3 still applies to CEF4Delphi. Read the license terms in the first lines of any *.pas file.
-CEF4Delphi uses CEF 81.2.15 which includes Chromium 81.0.4044.92.
+CEF4Delphi uses CEF 81.2.16 which includes Chromium 81.0.4044.92.
The CEF binaries used by CEF4Delphi are available for download at spotify :
-* [32 bits](http://opensource.spotify.com/cefbuilds/cef_binary_81.2.15%2Bge07275d%2Bchromium-81.0.4044.92_windows32.tar.bz2)
-* 64 bits not available at this moment.
+* 32 bits not available at this moment.
+* [64 bits](http://opensource.spotify.com/cefbuilds/cef_binary_81.2.16%2Bgdacda4f%2Bchromium-81.0.4044.92_windows64.tar.bz2)
CEF4Delphi was developed and tested on Delphi 10.3.3 and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 10.2 and Lazarus 2.0.6/FPC 3.0.4. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components.
diff --git a/packages/cef4delphi_lazarus.lpk b/packages/cef4delphi_lazarus.lpk
index 524b4bd6..d1313e87 100644
--- a/packages/cef4delphi_lazarus.lpk
+++ b/packages/cef4delphi_lazarus.lpk
@@ -21,7 +21,7 @@
-
+
diff --git a/source/uCEFApplicationCore.pas b/source/uCEFApplicationCore.pas
index 7282af31..eebe3b2c 100644
--- a/source/uCEFApplicationCore.pas
+++ b/source/uCEFApplicationCore.pas
@@ -62,7 +62,7 @@ uses
const
CEF_SUPPORTED_VERSION_MAJOR = 81;
CEF_SUPPORTED_VERSION_MINOR = 2;
- CEF_SUPPORTED_VERSION_RELEASE = 15;
+ CEF_SUPPORTED_VERSION_RELEASE = 16;
CEF_SUPPORTED_VERSION_BUILD = 0;
CEF_CHROMEELF_VERSION_MAJOR = 81;
diff --git a/source/uCEFAudioHandler.pas b/source/uCEFAudioHandler.pas
deleted file mode 100644
index a3bb81c4..00000000
--- a/source/uCEFAudioHandler.pas
+++ /dev/null
@@ -1,247 +0,0 @@
-// ************************************************************************
-// ***************************** CEF4Delphi *******************************
-// ************************************************************************
-//
-// CEF4Delphi is based on DCEF3 which uses CEF to embed a chromium-based
-// browser in Delphi applications.
-//
-// The original license of DCEF3 still applies to CEF4Delphi.
-//
-// For more information about CEF4Delphi visit :
-// https://www.briskbard.com/index.php?lang=en&pageid=cef
-//
-// Copyright © 2020 Salvador Diaz Fau. All rights reserved.
-//
-// ************************************************************************
-// ************ vvvv Original license and comments below vvvv *************
-// ************************************************************************
-(*
- * Delphi Chromium Embedded 3
- *
- * Usage allowed under the restrictions of the Lesser GNU General Public License
- * or alternatively the restrictions of the Mozilla Public License 1.1
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
- * the specific language governing rights and limitations under the License.
- *
- * Unit owner : Henri Gourvest
- * Web site : http://www.progdigy.com
- * Repository : http://code.google.com/p/delphichromiumembedded/
- * Group : http://groups.google.com/group/delphichromiumembedded
- *
- * Embarcadero Technologies, Inc is not permitted to use or redistribute
- * this source code without explicit permission.
- *
- *)
-
-unit uCEFAudioHandler;
-
-{$IFDEF FPC}
- {$MODE OBJFPC}{$H+}
-{$ENDIF}
-
-{$IFNDEF CPUX64}{$ALIGN ON}{$ENDIF}
-{$MINENUMSIZE 4}
-
-{$I cef.inc}
-
-interface
-
-uses
- uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes;
-
-type
- TCefAudioHandlerOwn = class(TCefBaseRefCountedOwn, ICefAudioHandler)
- protected
- procedure OnAudioStreamStarted(const browser: ICefBrowser; audio_stream_id, channels: integer; channel_layout: TCefChannelLayout; sample_rate, frames_per_buffer: integer); virtual;
- procedure OnAudioStreamPacket(const browser: ICefBrowser; audio_stream_id: integer; const data : PPSingle; frames: integer; pts: int64); virtual;
- procedure OnAudioStreamStopped(const browser: ICefBrowser; audio_stream_id: integer); virtual;
-
- procedure RemoveReferences; virtual;
-
- public
- constructor Create; virtual;
- end;
-
- TCustomAudioHandler = class(TCefAudioHandlerOwn)
- protected
- FEvents : Pointer;
-
- procedure OnAudioStreamStarted(const browser: ICefBrowser; audio_stream_id, channels: integer; channel_layout: TCefChannelLayout; sample_rate, frames_per_buffer: integer); override;
- procedure OnAudioStreamPacket(const browser: ICefBrowser; audio_stream_id: integer; const data : PPSingle; frames: integer; pts: int64); override;
- procedure OnAudioStreamStopped(const browser: ICefBrowser; audio_stream_id: integer); override;
-
- procedure RemoveReferences; override;
-
- public
- constructor Create(const events : IChromiumEvents); reintroduce; virtual;
- destructor Destroy; override;
- end;
-
-implementation
-
-uses
- {$IFDEF DELPHI16_UP}
- System.SysUtils,
- {$ELSE}
- SysUtils,
- {$ENDIF}
- uCEFMiscFunctions, uCEFLibFunctions, uCEFBrowser;
-
-procedure cef_audio_handler_on_audio_stream_started(self : PCefAudioHandler;
- browser : PCefBrowser;
- audio_stream_id : integer;
- channels : integer;
- channel_layout : TCefChannelLayout;
- sample_rate : integer;
- frames_per_buffer : integer); stdcall;
-var
- TempObject : TObject;
-begin
- TempObject := CefGetObject(self);
-
- if (TempObject <> nil) and (TempObject is TCefAudioHandlerOwn) then
- TCefAudioHandlerOwn(TempObject).OnAudioStreamStarted(TCefBrowserRef.UnWrap(browser),
- audio_stream_id,
- channels,
- channel_layout,
- sample_rate,
- frames_per_buffer);
-end;
-
-procedure cef_audio_handler_on_audio_stream_packet( self : PCefAudioHandler;
- browser : PCefBrowser;
- audio_stream_id : integer;
- const data : PPSingle;
- frames : integer;
- pts : int64); stdcall;
-var
- TempObject : TObject;
-begin
- TempObject := CefGetObject(self);
-
- if (TempObject <> nil) and (TempObject is TCefAudioHandlerOwn) then
- TCefAudioHandlerOwn(TempObject).OnAudioStreamPacket(TCefBrowserRef.UnWrap(browser),
- audio_stream_id,
- data,
- frames,
- pts);
-end;
-
-procedure cef_audio_handler_on_audio_stream_stopped(self : PCefAudioHandler;
- browser : PCefBrowser;
- audio_stream_id : integer); stdcall;
-var
- TempObject : TObject;
-begin
- TempObject := CefGetObject(self);
-
- if (TempObject <> nil) and (TempObject is TCefAudioHandlerOwn) then
- TCefAudioHandlerOwn(TempObject).OnAudioStreamStopped(TCefBrowserRef.UnWrap(browser),
- audio_stream_id);
-end;
-
-constructor TCefAudioHandlerOwn.Create;
-begin
- inherited CreateData(SizeOf(TCefAudioHandler));
-
- with PCefAudioHandler(FData)^ do
- begin
- on_audio_stream_started := {$IFDEF FPC}@{$ENDIF}cef_audio_handler_on_audio_stream_started;
- on_audio_stream_packet := {$IFDEF FPC}@{$ENDIF}cef_audio_handler_on_audio_stream_packet;
- on_audio_stream_stopped := {$IFDEF FPC}@{$ENDIF}cef_audio_handler_on_audio_stream_stopped;
- end;
-end;
-
-procedure TCefAudioHandlerOwn.OnAudioStreamStarted(const browser : ICefBrowser;
- audio_stream_id : integer;
- channels : integer;
- channel_layout : TCefChannelLayout;
- sample_rate : integer;
- frames_per_buffer : integer);
-begin
- //
-end;
-
-procedure TCefAudioHandlerOwn.OnAudioStreamPacket(const browser : ICefBrowser;
- audio_stream_id : integer;
- const data : PPSingle;
- frames : integer;
- pts : int64);
-begin
- //
-end;
-
-procedure TCefAudioHandlerOwn.OnAudioStreamStopped(const browser : ICefBrowser;
- audio_stream_id : integer);
-begin
- //
-end;
-
-procedure TCefAudioHandlerOwn.RemoveReferences;
-begin
- //
-end;
-
-
-// TCustomAudioHandler
-
-constructor TCustomAudioHandler.Create(const events : IChromiumEvents);
-begin
- inherited Create;
-
- FEvents := Pointer(events);
-end;
-
-destructor TCustomAudioHandler.Destroy;
-begin
- RemoveReferences;
-
- inherited Destroy;
-end;
-
-procedure TCustomAudioHandler.RemoveReferences;
-begin
- FEvents := nil;
-end;
-
-procedure TCustomAudioHandler.OnAudioStreamStarted(const browser : ICefBrowser;
- audio_stream_id : integer;
- channels : integer;
- channel_layout : TCefChannelLayout;
- sample_rate : integer;
- frames_per_buffer : integer);
-begin
- if (FEvents <> nil) then
- IChromiumEvents(FEvents).doOnAudioStreamStarted(browser,
- audio_stream_id,
- channels,
- channel_layout,
- sample_rate,
- frames_per_buffer);
-end;
-
-procedure TCustomAudioHandler.OnAudioStreamPacket(const browser : ICefBrowser;
- audio_stream_id : integer;
- const data : PPSingle;
- frames : integer;
- pts : int64);
-begin
- if (FEvents <> nil) then
- IChromiumEvents(FEvents).doOnAudioStreamPacket(browser,
- audio_stream_id,
- data,
- frames,
- pts);
-end;
-
-procedure TCustomAudioHandler.OnAudioStreamStopped(const browser : ICefBrowser;
- audio_stream_id : integer);
-begin
- if (FEvents <> nil) then
- IChromiumEvents(FEvents).doOnAudioStreamStopped(browser,
- audio_stream_id);
-end;
-
-end.
diff --git a/update_CEF4Delphi.json b/update_CEF4Delphi.json
index b0b6dca4..11d6edb0 100644
--- a/update_CEF4Delphi.json
+++ b/update_CEF4Delphi.json
@@ -2,9 +2,9 @@
"UpdateLazPackages" : [
{
"ForceNotify" : true,
- "InternalVersion" : 117,
+ "InternalVersion" : 118,
"Name" : "cef4delphi_lazarus.lpk",
- "Version" : "81.2.15.0"
+ "Version" : "81.2.16.0"
}
],
"UpdatePackageData" : {