Jak wyłączyć (włączyć) kartę dźwiękową

0

Chciałbym napisać prostą aplikację, która będzie włączać lub wyłączać kartę dźwiękową pod windowsem. Często muszę robić to ręcznie w menadżerze urządzeń. Nie wiem gdzie szukać funkcji odpowiedzialnych za sterowanie urzadzeniami. Potrzebuję wskazówek, których bibliotek trzeba użyć.

1

jeżeli to windows to szukaj pod hasłem: devcon

0
#include <atlbase.h>
#include <Mmdeviceapi.h>
#include <Endpointvolume.h>

struct CCoInitialize
{
	CCoInitialize() { hr = CoInitialize(nullptr); }
	~CCoInitialize() { if (SUCCEEDED(hr)) CoUninitialize(); }
	HRESULT hr;
};

int main()
{
	CCoInitialize coinit;

	CComPtr<IMMDeviceEnumerator> devEnum;	
	devEnum.CoCreateInstance(__uuidof(MMDeviceEnumerator));

	CComPtr<IMMDevice> dev;
	devEnum->GetDefaultAudioEndpoint(eRender, eConsole, &dev);

	CComPtr<IAudioEndpointVolume> endpointVolume;
	dev->Activate(__uuidof(IAudioEndpointVolume), CLSCTX_ALL, nullptr, (LPVOID*)&endpointVolume);

	BOOL mute;
	endpointVolume->GetMute(&mute);
	endpointVolume->SetMute(!mute, nullptr);
}
0

Mam dwie karty i pokładowego realteka muszę wyłączać, aby zagrać w słuchawkach (podpięte do drugiej karty SB).

Zagrać w jakim programie? Wiele programów ma możliwość wyboru używanej karty dźwiękowej.

0

altbase.h używa winsock2.h. Jutro spróbuję naprawić ten problem

Zagrać w grę. Używać BESTPlayer itp. Nie wszystkie programy dają możliwość wyboru.
Zestaw głośników jest na realtek, a słuchawki na SB. Realtek daje kiepski dźwięk, natomiast SB nie ma tyle wyjść analogowych, aby podłączyć słuchawki i głośniki jednocześnie.
Nie mam kasy na nową konkretną kartę więc kombinuję.
Aby dźwięk był w słuchawkach dajmy na to w fifie, muszę wyłączyć sprzętowo w menadżerze sprzętu kartę.

0

ATL jest częścią MFC, więc powinieneś mieć zaznaczone MFC w instalatorze Visuala.
Ale nie jest to biblioteka tak naprawdę konieczna. Użyłem jej do smartpointera CComPtr. Można przepisać kod na inny COM-owy smartpointer dostępny w VC++ (com_ptr_t) albo na gołe wskaźniki.

nie ma tyle wyjść analogowych, aby podłączyć słuchawki i głośniki jednocześnie.
Aby dźwięk był w słuchawkach dajmy na to w fifie, muszę wyłączyć sprzętowo w menadżerze sprzętu kartę.

Jednocześnie w jakim celu? Opisz potrzebę (jaki końcowy efekt chcesz osiągnąć, nie że „chcę wyłączyć kartę”).

0

Karta SB jest w slocie PCI i są do niej podłączone słuchawki.
Realtek pokładowy ma podłączone głośniki 5.1.
Nie korzystam z przedniego panelu sluchawkowego ze względu na kiepską jakość dźwięku i zakłócenia.
Gdy obie karty są aktywne i chcę zagrać w Jakąś grę dźwięk jest odtwarzany przez pokładową kartę w głośnikach, a chcę mieć w słuchawkach.
Nie mam jak tego obejść inaczej jak wyłączać na czas grania karty pokładowej. Wtedy sygnał jest przekierowany do karty na PCI.
Denerwujące jest to ciągłe zaglądanie do menadżera sprzetu, więc pomyślałem o apce, która kliknięciem będzie przełączać stan karty pokładowej na wyłączoną lub włączoną.

1 użytkowników online, w tym zalogowanych: 0, gości: 1