Q&A

  • 사운드 카드의 정보를 얻으려면 어떻게 하나요?
사운드 카드에서 장치이름과 설치된 장치

전이중-반이중인지의 여부등의

사운드 카드 정보를 얻으려면 어떻게 해야 하는지요?

MMSystem 을 봐도 하나도 모르겠습니다.

아시는 고수분들께서 도움주시기 바랍니다.

1  COMMENTS
  • Profile
    도지성 2001.01.31 19:01
    var

    MidiInCaps : TMidiInCaps;

    WaveInCaps : TWaveInCaps;

    AuxCaps : TAuxCaps;



    begin



    // 미디 입력 장치 이름 얻기

    for i := 0 to Pred( midiInGetNumDevs ) do begin

    if midiInGetDevCaps( i, @MidiInCaps, sizeof( MidiInCaps ) )

    = MMSYSERR_NOERROR then begin

    ListBox.Items.Add( MidiInCaps.szPname );

    end;

    end;



    // wave 입력 장치 이름 얻기

    for i := 0 to Pred( waveInGetNumDevs ) do begin

    if waveInGetDevCaps( i, @WaveInCaps, sizeof( WaveInCaps ) )

    = MMSYSERR_NOERROR then begin

    ListBox.Items.Add( WaveInCaps.szPname );

    end;

    end;



    // 보조 장치 이름 얻기

    for i := 0 to Pred( auxGetNumDevs ) do begin

    if auxGetDevCaps( i, @AuxCaps, sizeof( AuxCaps ) )

    = MMSYSERR_NOERROR then begin

    ListBox.Items.Add( AuxCaps.szPname );

    end;

    end;





    뭐.. 이런 식으로 이름을 얻을 수 있는데..

    위의 midiIn 을 midiOut 으로 글자를 바꾸면

    MIDI 출력 장치의 이름을 얻을 수 있고

    위의 waveIn 을 waveOut 으로 글자를 바꾸면

    WAVE 출력 장치의 이름을 얻을 수 있습니다.



    그리고 풀듀플렉스 지원의 여부는

    waveInOpen() 으로 wave 입력 장치를 연 상태에서

    waveOutOpen() 을 열었을 때 MMSYSERR_NOERROR 가

    나오면 wave In/Out 이 둘 다 동시에 되는 것이기

    때문에 full-duplex 를 지원 한다는 것을 알 수 있습니다.

    ( 이때의 deivceID 는 default 장치인 0 번을

    각각 넣어 주면 되겠군요.. 위의 함수 사용법은

    델파이에서 F1 을 누르면 자세하게 나옵니다. )





    박범석 wrote:

    > 사운드 카드에서 장치이름과 설치된 장치

    > 전이중-반이중인지의 여부등의

    > 사운드 카드 정보를 얻으려면 어떻게 해야 하는지요?

    > MMSystem 을 봐도 하나도 모르겠습니다.

    > 아시는 고수분들께서 도움주시기 바랍니다.