亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vraudio.pas

?? 作工控的好控件
?? PAS
字號:
{*****************************************************}
{                                                     }
{     Varian Component Workshop                       }
{                                                     }
{     Varian Software NL (c) 1996-2000                }
{     All Rights Reserved                             }
{                                                     }
{*****************************************************}

unit VrAudio;

{$I VRLIB.INC}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  VrControls;

type
  TVrAudioData = class(TPersistent)
  private
    FSize: Integer;
    FData: Pointer;
    procedure SetSize(Value: Integer);
    procedure WriteStream(Stream: TStream; WriteSize: Boolean); virtual;
    procedure LoadStream(Stream: TStream; ReadSize: Boolean); virtual;
  protected
    procedure DefineProperties(Filer: TFiler); override;
  public
    destructor Destroy; override;
    procedure Assign(Source: TPersistent); override;
    function Empty: Boolean;
    procedure Clear; virtual;
    procedure LoadFromStream(Stream: TStream); virtual;
    procedure SaveToStream(Stream: TStream); virtual;
    procedure LoadFromFile(const FileName: string); virtual;
    procedure SaveToFile(const FileName: string); virtual;
    property Size: Integer read FSize write SetSize;
    property Data: Pointer read FData;
  end;

  TVrWaveOption = (vwoAsync, vwoNoDefault, vwoLoop, vwoNoStop, vwoNoWait);
  TVrWaveOptions = set of TVrWaveOption;

  TVrWave = class(TVrComponent)
  private
    FSound: TVrAudioData;
    FFlags: Integer;
    FOptions: TVrWaveOptions;
    procedure SetSound(Value: TVrAudioData);
    procedure SetOptions(Value: TVrWaveOptions);
  protected
    procedure UpdatePlayOptions;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure Play;
    procedure Stop;
  published
    property Sound: TVrAudioData read FSound write SetSound;
    property Options: TVrWaveOptions read FOptions write SetOptions default [vwoASync, vwoNoDefault];
  end;


implementation

uses
  MMSystem;

const
  AudioId = $99200;

  ufWavePlay: array[TVrWaveOption] of Integer =
    (SND_ASYNC, SND_NODEFAULT, SND_LOOP, SND_NOSTOP, SND_NOWAIT);


{ TVrWave }

constructor TVrWave.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FSound := TVrAudioData.Create;
  FOptions := [vwoASync, vwoNoDefault];
  UpdatePlayOptions;
end;

destructor TVrWave.Destroy;
begin
  FSound.Free;
  inherited Destroy;
end;

procedure TVrWave.Play;
var
  OldCursor: TCursor;
begin
  if not Sound.Empty then
  begin
    OldCursor := Screen.Cursor;
    try
      Screen.Cursor := crHourGlass;
      PlaySound(FSound.Data, 0, FFlags);
    finally
      Screen.Cursor := OldCursor;
    end;
  end;
end;

procedure TVrWave.Stop;
begin
  PlaySound(nil, 0, FFlags);
end;

procedure TVrWave.UpdatePlayOptions;
var
  I: TVrWaveOption;
begin
  FFlags := SND_MEMORY;
  for I := Low(TVrWaveOption) to High(TVrWaveOption) do
    if I in Options then FFlags := FFlags or ufWavePlay[I];
  if not (vwoAsync in Options) then
    FFlags := FFlags or SND_SYNC;
end;

procedure TVrWave.SetSound(Value: TVrAudioData);
begin
  FSound.Assign(Value);
end;

procedure TVrWave.SetOptions(Value: TVrWaveOptions);
begin
  if FOptions <> Value then
  begin
    FOptions := Value;
    UpdatePlayOptions;
  end;
end;

{ TVrRawData }

destructor TVrAudioData.Destroy;
begin
  SetSize(0);
  inherited Destroy;
end;

function TVrAudioData.Empty: Boolean;
begin
  Result := FSize = 0;
end;

procedure TVrAudioData.Clear;
begin
  SetSize(0);
end;

procedure TVrAudioData.SetSize(Value: Integer);
begin
  if FSize <> Value then
  begin
    Reallocmem(FData, Value);
    FSize := Value;
  end;
end;

procedure TVrAudioData.DefineProperties(Filer: TFiler);
begin
  Filer.DefineBinaryProperty('Audio', LoadFromStream, SaveToStream, not Empty);
