Browse Source

--- Merging r14885 into '.':
U rtl/objpas/classes/lists.inc
--- Merging r14887 into '.':
U ide/fpmfile.inc
--- Merging r14893 into '.':
G rtl/objpas/classes/lists.inc
--- Merging r14897 into '.':
U packages/fcl-image/src/fpimage.pp
U packages/fcl-image/src/fppalette.inc
--- Merging r14898 into '.':
U rtl/win/wininc/struct.inc
--- Merging r14899 into '.':
U packages/openal/src/alexth.inc
--- Merging r14917 into '.':
U packages/fcl-res/src/elfsubreader.inc
U packages/fcl-res/src/elfsubwriter.inc
U packages/fcl-res/src/machosubreader.inc
U packages/fcl-res/src/versionresource.pp
--- Merging r14918 into '.':
U ide/fpide.pas
--- Merging r14920 into '.':
U ide/fpusrscr.pas

# revisions: 14885,14887,14893,14897,14898,14899,14917,14918,14920
------------------------------------------------------------------------
r14885 | marco | 2010-02-11 14:37:34 +0100 (Thu, 11 Feb 2010) | 2 lines
Changed paths:
M /trunk/rtl/objpas/classes/lists.inc

* fix from mantis 15655 that adds notifiers to tlist.addlist.

------------------------------------------------------------------------
------------------------------------------------------------------------
r14887 | marco | 2010-02-11 17:11:53 +0100 (Thu, 11 Feb 2010) | 1 line
Changed paths:
M /trunk/ide/fpmfile.inc

* fix for #7308. (changeonopen preferences does nothing)
------------------------------------------------------------------------
------------------------------------------------------------------------
r14893 | marco | 2010-02-12 23:32:22 +0100 (Fri, 12 Feb 2010) | 2 lines
Changed paths:
M /trunk/rtl/objpas/classes/lists.inc

* another fix for #15655, wrongly fixed in r14885

------------------------------------------------------------------------
------------------------------------------------------------------------
r14897 | marco | 2010-02-13 14:47:06 +0100 (Sat, 13 Feb 2010) | 4 lines
Changed paths:
M /trunk/packages/fcl-image/src/fpimage.pp
M /trunk/packages/fcl-image/src/fppalette.inc

* fix for 15509.
* setcount drastically simplified
* Capacity now property with setter, to allow shrinking (but only till count)

------------------------------------------------------------------------
------------------------------------------------------------------------
r14898 | marco | 2010-02-13 15:06:08 +0100 (Sat, 13 Feb 2010) | 3 lines
Changed paths:
M /trunk/rtl/win/wininc/struct.inc

* tcursorinfo incorrectly was aliassed to console_cursor_info, which is incorrect for
getcursorinfo in redef.inc. Added cursor_info structs as per MSDN. Mantis 15745

------------------------------------------------------------------------
------------------------------------------------------------------------
r14899 | marco | 2010-02-13 15:13:33 +0100 (Sat, 13 Feb 2010) | 2 lines
Changed paths:
M /trunk/packages/openal/src/alexth.inc

* patch that cleans up openal. Mantis 15756

------------------------------------------------------------------------
------------------------------------------------------------------------
r14917 | marco | 2010-02-15 15:15:54 +0100 (Mon, 15 Feb 2010) | 2 lines
Changed paths:
M /trunk/packages/fcl-res/src/elfsubreader.inc
M /trunk/packages/fcl-res/src/elfsubwriter.inc
M /trunk/packages/fcl-res/src/machosubreader.inc
M /trunk/packages/fcl-res/src/versionresource.pp

* patches from Paul for mantis 15716, readwidestring #0 issue + warning removal

------------------------------------------------------------------------
------------------------------------------------------------------------
r14918 | marco | 2010-02-15 16:59:33 +0100 (Mon, 15 Feb 2010) | 1 line
Changed paths:
M /trunk/ide/fpide.pas

