ds2_devenum.cpp 596 B

1234567891011121314151617181920212223242526272829303132
  1. #include "ds2.h"
  2. #include "strsafe.h"
  3. static const GUID NULL_GUID;
  4. static bool _getcaps(IDirectSound * pDS,LPDSCAPS pCaps,DWORD * speakercfg)
  5. {
  6. bool rv=1;
  7. if (pCaps)
  8. {
  9. memset(pCaps,0,sizeof(*pCaps));
  10. pCaps->dwSize=sizeof(*pCaps);
  11. if (FAILED(pDS->GetCaps(pCaps))) rv=0;
  12. }
  13. if (speakercfg)
  14. {
  15. if (FAILED(pDS->GetSpeakerConfig(speakercfg))) rv=0;
  16. }
  17. return rv;
  18. }
  19. bool DS2::TryGetDevCaps(const GUID *g,LPDSCAPS pCaps,DWORD * speakercfg)
  20. {
  21. bool rv=0;
  22. SYNC_IN();
  23. if (!g) g=&NULL_GUID;
  24. if (pDS && GetCurDev()==*g)
  25. {
  26. rv=_getcaps(pDS,pCaps,speakercfg);
  27. }
  28. SYNC_OUT();
  29. return rv;
  30. }