[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]

    //
    // Using Audio Volume Control API
    //
    unit WaveUnit;

    interface

    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls,
      Forms, Dialogs, MMSystem, StdCtrls;

    type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        Memo1: TMemo;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.DFM}

    procedure TForm1.Button1Click(Sender: TObject);
    var
     NumDevs     : Integer;
     waveCaps    : TWaveOutCaps;
     Volume      : DWORD;
     Left, Right : Word;
     Version     : Word;
    begin
    // We should have at least one device
      NumDevs := waveOutGetNumDevs;
      Edit1.Text := Format('Number of devices is %d', [NumDevs]);
    // for the 1st device (hard-coded)
    // Get Device Caps
      waveOutGetDevCaps(0, @waveCaps, SizeOf(waveCaps));
    // Show device caps
      Memo1.Lines.Add('Iàçâàíèå: '+waveCaps.szPName);
      Version := waveCaps.vDriverVersion;
      Memo1.Lines.Add(Format('Aådñèÿ ädàéâådà: %d.%d', [Hi(Version), Lo(Version)]));
      Case waveCaps.wChannels of
        1 : Memo1.Lines.Add('Iîíî');
        2 : Memo1.Lines.Add('Ñòådåî');
      End;
     // Standard formats

     If waveCaps.dwFormats AND WAVE_FORMAT_1M08 <> 0 Then
      Memo1.Lines.Add('11.025 kHz, mono, 8-bit');
     If waveCaps.dwFormats AND WAVE_FORMAT_1M16 <> 0 Then
      Memo1.Lines.Add('11.025 kHz, mono, 16-bit');
    {
    WAVE_FORMAT_1S08	11.025 kHz, stereo, 8-bit
    WAVE_FORMAT_1S16	11.025 kHz, stereo, 16-bit
    WAVE_FORMAT_2M08	22.05 kHz, mono, 8-bit
    WAVE_FORMAT_2M16	22.05 kHz, mono, 16-bit
    WAVE_FORMAT_2S08	22.05 kHz, stereo, 8-bit
    WAVE_FORMAT_2S16	22.05 kHz, stereo, 16-bit
    WAVE_FORMAT_4M08	44.1 kHz, mono, 8-bit
    WAVE_FORMAT_4M16	44.1 kHz, mono, 16-bit
    WAVE_FORMAT_4S08	44.1 kHz, stereo, 8-bit
    WAVE_FORMAT_4S16	44.1 kHz, stereo, 16-bit
    }

    // If Volume Control Supported
      If waveCaps.dwSupport AND WAVECAPS_VOLUME <> 0 Then
       Begin
        waveOutGetVolume(0, @Volume);
        Left  := LoWord(Volume);
        Right := HiWord(Volume);
    // Show values of WAVE Device on volume control panel
        Edit2.Text := Format('Left : %d, Right : %d', [Left, Right]);
       waveOutSetVolume(0, $40008000);
       End;
    end;

    end.

[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]