* fix for 11679, hide cursor when returning from dosshell/userprog
------------------------------------------------------------------------
------------------------------------------------------------------------
r14920 | marco | 2010-02-17 09:53:48 +0100 (Wed, 17 Feb 2010) | 1 line
Changed paths:
M /trunk/ide/fpusrscr.pas

* Patch from benjawin, Mantis 15779 to better deal with scrollbackbuffer<>screensize.
------------------------------------------------------------------------

git-svn-id: branches/fixes_2_4@14933 -

marco 15 years ago
parent
commit
326289e236

+ 2 - 1
ide/fpide.pas

@@ -1468,6 +1468,7 @@ begin
 
   if Assigned(UserScreen) then
     UserScreen^.SwitchBackToIDEScreen;
+  Video.SetCursorType(crHidden);
 {$ifdef Windows}
   { This message was sent when the VideoBuffer was smaller
     than was the IdeApp thought => writes to random memory and random crashes... PM }
@@ -1476,7 +1477,7 @@ begin
 {$ifdef Unix}
   SetKnownKeys;
 {$endif Unix}
-{$ifndef Windows}
+ {$ifndef Windows}
 {$ifndef go32v2}
   UpdateScreen(true);
 {$endif go32v2}

+ 9 - 1
ide/fpmfile.inc

@@ -119,8 +119,16 @@ begin
    begin
      FileName:=FExpand(LocatePasFile(FileName));
      if ExistsFile(FileName) then
+       begin
      { like for BP unexistant files should  be created PM }
-       OpenEditorWindow(nil,FileName,0,0)
+         OpenEditorWindow(nil,FileName,0,0);
+         if (MiscOptions and moChangeDirOnOpen)<>0 then
+          begin
+            ChDir(DirOf(filename)); 
+            CurDirChanged;
+            GetDir(0,StartUpDir);
+          end;
+       end
      else
        {ErrorBox(FormatStrStr(msg_cantfindfile,FileName),nil);}
        begin

+ 8 - 2
ide/fpusrscr.pas

@@ -986,7 +986,7 @@ begin
   GetConsoleScreenBufferInfo(StartScreenBufferHandle,
     @ConsoleScreenBufferInfo);
   BigWin.X:=ConsoleScreenBufferInfo.dwSize.X;
-  BigWin.Y:=200;
+  BigWin.Y:=ConsoleScreenBufferInfo.srwindow.bottom-ConsoleScreenBufferInfo.srwindow.top; // mants 15779 was 200
   { Try to allow to store more info }
   res:=SetConsoleScreenBufferSize(NewScreenBufferHandle,BigWin);
   if not res then
@@ -999,8 +999,14 @@ begin
     @ConsoleScreenBufferInfo);
   { make sure that the IDE Screen Handle has the maximum display size
     this removes the scroll bars if it is maximized }
+
+  BigWin.X:=ConsoleScreenBufferInfo.dwSize.X;
+  BigWin.Y:=ConsoleScreenBufferInfo.srwindow.bottom-ConsoleScreenBufferInfo.srwindow.top;
   res:=SetConsoleScreenBufferSize(NewScreenBufferHandle,
-         ConsoleScreenBufferInfo.dwMaximumWindowSize);
+     BigWin);
+// mants 15779 : was
+//  res:=SetConsoleScreenBufferSize(NewScreenBufferHandle,
+//         ConsoleScreenBufferInfo.dwMaximumWindowSize);
   if not res then
     error:=GetLastError;
   IDEScreenBufferHandle:=NewScreenBufferHandle;

+ 2 - 0
packages/fcl-image/src/fpimage.pp

@@ -73,6 +73,7 @@ type
       function GetCount : integer;
       procedure SetColor (index:integer; const Value:TFPColor); virtual;
       function GetColor (index:integer) : TFPColor;
+      procedure SetCapacity (ind : Integer);
       procedure CheckIndex (index:integer); virtual;
       procedure EnlargeData; virtual;
     public
@@ -86,6 +87,7 @@ type
       procedure Clear; virtual;
       property Color [Index : integer] : TFPColor read GetColor write SetColor; default;
       property Count : integer read GetCount write SetCount;