end;

procedure TVrAudioData.Assign(Source: TPersistent);
begin
  if (Source is TVrAudioData) then
  begin
    SetSize(TVrAudioData(Source).Size);
    Move(TVrAudioData(Source).Data^, FData^, Size);
    Exit;
  end;
  inherited Assign(Source);
end;

procedure TVrAudioData.WriteStream(Stream: TStream; WriteSize: Boolean);
var
  Id: Integer;
begin
  if not Empty then
  begin
    if WriteSize then
    begin
      Id := AudioId;
      Stream.Write(Id, Sizeof(Integer));
      Stream.Write(FSize, Sizeof(Integer));
    end;
    Stream.Write(FData^, FSize);
  end;
end;

procedure TVrAudioData.LoadStream(Stream: TStream; ReadSize: Boolean);
var
  Id: Integer;
  NewSize: Integer;
begin
  NewSize := Stream.Size;
  if ReadSize then
  begin
    Stream.Read(Id, Sizeof(Integer));
    if AudioId <> Id then
      raise Exception.Create('Unknown audio streaming format.');
    Stream.Read(NewSize, Sizeof(Integer));
  end;
  SetSize(NewSize);
  Stream.Read(FData^, FSize);
end;

procedure TVrAudioData.LoadFromStream(Stream: TStream);
begin
  LoadStream(Stream, True);
end;

procedure TVrAudioData.SaveToStream(Stream: TStream);
begin
  WriteStream(Stream, True);
end;

procedure TVrAudioData.LoadFromFile(const FileName: string);
var
  Stream: TFileStream;
begin
  Stream := TFileStream.Create(FileName, fmOpenRead);
  try
    LoadStream(Stream, false);
  finally
    Stream.Free;
  end;
end;

procedure TVrAudioData.SaveToFile(const FileName: string);
var
  Stream: TFileStream;
begin
  Stream := TFileStream.Create(FileName, fmCreate);
  try
    WriteStream(Stream, false);
  finally
    Stream.Free;
  end;
end;



