SDL_OpenAudioDevice с несколькими устройствами - PullRequest
0 голосов
/ 31 августа 2018

В настоящее время я пишу приложение, которое будет выводить звук на 3 разных аудиоустройства. Для этого я установил 3 USB аудиоустройства на свой компьютер, все той же марки. Я хотел использовать SDL2 в качестве устройства вывода (хотя я открыт для других предложений). Я посмотрел на документацию и в ней указывается первый параметр (устройство):

строка UTF-8, о которой сообщает SDL_GetAudioDeviceName (); см. примечания

Теперь я написал пример программы, которая просто перечисляет доступные устройства:

#include <SDL2/SDL.h>
#include <iostream>

int main()
{
        SDL_Init( SDL_INIT_EVERYTHING );
        std::cout << SDL_GetError() << std::endl;
        atexit( SDL_Quit );
        int count = SDL_GetNumAudioDevices(0);
        for (int i = 0; i < count; ++i)
        {
                std::cout << "Device " << i << ": " << SDL_GetAudioDeviceName(i, 0) << std::endl;
        }
        return 0;
}

Перечисляет все доступные устройства. Проблема в том, что все 3 устройства дадут мне одинаковое имя:

Device 0: Internes Audio Digital Stereo (IEC958)
Device 1: C-Media Electronics, Inc. Audio Adapter
Device 2: C-Media Electronics, Inc. Audio Adapter
Device 3: C-Media Electronics, Inc. Audio Adapter

Есть ли способ использовать что-то другое (например, путь USB) в качестве параметра или чтобы я мог открыть все 3 устройства?

...