+      property Capacity : integer read FCapacity write SetCapacity;
   end;
 
   TFPCustomImage = class(TPersistent)

+ 19 - 11
packages/fcl-image/src/fppalette.inc

@@ -122,23 +122,15 @@ begin
 end;
 
 procedure TFPPalette.SetCount (Value:integer);
-var NewData : PFPColorArray;
+var
     O : integer;
 begin
   if Value <> FCount then
     begin
     if Value > FCapacity then
       begin
-      O := FCapacity;
-      FCapacity := Value + 8;
-      if FCapacity > 0 then
-        GetMem (NewData, sizeof(TFPColor)*FCapacity)
-      else
-        FData := nil;
-      move (FData^, NewData^, sizeof(TFPColor)*FCount);
-      if O > 0 then
-        FreeMem (FData);
-      FData := NewData;
+        FCapacity := Value+8;
+        Reallocmem(FData,sizeof(TFPColor)*FCapacity);
       end;
     for o := FCount to Value-1 do
       FData^[o] := colBlack;
@@ -146,6 +138,22 @@ begin
     end;
 end;
 
+procedure TFPPalette.SetCapacity (ind : Integer);
+var o : Integer;
+begin
+  if ind<count then ind:=count;
+  if ind<>fcapacity then
+    begin
+      fcapacity:=ind;
+      Reallocmem(FData,sizeof(TFPColor)*FCapacity);
+    end;
+  if ind>count then
+    begin
+      for o := FCount to ind-1 do
+        FData^[o] := colBlack;
+    end;
+end;
+
 function TFPPalette.IndexOf (const AColor:TFPColor) : integer;
 begin
   result := FCount;

+ 3 - 3
packages/fcl-res/src/elfsubreader.inc

@@ -55,13 +55,13 @@ type
     procedure ReadElfHeader(aStream : TStream);
     procedure ReadSectionHeaders(aStream : TStream);
     procedure ReadStringTable(aStream : TStream);
-    function FindSection(const aName : string) : integer; override;
     procedure ReadRelocations(aStream : TStream);
     procedure ReadResHeader(aStream : TStream);
-    procedure ReadNode(aStream : TStream; aParent : TResourceTreeNode;
-      aResources : TResources; named : boolean); override;
   protected
+    function FindSection(const aName : string) : integer; override;
     procedure Load(aResources : TResources; aStream : TStream); override;
+    procedure ReadNode(aStream : TStream; aParent : TResourceTreeNode;
+      aResources : TResources; named : boolean); override;
   public
   end;
 

+ 2 - 2
packages/fcl-res/src/elfsubwriter.inc

@@ -63,17 +63,17 @@ type
   private
     fRelocInfo :   TElfRelocInfo;
     fRelocTable : _TElfRelocTable_;
-    procedure PrescanResourceTree; override;
     procedure WriteEmptyElfHeader(aStream : TStream);
     procedure WriteResHeader(aStream : TStream; aResources : TResources);
     procedure WriteNodeInfos(aStream : TStream);
-    procedure WriteNodeInfo(aStream : TStream; aNode : TResourceTreeNode); override;
     procedure WriteSectHeaders(aStream : TStream);
     procedure FixElfHeader(aStream : TStream);
     procedure WriteSymbols(aStream : TStream);
     procedure WriteRelocations(aStream : TStream);
   protected
+    procedure PrescanResourceTree; override;
     procedure Write(aResources : TResources; aStream : TStream); override;
+    procedure WriteNodeInfo(aStream : TStream; aNode : TResourceTreeNode); override;
   public
     constructor Create(aParent : TElfResourceWriter; const aMachineType
       : integer; const aOppositeEndianess : boolean); override;

+ 2 - 2
packages/fcl-res/src/machosubreader.inc

@@ -21,12 +21,12 @@ type
   private
     fSection : _TSection_;
     fResHdr : _TResHdr_;
