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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? workerthread.pas

?? 一套及時通訊的原碼
?? PAS
字號:
unit WorkerThread;

   (*********************************************************************
    * The contents of this file are used with permission, subject to    *
    * the Mozilla Public License Version 1.1 (the "License"); you may   *
    * not use this file except in compliance with the License. You may  *
    * obtain a copy of the License at                                   *
    * http://www.mozilla.org/MPL/MPL-1.1.html                           *
    *                                                                   *
    * 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.                         *
    *                                                                   *
    * (C) 2004 Martin Offenwanger: coder@dsplayer.de                    *
    *********************************************************************)
{
@author(Martin Offenwanger: coder@dsplayer.de)
@created(Apr 22, 2004)
@lastmod(Sep 09, 2004)
}

interface

uses Windows, Classes, Asyncreader, config, ShoutCastStream, forms, baseclass;

// TAsyncIO FilePlayback instance
type
  TWorkThread = class(TThread)
  private
    FIO: TAsyncIO;
  protected
    procedure Execute; override;
  public
    constructor Create(AIO: TAsyncIO);
  end;

  // This is the Thread instance of the TShoutcastStream class
type
  TThreadedShoutcastStream = class(TThread)
  private
    FMetaData: boolean;
    FExitThread: boolean;
    FTerminated: boolean;
    FRipStream: boolean;
    FFile: string;
    FPath: string;
    Factualpath: string;
    FLock: TBCCritSec;
    FAdress, FPort, FLocation: string;
  protected
    procedure Execute; override;
  public
    constructor Create(Adress, Port, Location: string; MetaData: boolean);
    destructor Destroy; override;
    function SetRipStream(RipStream: boolean; Path: string;
      FileName: string): HRESULT;
    function GetRipStream(out RipStream: boolean; out Path: string): HRESULT;
  end;

var
  g_threadedShoutCastStream: TThreadedShoutcastStream;

implementation

constructor TWorkThread.Create(AIO: TAsyncIO);
begin
  inherited Create(True);
  FreeOnTerminate := false;
  FIO := AIO;
end;

procedure TWorkThread.Execute;
begin
  FIO.Process;
end;

destructor TThreadedShoutcastStream.Destroy;
var
  Application: TApplication;
begin // no need to protect this function
  // a protect will cause a deadlock !
  FExitThread := true;
  Application := TApplication.Create(nil);
  while not FTerminated do
  begin
    Application.ProcessMessages;
    Sleep(1);
  end;
  FLock.Free; // freeandnil seems to be more savety here
  inherited Destroy;
end;

// TThreadedShoutcastStream.get_ripStream is not implemented yet

function TThreadedShoutcastStream.GetRipStream(out RipStream: boolean;
  out Path: string): HRESULT;
//var l_ripstream: boolean;
//    l_path: string;
begin
  FLock.Lock; // protect our member objects
  {  if g_shoutCastStream <> nil then begin
        g_shoutCastStream.get_ripStream(l_ripstream,l_path);
        RipStream := l_ripstream;
        Path := copy(l_path,1,length(l_path));
        RESULT := S_OK;
    end else    }
  RESULT := E_FAIL;
  FLock.UnLock;
end;

function TThreadedShoutcastStream.SetRipStream(RipStream: boolean; Path: string;
  FileName: string): HRESULT;
begin
  FLock.Lock; // protect our member objects
  FRipStream := RipStream;
  FPath := copy(Path, 1, system.length(Path));
  FFile := copy(FileName, 1, system.length(FileName));
  Result := S_OK;
  FLock.UnLock;
end;

constructor TThreadedShoutcastStream.Create(Adress, Port, Location: string;
  MetaData: boolean);
begin
  inherited Create(false);
  FLock := TBCCritSec.Create;
  FMetaData := MetaData;
  FRipStream := false;
  FPath := '';
  FExitThread := false;
  FTerminated := false;
  FAdress := Adress;
  FPort := Port;
  FLocation := Location;