end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美偷拍三级| fc2成人免费人成在线观看播放| 麻豆91精品91久久久的内涵| 激情综合网最新| 东方aⅴ免费观看久久av| 色婷婷香蕉在线一区二区| 欧美日韩国产在线播放网站| www日韩大片| 亚洲色大成网站www久久九九| 偷窥国产亚洲免费视频| 国产美女精品在线| 91福利小视频| 精品盗摄一区二区三区| 亚洲激情成人在线| 狠狠v欧美v日韩v亚洲ⅴ| 99国产精品国产精品久久| 3d成人动漫网站| 国产精品三级电影| 奇米四色…亚洲| 99久久伊人久久99| 欧美刺激脚交jootjob| 亚洲欧洲无码一区二区三区| 久久精品国产**网站演员| 91片黄在线观看| 欧美不卡一区二区| 亚洲一区二区三区影院| 国产成人免费视频网站| 在线成人高清不卡| |精品福利一区二区三区| 久久se这里有精品| 欧美私模裸体表演在线观看| 久久九九国产精品| 日韩高清欧美激情| 一本大道久久a久久精二百 | 亚洲一区二区高清| 国产寡妇亲子伦一区二区| 7878成人国产在线观看| 亚洲人成影院在线观看| 国产成人精品aa毛片| 欧美高清激情brazzers| 亚洲日韩欧美一区二区在线| 国产一区在线看| 欧美一区二区久久久| 亚洲精品国产精华液| 国产91精品免费| 精品少妇一区二区三区在线播放| 亚洲在线视频免费观看| 成人的网站免费观看| 久久夜色精品国产欧美乱极品| 丝袜美腿亚洲色图| 在线一区二区三区四区五区| 中文字幕中文乱码欧美一区二区 | 久久亚洲二区三区| 蜜臀av一区二区在线观看| 欧美探花视频资源| 一区二区三区久久| 一本到高清视频免费精品| 亚洲欧洲国产专区| 不卡高清视频专区| 国产精品私房写真福利视频| 国产一区二区三区综合| 精品国产成人系列| 久久精品国产秦先生| 91精品国产91综合久久蜜臀| 午夜不卡av免费| 欧美日本免费一区二区三区| 亚洲一级二级三级| 欧美中文一区二区三区| 一区二区三区小说| 在线国产电影不卡| 亚洲一区二区偷拍精品| 欧美无人高清视频在线观看| 一区二区三区四区精品在线视频| 色综合久久天天| 亚洲精品免费播放| 在线视频你懂得一区| 亚洲专区一二三| 欧美日韩的一区二区| 日日噜噜夜夜狠狠视频欧美人| 欧美日韩激情一区二区三区| 婷婷激情综合网| 7799精品视频| 精品一区二区三区久久| 久久综合狠狠综合久久激情| 国产成人在线视频网站| 中文字幕av不卡| 99久久精品久久久久久清纯| 亚洲免费在线看| 欧美日韩在线播放三区| 天堂一区二区在线| 精品久久人人做人人爽| 国产精品性做久久久久久| 国产精品网曝门| 91电影在线观看| 午夜精品123| 精品毛片乱码1区2区3区| 国产a精品视频| 亚洲人精品午夜| 69堂成人精品免费视频| 黑人巨大精品欧美黑白配亚洲| 国产网红主播福利一区二区| av在线不卡观看免费观看| 一区二区视频在线看| 欧美夫妻性生活| 国产乱码精品一区二区三区忘忧草 | 亚洲国产精品国自产拍av| 色婷婷亚洲综合| 免费精品视频在线| 日本一区二区成人在线| 欧美三级电影一区| 国产一区二区在线影院| 日韩美女精品在线| 欧美精品1区2区3区| 国产在线麻豆精品观看| 亚洲欧美日韩综合aⅴ视频| 制服丝袜成人动漫| 国产·精品毛片| 亚洲 欧美综合在线网络| 久久色.com| 欧美亚一区二区| 国产乱理伦片在线观看夜一区| 亚洲久草在线视频| 精品动漫一区二区三区在线观看| 精品国精品自拍自在线| av亚洲精华国产精华精| 五月综合激情日本mⅴ| 国产午夜精品久久久久久久| 欧美久久久久久蜜桃| 国产91精品一区二区| 日韩av电影免费观看高清完整版在线观看 | 香港成人在线视频| 欧美国产日韩精品免费观看| 欧美高清一级片在线| 成人18视频日本| 免费成人在线网站| 亚洲另类春色国产| 久久精品人人做人人综合| 精品视频在线免费观看| 成人一二三区视频| 久久精品国产一区二区三 | 欧美日韩一区三区| 成人国产视频在线观看| 麻豆国产精品视频| 亚洲电影视频在线| 成人免费在线播放视频| 久久综合久久99| 91精品黄色片免费大全| 色婷婷综合久久久久中文| 国产成人精品午夜视频免费| 琪琪久久久久日韩精品| 伊人色综合久久天天| 中文字幕制服丝袜一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美人与禽zozo性伦| 91麻豆免费视频| 国产成人亚洲精品狼色在线| 蜜桃av一区二区在线观看| 亚洲综合激情网| 亚洲男同性恋视频| 国产精品护士白丝一区av| 久久综合精品国产一区二区三区| 欧美一区二区三区视频免费| 欧美在线播放高清精品| av中文字幕亚洲| 丁香激情综合国产| 国产精品中文有码| 久久99深爱久久99精品| 男人的j进女人的j一区| 亚洲大片精品永久免费| 亚洲自拍偷拍综合| 亚洲精品水蜜桃| 亚洲免费在线观看| 亚洲日本护士毛茸茸| 综合色天天鬼久久鬼色| 国产精品久久久久影院| 中文欧美字幕免费| 中文字幕 久热精品 视频在线| 国产欧美日韩三级| 国产三区在线成人av| 国产午夜亚洲精品不卡| 久久久久国产精品人| 久久精品欧美日韩精品 | 99久久综合99久久综合网站| caoporm超碰国产精品| 成人av中文字幕| av在线播放不卡| 91免费看`日韩一区二区| 91色九色蝌蚪| 欧美午夜精品久久久久久超碰| 欧美亚洲综合在线| 欧美久久久久免费| 欧美一区二区三区电影| 精品欧美乱码久久久久久1区2区| 日韩精品一区国产麻豆| 精品成人佐山爱一区二区| 久久只精品国产| 国产亚洲va综合人人澡精品| 国产精品日韩精品欧美在线 | 91国产福利在线| 欧美日韩国产综合视频在线观看|