-    procedure ReadNode(aStream : TStream; aParent : TResourceTreeNode;
-      aResources : TResources; named : boolean); override;
     function FindResSection(aStream : TStream) : boolean;
     procedure ReadResHeader(aStream : TStream);
   protected
     procedure Load(aResources : TResources; aStream : TStream); override;
+    procedure ReadNode(aStream : TStream; aParent : TResourceTreeNode;
+      aResources : TResources; named : boolean); override;
   public
     constructor Create(aParent : TMachOResourceReader; const aHeader : TMachHdr;
       const aOppositeEndianess : boolean); override;

+ 2 - 1
packages/fcl-res/src/versionresource.pp

@@ -310,11 +310,12 @@ begin
   w:=0;
   repeat
     RawData.ReadBuffer(w,2);
+    if w = 0 then break;
     {$IFDEF ENDIAN_BIG}
     w:=SwapEndian(w);
     {$ENDIF}
     ws:=ws+widechar(w);
-  until w=0;
+  until false;
   Result:=ws;
 end;
 

+ 108 - 164
packages/openal/src/alexth.inc

@@ -1,176 +1,120 @@
+(* AL_LOKI_IMA_ADPCM_format extension *)
 const
-
-(* format base = $10000 *)
   AL_FORMAT_IMA_ADPCM_MONO16_EXT            = $10000;
   AL_FORMAT_IMA_ADPCM_STEREO16_EXT          = $10001;
+
+(* AL_LOKI_WAVE_format extension *)
+const
   AL_FORMAT_WAVE_EXT                        = $10002;
+
+(* AL_EXT_vorbis extension *)
+const
   AL_FORMAT_VORBIS_EXT                      = $10003;
 
-(* four point formats *)
+(* AL_LOKI_quadriphonic extension *)
+const
   AL_FORMAT_QUAD8_LOKI                      = $10004;
   AL_FORMAT_QUAD16_LOKI                     = $10005;
 
