'**************************************************************************
'* application:player cd audio                                               *
'* auteur:D.Glodt                                                         *
'* date:7-4-2001                                                          *
'**************************************************************************
$OPTION ICON "cdaudio.ico"
$TYPECHECK ON
$Include "Rapidq.inc"
$include "Object\Qcdaudio.inc"

$RESOURCE SCREENBMP as "cdscreen.bmp"
$RESOURCE PLAYBMP as "play.bmp"
$RESOURCE STOPBMP as "Stop.bmp"
$RESOURCE PAUSEBMP as "Pause.bmp"
$RESOURCE BACKBMP as "back.bmp"
$RESOURCE FORWARDBMP as "forward.bmp"
$RESOURCE EJECTBMP as "eject.bmp"

Declare Sub Play
Declare Sub Stop
Declare Sub Pause
Declare Sub Back
Declare Sub Forward
Declare Sub Eject
Declare Sub Open
Declare Sub Close
Declare Sub Quitter
Declare Sub PostimerOnTimer(track as integer,time as string)

Dim cd as Qcdaudio
cd.OnChange=PostimerOnTimer
cd.timer.interval=200


CREATE Form AS QFORM
    Caption="CD Audio"
    Width=308
    Height=158
    Center
    BorderStyle=bsDialog
    OnClose=Quitter
    OnShow=Open
    CREATE Panel1 AS QPANEL
        Left=0
        Top=0
        Width=301
        Height=128
        BevelOuter=bvNone
        CREATE image as QIMAGE
          width=301
          height=80
          BmpHandle=SCREENBMP
        END CREATE
        CREATE BtPlay AS QCOOLBTN
            BMPHandle=PLAYBMP
            Left=0
            Top=80
            Width=28
            Height=28
            Hint="Play"
            ShowHint=true
            GroupIndex=1
            OnClick=Play
        END CREATE
        CREATE BtStop AS QCOOLBTN
            BMPHandle=STOPBMP
            Left=28
            Top=80
            Width=28
            Height=28
            Hint="Stop"
            ShowHint=true
            GroupIndex=1
            Enabled=false
            OnClick=Stop
        END CREATE
        CREATE BtPause AS QCOOLBTN
            BMPHandle=PAUSEBMP
            Left=56
            Top=80
            Width=28
            Height=28
            GroupIndex=1
            Hint="Pause"
            ShowHint=true
            OnClick=Pause
            Enabled=false
        END CREATE
        CREATE BtBack AS QCOOLBTN
            BMPHandle=BACKBMP
            Left=84
            Top=80
            Width=28
            Height=28
            GroupIndex=0
            Hint="Back"
            ShowHint=true
            OnClick=Back
            Enabled=false
        END CREATE
        CREATE BtForward AS QCOOLBTN
            BMPHandle=FORWARDBMP
            Left=112
            Top=80
            Width=28
            Height=28
            GroupIndex=0
            Hint="Forward"
            ShowHint=true
            OnClick=Forward
            Enabled=false
        END CREATE
        CREATE BtEject AS QCOOLBTN
            BMPHandle=EJECTBMP
            Left=140
            Top=80
            Width=28
            Height=28
            GroupIndex=0
            Hint="Eject"
            ShowHint=true
            OnClick=Eject
        END CREATE
        CREATE Infos AS QSTATUSBAR
          SizeGrip=false
          AddPanels "Track:","",""
          Panel(0).width=60
          Panel(1).width=100
        END CREATE
    END CREATE
END CREATE

Form.ShowModal

Sub Open  
  if cd.open then
    infos.panel(0).caption="Track:"+str$(cd.tracknumber)
    infos.panel(1).caption=cd.time
    btBack.enabled=true
    btForward.enabled=true
    btPause.enabled=true
    btStop.enabled=true
  else
    showmessage cd.error
  end if
End Sub

Sub Close
  cd.close
End Sub

Sub Play
  if cd.audioOpen=false then
    if cd.open then
      infos.panel(0).caption="Track:"+str$(cd.tracknumber)
      infos.panel(1).caption=cd.time
      btBack.enabled=true
      btForward.enabled=true
      btPause.enabled=true
      btStop.enabled=true
    else
      btStop.Down=true
      showmessage cd.error
    end if
  end if
  cd.play
End Sub

Sub Stop
  cd.stop
End Sub

Sub Pause
  cd.pause
End Sub

Sub Back
  cd.currentTrack=cd.currentTrack-1
  infos.panel(0).caption="Track:"+str$(cd.currentTrack)
  infos.panel(2).caption=cd.tracktime
  if cd.state=CD_PLAY then cd.play
End Sub

Sub Forward
  cd.currentTrack=cd.currentTrack+1
  infos.panel(0).caption="Track:"+str$(cd.currentTrack)
  infos.panel(2).caption=cd.tracktime
  if cd.state=CD_PLAY then cd.play
End Sub

Sub Eject
  cd.eject
  btStop.down=true
  btBack.enabled=false
  btForward.enabled=false
  btPause.enabled=false
  btStop.enabled=false
  infos.panel(0).caption="Track:"
  infos.panel(1).caption=""
  infos.panel(2).caption=""
End Sub

Sub PostimerOnTimer(track as integer,time as string)
  infos.panel(0).caption="Track:"+str$(track)
  infos.panel(2).caption=time
  if cd.state=CD_STOP then
    btStop.down=true
  end if
End Sub

Sub Quitter
  cd.close
  form.close
End Sub