end;

procedure TThreadedShoutcastStream.Execute;
var
  Application: TApplication;
  RipStream: boolean;
  ShoutCastStream: TShoutcastStream;
  Temp: string;
begin
  FTerminated := false;
  Temp := '';
  ShoutCastStream := TShoutcastStream.Create;
  ShoutCastStream.SetConnectToIp(FAdress, FPort, FLocation, FMetaData);
  Priority := tpTimeCritical;
  Application := TApplication.Create(nil);
  // this is the mainloop of the tread
  while not FExitThread do
  begin
    FLock.Lock; // protect our member objects
    sleep(1);
    Application.ProcessMessages;
    ShoutCastStream.GetRipStream(RipStream, Temp);
    if (RipStream <> FRipStream) or (Factualpath <> FPath) then
    begin
      ShoutCastStream.SetRipStream(FRipStream, FPath, FFile);
      Factualpath := FPath;
    end;
    FLock.UnLock;
  end;
  if ShoutCastStream <> nil then
  begin
    ShoutCastStream.Destroy;
  end;
  FTerminated := true;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色国产精品网站大全在线免费观看| 日韩精品一级中文字幕精品视频免费观看 | 日韩中文字幕一区二区三区| 久久99九九99精品| 亚洲成a人v欧美综合天堂下载| 中文字幕亚洲一区二区va在线| 2023国产一二三区日本精品2022| 欧美精品在线视频| 69成人精品免费视频| 欧美日本在线一区| 欧美一区二区在线免费播放| 国产嫩草影院久久久久| 久久欧美一区二区| 久久久久99精品国产片| 亚洲 欧美综合在线网络| 99久久精品费精品国产一区二区| 99国内精品久久| 久久免费偷拍视频| 青青草视频一区| 国产一区二区三区高清播放| 欧美日韩电影在线播放| 中文字幕永久在线不卡| 国产成人高清视频| 91蜜桃免费观看视频| 欧美日韩中文字幕精品| 欧美一区二区三区四区久久| 亚洲激情网站免费观看| 亚洲一区二区三区视频在线| 美女脱光内衣内裤视频久久网站 | 蜜臀99久久精品久久久久久软件| 欧美午夜片在线看| 日韩一级片网站| 国产亚洲视频系列| 亚洲精品乱码久久久久久| 欧美成人在线直播| 国产偷国产偷精品高清尤物| 经典一区二区三区| 欧美mv和日韩mv的网站| 狠狠色狠狠色综合日日91app| 一本久道中文字幕精品亚洲嫩| 欧美视频在线观看一区二区| 亚洲综合色区另类av| 在线视频一区二区三区| 国产欧美一区二区精品秋霞影院 | 国产1区2区3区精品美女| 欧美视频第二页| 亚洲综合色噜噜狠狠| 欧美高清激情brazzers| 视频一区在线播放| 久久婷婷国产综合精品青草| 国产精一品亚洲二区在线视频| 欧美色电影在线| 亚洲综合激情网| 亚洲尤物视频在线| 3atv在线一区二区三区| 国模大尺度一区二区三区| 国产精品免费av| 国产一区二区在线视频| 国产精品午夜春色av| 欧美视频自拍偷拍| 国内外精品视频| 亚洲男人电影天堂| 成人午夜在线播放| 久久―日本道色综合久久| 日韩欧美国产不卡| 亚洲国产va精品久久久不卡综合| 国产精品系列在线观看| 亚洲精品中文字幕在线观看| 欧美日韩国产美| 国产在线国偷精品免费看| 亚洲美女视频一区| 欧美大尺度电影在线| 波多野结衣中文字幕一区二区三区 | 欧美一区二区三区不卡| 成人黄色一级视频| 日韩精品乱码免费| 亚洲桃色在线一区| 高潮精品一区videoshd| 一区二区三区国产| 91久久久免费一区二区| 一区二区三区四区不卡视频| 日韩三级在线观看| 欧美经典一区二区| 久久精品72免费观看| 制服丝袜亚洲精品中文字幕| 国产精品888| 秋霞电影网一区二区| 亚洲精品精品亚洲| 国产精品亲子伦对白| 日韩欧美亚洲另类制服综合在线| 成人av在线播放网站| 久久国产精品色| 午夜免费久久看| 一区二区三区在线免费| 久久蜜桃香蕉精品一区二区三区| 欧美日韩精品电影| 91激情五月电影| 丰满岳乱妇一区二区三区| 久久成人免费网| 日韩国产一二三区| 2017欧美狠狠色| 91麻豆精品91久久久久久清纯| 97精品久久久午夜一区二区三区 | 日韩高清一区二区| 亚洲精品自拍动漫在线| 亚洲欧美综合另类在线卡通| 欧美成人一区二区| 欧美成人精品二区三区99精品| 91.com视频| 欧美色视频一区| 在线免费视频一区二区| 色中色一区二区| 色婷婷综合久久久中文字幕| 99re这里只有精品视频首页| 99精品视频一区二区| 日韩三级视频在线看| 欧美大片免费久久精品三p| 91精品黄色片免费大全| 91麻豆精品国产91久久久更新时间| 在线日韩一区二区| 欧美日韩一级二级| 日韩视频一区在线观看| 日韩欧美在线影院| 26uuu欧美| 国产亚洲精品aa| 国产精品美女久久久久久| 最新久久zyz资源站| 国产成人激情av| 一本在线高清不卡dvd| 欧美视频一区二| 91精品国产色综合久久不卡电影 | 免费美女久久99| 国产在线视频不卡二| 粉嫩av一区二区三区在线播放| 99久久免费视频.com| 欧美日韩国产小视频| 日韩三级伦理片妻子的秘密按摩| 午夜久久久久久电影| 蜜臀a∨国产成人精品| 国产成人精品午夜视频免费| 99在线精品免费| 国产一区二区三区久久久| 国产成人一区在线| 色94色欧美sute亚洲线路一ni| 欧美精品少妇一区二区三区| 精品国产乱码久久久久久1区2区| 欧美日韩一区二区不卡| 日韩亚洲欧美在线观看| 国产精品人妖ts系列视频| 不卡影院免费观看| 欧美日韩精品综合在线| 久久一区二区三区四区| 亚洲精品免费在线观看| 久草中文综合在线| 在线一区二区三区四区五区| 精品女同一区二区| 亚洲青青青在线视频| 国产一区91精品张津瑜| 在线国产电影不卡| 国产亚洲精品超碰| 日韩av一二三| 色综合咪咪久久| 日韩av一二三| 99久久综合精品| 精品国产免费久久| 亚洲国产美女搞黄色| 成人午夜大片免费观看| 日韩一级高清毛片| 亚洲高清视频在线| 99久久99久久免费精品蜜臀| 精品国产a毛片| 肉丝袜脚交视频一区二区| 色呦呦国产精品| 欧美韩日一区二区三区| 麻豆精品新av中文字幕| 欧美三级视频在线观看| 日韩av一区二区在线影视| 日本道免费精品一区二区三区| 国产亚洲1区2区3区| 久久国产精品99久久人人澡| 欧美日本一区二区三区| 亚洲精品视频自拍| 成人一区二区三区| 国产肉丝袜一区二区| 国产一区激情在线| 精品日韩一区二区三区| 婷婷久久综合九色国产成人| 91国产成人在线| 亚洲免费资源在线播放| 久久久久久久久久久久久夜| 蜜桃av噜噜一区二区三区小说| 欧亚洲嫩模精品一区三区| 亚洲免费av网站| 色呦呦网站一区| 亚洲欧美aⅴ...| 91色综合久久久久婷婷| 樱花草国产18久久久久| 欧美在线你懂得| 夜夜爽夜夜爽精品视频| 精品婷婷伊人一区三区三|