-(**
- * token extensions, base = $20000
- *)
-
-(* deprecated, use AL_GAIN *)
-  AL_GAIN_LINEAR_LOKI                      = $20000;
-
-(*
- * types for special loaders.  This should be deprecated in favor
- * of the special format tags.
- *)
-type
-  PWaveFMT                          = ^WaveFMT;
-  WaveFMT                           = packed record
-    encoding        : ALushort;
-    channels        : ALushort;      (* 1 = mono, 2 = stereo *)
-    frequency       : ALuint;        (* One of 11025, 22050, or 44100 Hz *)
-    byterate        : ALuint;        (* Average bytes per second *)
-    blockalign      : ALushort;      (* Bytes per sample block *)
-    bitspersample   : ALushort;
-  end;
-
-  PalWaveFMT_LOKI                   = ^alWaveFMT_LOKI;
-  alWaveFMT_LOKI                    = WaveFMT;
-
-  P_MS_ADPCM_decodestate            = ^_MS_ADPCM_decodestate;
-  _MS_ADPCM_decodestate             = packed record
-    hPredictor      : ALubyte;
-    iDelta          : ALushort;
-    iSamp1          : ALshort;
-    iSamp2          : ALshort;
-  end;
-
-  PalMSADPCM_decodestate_LOKI       = ^alMSADPCM_decodestate_LOKI;
-  alMSADPCM_decodestate_LOKI        = _MS_ADPCM_decodestate;
-
-  PMS_ADPCM_decoder                 = ^MS_ADPCM_decoder;
-  MS_ADPCM_decoder                  = packed record
-    wavefmt         : alWaveFMT_LOKI;
-    wSamplesPerBlock: ALushort;
-    wNumCoef        : ALushort;
-    aCoeff          : array[0..6] of array[0..1] of ALshort;
-    (* * * *)
-    state           : array[0..1] of alMSADPCM_decodestate_LOKI;
-  end;
-
-  PalMSADPCM_state_LOKI             = ^alMSADPCM_state_LOKI;
-  alMSADPCM_state_LOKI              = MS_ADPCM_decoder;
-
-  PIMA_ADPCM_decodestate_s          = ^IMA_ADPCM_decodestate_s;
-  IMA_ADPCM_decodestate_s           = packed record
-    valprev         : ALint;      (* Previous output value *)
-    index           : ALbyte;       (* Index into stepsize table *)
-  end;
-
-  PalIMAADPCM_decodestate_LOKI      = ^alIMAADPCM_decodestate_LOKI;
-  alIMAADPCM_decodestate_LOKI       = IMA_ADPCM_decodestate_s;
-
-  PIMA_ADPCM_decoder                = ^IMA_ADPCM_decoder;
-  IMA_ADPCM_decoder                 = packed record
-    wavefmt         : alWaveFMT_LOKI;
-    wSamplesPerBlock: ALushort;
-    (* * * *)
-    state           : array[0..1] of alIMAADPCM_decodestate_LOKI;
-  end;
-
-  PalIMAADPCM_state_LOKI            = ^alIMAADPCM_state_LOKI;
-  alIMAADPCM_state_LOKI             = IMA_ADPCM_decoder;
+(* AL_EXT_float32 extension *)
+const
+  AL_FORMAT_MONO_FLOAT32                    = $10010;
+  AL_FORMAT_STEREO_FLOAT32                  = $10011;
+
+(* AL_EXT_double extension *)
+const
+  AL_FORMAT_MONO_DOUBLE_EXT                 = $10012;
+  AL_FORMAT_STEREO_DOUBLE_EXT               = $10013;
+
+(* ALC_LOKI_audio_channel extension *)
+const
+  ALC_CHAN_MAIN_LOKI                        = $500001;
+  ALC_CHAN_PCM_LOKI                         = $500002;
+  ALC_CHAN_CD_LOKI                          = $500003;
+
+(* ALC_ENUMERATE_ALL_EXT extension *)
+const
+  ALC_DEFAULT_ALL_DEVICES_SPECIFIER         = $1012;
+  ALC_ALL_DEVICES_SPECIFIER                 = $1013;
+
+(* AL_EXT_MCFORMATS extension *)
+const
+   AL_FORMAT_QUAD8                          = $1204;
+   AL_FORMAT_QUAD16                         = $1205;
+   AL_FORMAT_QUAD32                         = $1206;
+   AL_FORMAT_REAR8                          = $1207;
+   AL_FORMAT_REAR16                         = $1208;
+   AL_FORMAT_REAR32                         = $1209;
+   AL_FORMAT_51CHN8                         = $120A;
+   AL_FORMAT_51CHN16                        = $120B;
+   AL_FORMAT_51CHN32                        = $120C;
+   AL_FORMAT_61CHN8                         = $120D;
+   AL_FORMAT_61CHN16                        = $120E;
+   AL_FORMAT_61CHN32                        = $120F;
+   AL_FORMAT_71CHN8                         = $1210;
+   AL_FORMAT_71CHN16                        = $1211;
+   AL_FORMAT_71CHN32                        = $1212;
+
+(* AL_EXT_IMA4 extension *)
+const
+   AL_FORMAT_MONO_IMA4                      = $1300;
+   AL_FORMAT_STEREO_IMA4                    = $1301;
+
+(* AL_EXT_buffer_sub_data extension *)
+const
+   AL_BYTE_RW_OFFSETS_EXT                   = $1031;
+   AL_SAMPLE_RW_OFFSETS_EXT                 = $1032;
+   AL_SEC_RW_OFFSETS_EXT                    = $1033;
+
+procedure alBufferSubDataEXT(buffer :ALuint; format :ALenum; const data :PALvoid; offset :ALsizei; length :ALsizei); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+
+(* AL_EXT_STATIC_BUFFER extension *)
+procedure alBufferDataStatic(buffer :ALint; format :ALenum; data :Pointer; size, freq :ALsizei); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+
+(* AL_EXT_sample_buffer_object extension *)
+const
+   AL_SAMPLE_SOURCE_EXT                     = $1040;
+   AL_SAMPLE_SINK_EXT                       = $1041;
+   AL_READ_ONLY_EXT                         = $1042;
+   AL_WRITE_ONLY_EXT                        = $1043;
+   AL_READ_WRITE_EXT                        = $1044;
+   AL_STREAM_WRITE_EXT                      = $1045;
+   AL_STREAM_READ_EXT                       = $1046;
+   AL_STREAM_COPY_EXT                       = $1047;
+   AL_STATIC_WRITE_EXT                      = $1048;
+   AL_STATIC_READ_EXT                       = $1049;
+   AL_STATIC_COPY_EXT                       = $104A;
+   AL_DYNAMIC_WRITE_EXT                     = $104B;
+   AL_DYNAMIC_READ_EXT                      = $104C;
+   AL_DYNAMIC_COPY_EXT                      = $104D;
+
+  procedure alGenDatabuffersEXT(n:ALsizei; puiBuffers:pALuint); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alDeleteDatabuffersEXT(n:ALsizei; puiBuffers:pALuint); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  function  alIsDatabufferEXT(uiBuffer:ALuint):ALboolean; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alDatabufferDataEXT(buffer:ALuint; data:pALvoid; size:ALsizei; usage:ALenum); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alDatabufferSubDataEXT(buffer:ALuint; start:ALuint; length:ALsizei; data:pALvoid); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alGetDatabufferSubDataEXT(buffer:ALuint; start:ALuint; length:ALsizei; data:pALvoid); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alDatabufferfEXT(buffer:ALuint; eParam:ALenum; flValue:ALfloat); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alDatabufferfvEXT(buffer:ALuint; eParam:ALenum; flValues:pALfloat); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alDatabufferiEXT(buffer:ALuint; eParam:ALenum; lValue:ALint); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alDatabufferivEXT(buffer:ALuint; eParam:ALenum; plValues:pALint); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alGetDatabufferfEXT(buffer:ALuint; eParam:ALenum; pflValue:pALfloat); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alGetDatabufferfvEXT(buffer:ALuint; eParam:ALenum; pflValues:pALfloat); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alGetDatabufferiEXT(buffer:ALuint; eParam:ALenum; plValue:pALint); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alGetDatabufferivEXT(buffer:ALuint; eParam:ALenum; plValues:pALint); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alSelectDatabufferEXT(target:ALenum; uiBuffer:ALuint); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  function  alMapDatabufferEXT(uiBuffer:ALuint; start:ALuint; length:ALsizei; access:ALenum):pALvoid; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+  procedure alUnmapDatabufferEXT(uiBuffer:ALuint); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+
+(* ALC_EXT_disconnect extension *)
+const
+   ALC_CONNECTED                            = $0313;
+
+(* ALC_EXT_thread_local_context extension *)
 
+function alcMakeCurrent(context :PALCcontext) :ALCboolean; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
+function alcGetThreadContext() :PALCcontext; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
 
+(* AL_EXT_source_distance_model extension *)
 const
-(**
- * Context creation extension tokens
- * base = $200000
- *)
-
-(**
- * followed by ### of sources
- *)
-  ALC_SOURCES_LOKI                         = $200000;
-
-(**
- * followed by ### of buffers
- *)
-  ALC_BUFFERS_LOKI                         = $200001;
-
-(*
- *  Channel operations are probably a big no-no and destined
- *  for obsolesence.
- *
- *  base = $300000
- *)
-  ALC_CHAN_MAIN_LOKI                       = $300000;
-  ALC_CHAN_PCM_LOKI                        = $300001;
-  ALC_CHAN_CD_LOKI                         = $300002;
-
-(* loki *)
-type
-  CALLBACK_LOKI = function(a: ALuint; b: ALuint; c: PALshort; d: ALEnum; e: ALint; f: ALint): cint; cdecl;
-
-function alcGetAudioChannel_LOKI(channel: ALuint): ALfloat; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-procedure alcSetAudioChannel_LOKI(channel: ALuint; volume: ALfloat); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-procedure alBombOnError_LOKI; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-procedure alBufferi_LOKI(bid: ALuint; param: ALenum; value: ALint); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-procedure alBufferDataWithCallback_LOKI(bid: ALuint; cb: CALLBACK_LOKI); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-procedure alBufferWriteData_LOKI(buffer: ALuint; format: ALenum; data: PALvoid; size: ALsizei; freq: ALsizei; internalFormat: ALenum); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-procedure alGenStreamingBuffers_LOKI(n: ALsizei; samples: PALuint); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-function alBufferAppendData_LOKI(buffer: ALuint; format: ALenum; data: PALvoid; size: ALsizei; freq: ALsizei): ALsizei; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-function alBufferAppendWriteData_LOKI(buffer: ALuint; format: ALenum; data: PALvoid; size: ALsizei; freq: ALsizei; internalFormat: ALenum): ALsizei; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-
-(* binary compatibility *)
-function alBufferAppendData(buffer: ALuint; format: ALenum; data: PALvoid; size: ALsizei; freq: ALsizei): ALsizei; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-
-(*
- * Don't use these.  If you're reading this, you should remove these functions
- * and all other reverb functions.  Now.
- *)
-procedure alReverbScale_LOKI(sid: ALuint; param: ALfloat); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-procedure alReverbDelay_LOKI(sid: ALuint; param: ALfloat); cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-
-(* Capture api *)
-
-function alCaptureInit_EXT(format: ALenum; rate: ALuint; bufferSize: ALsizei): ALboolean; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-function alCaptureDestroy_EXT: ALboolean; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-function alCaptureStart_EXT: ALboolean; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-function alCaptureStop_EXT: ALboolean; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-
-(* Non-blocking device read *)
-
-function alCaptureGetData_EXT(data: PALvoid; n: ALsizei; format: ALenum; rate: ALuint): ALsizei; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-
-(* custom loaders *)
-
-function alutLoadVorbis_LOKI(bid: ALuint; const data: PALvoid; size: ALint): ALboolean; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-function alutLoadMP3_LOKI(bid: ALuint; data: PALvoid; size: ALint): ALboolean; cdecl; external {$IFDEF DYNLINK}openallib{$ENDIF};
-
-(* function pointers *)
-{
-type
-typedef ALfloat   ( ALC_APIENTRY *PFNALCGETAUDIOCHANNELPROC ) ( ALuint channel ): ALfloat; cdecl;
-typedef void      ( ALC_APIENTRY *PFNALCSETAUDIOCHANNELPROC ) ( ALuint channel, ALfloat volume ); cdecl;
-typedef void      ( AL_APIENTRY *PFNALBOMBONERRORPROC ) ( void ); cdecl;
-typedef void      ( AL_APIENTRY *PFNALBUFFERIPROC ) ( ALuint bid, ALenum param, ALint value ); cdecl;
-typedef void      ( AL_APIENTRY *PFNALBUFFERDATAWITHCALLBACKPROC ) ( ALuint bid, int ( *Callback ) ( ALuint, ALuint, ALshort *, ALenum, ALint, ALint ) ); cdecl;
-typedef void      ( AL_APIENTRY *PFNALBUFFERWRITEDATAPROC ) ( ALuint buffer, ALenum format, ALvoid *data, ALsizei size, ALsizei freq, ALenum internalFormat ); cdecl;
-typedef void      ( AL_APIENTRY *PFNALGENSTREAMINGBUFFERSPROC ) ( ALsizei n, ALuint *samples ); cdecl;
-typedef ALsizei   ( AL_APIENTRY *PFNALBUFFERAPPENDDATAPROC ) ( ALuint buffer, ALenum format, ALvoid *data, ALsizei size, ALsizei freq ): ALsizei; cdecl;
-typedef ALsizei   ( AL_APIENTRY *PFNALBUFFERAPPENDWRITEDATAPROC ) ( ALuint buffer, ALenum format, ALvoid *data, ALsizei size, ALsizei freq, ALenum internalFormat ): ALsizei; cdecl;
-
-typedef ALboolean ( ALC_APIENTRY *PFNALCAPTUREINITPROC ) ( ALenum format, ALuint rate, ALsizei bufferSize ): ALboolean; cdecl;
-typedef ALboolean ( ALC_APIENTRY *PFNALCAPTUREDESTROYPROC ) ( void ): ALboolean; cdecl;
-typedef ALboolean ( ALC_APIENTRY *PFNALCAPTURESTARTPROC ) ( void ): ALboolean; cdecl;
-typedef ALboolean ( ALC_APIENTRY *PFNALCAPTURESTOPPROC ) ( void ): ALboolean; cdecl;
-
-typedef ALsizei   ( ALC_APIENTRY *PFNALCAPTUREGETDATAPROC ) ( ALvoid *data, ALsizei n, ALenum format, ALuint rate ): ALsizei; cdecl;
-
-typedef ALboolean ( AL_APIENTRY *PFNALUTLOADVORBISPROC ) ( ALuint bid, ALvoid *data, ALint size ): ALboolean; cdecl;
-typedef ALboolean ( AL_APIENTRY *PFNALUTLOADRAW_ADPCMDATAPROC ) ( ALuint bid, ALvoid *data, ALuint size, ALuint freq, ALenum format ): ALboolean; cdecl;
-typedef ALboolean ( AL_APIENTRY *ALUTLOADIMA_ADPCMDATAPROC ) ( ALuint bid, ALvoid *data, ALuint size, alIMAADPCM_state_LOKI *ias ): ALboolean; cdecl;
-typedef ALboolean ( AL_APIENTRY *ALUTLOADMS_ADPCMDATAPROC ) ( ALuint bid, void *data, int size, alMSADPCM_state_LOKI *mss ): ALboolean; cdecl;
-
-typedef void      ( AL_APIENTRY *PFNALREVERBSCALEPROC ) ( ALuint sid, ALfloat param ); cdecl;
-typedef void      ( AL_APIENTRY *PFNALREVERBDELAYPROC ) ( ALuint sid, ALfloat param ); cdecl;
-}
+   AL_SOURCE_DISTANCE_MODEL                 = $0200;

+ 9 - 1
rtl/objpas/classes/lists.inc

@@ -618,9 +618,17 @@ begin
 end;
 
 Procedure TList.AddList(AList : TList);
+var
+  I: Integer;
 begin
+  { this only does FList.AddList(AList.FList), avoiding notifications }
   FList.AddList(AList.FList);
-end;
+
+  { make lnAdded notifications }
+  for I := 0 to AList.Count - 1 do
+    if AList[I] <> nil then
+      Notify(AList[I], lnAdded);
+end;            
 
 procedure TList.Clear;
 

+ 9 - 1
rtl/win/wininc/struct.inc

@@ -988,7 +988,6 @@ Const
      _CONSOLE_CURSOR_INFO = CONSOLE_CURSOR_INFO;
      TCONSOLECURSORINFO = CONSOLE_CURSOR_INFO;
      PCONSOLECURSORINFO = ^CONSOLE_CURSOR_INFO;
-     TCURSORINFO = CONSOLE_CURSOR_INFO;
 
      COORD = record
           X : SHORT;
@@ -7498,6 +7497,15 @@ type
   PGRADIENT_RECT = ^_GRADIENT_RECT;
   LPGRADIENT_RECT = PGRADIENT_RECT;
 
+  CURSORINFO = record
+    		 cbSize  : DWORD;
+     		 flags   : DWORD;
+    		 hCursor : HCURSOR;
+    	         ptScreenPos : POINT;
+                 end;
+  PCURSORINFO = ^CURSORINFO;
+  TCURSORINFO = CURSORINFO;
+
 const 
   SECURITY_DESCRIPTOR_MIN_LENGTH = SIZEOF(SECURITY_DESCRIPTOR);