Не находится микрофон через /dev/mixer

Модератор: Модераторы разделов

pas
Сообщения: 597
Статус: маньяк
ОС: Gentoo

Не находится микрофон через /dev/mixer

Сообщение pas »

Здравствуйте.
Написал небольшую програмку:

Код:

Определение класса ossCtrl::ossCtrl() { int mixer_fd, recsrc, vol; device="/dev/mixer"; mask=0; log = QString::fromUtf8("Лог открытия устройства.\n"); volMic=0; msk=SOUND_MASK_MIC; writeLog(log,"Файл миксера = ",device); if ((mixer_fd = open(device, O_RDWR)) == -1) { perror(device); return; } else { writeLog(log,"Успешно открыт файл."); } if (ioctl(mixer_fd, SOUND_MIXER_READ_DEVMASK, &mask) == -1) { printf("Микшер неактивен, попробуйте другое устройство"); return; } else { writeLog(log,"Успешно прочитано mask = ",mask); } //ioctl(mixer_fd, SOUND_MIXER_WRITE_RECSRC, &msk); if (ioctl(mixer_fd, SOUND_MIXER_READ_RECSRC, &recmask) == -1) { printf("Микшер неактивен, попробуйте другое устройство"); return; } else { writeLog(log,"Успешно прочитано recmask = ",recmask); } ioctl(mixer_fd, SOUND_MIXER_READ_MIC, &volMic); writeLog(log,"Уровень громкости микрофона = ",volMic); close(mixer_fd); } Файл MainWindow.cpp void MainWindow::createWidjets() { ossControl=new ossCtrl(); QString str = QString::fromUtf8("Проверка возможностей.\n"); //QLabel *label = new QLabel(this); QTextEdit *label = new QTextEdit(this); label->setFrameStyle(QFrame::Panel | QFrame::Sunken); label->setAlignment(Qt::AlignTop | Qt::AlignLeft); label->setEnabled ( true ); label->setGeometry ( 10, 22, 400, 300 ); if ((ossControl->recmask & SOUND_MASK_MIC) == 0 ) { str.append(QString::fromUtf8("Запись с микрофона не поддерживается\n")); } else { str.append(QString::fromUtf8("Запись с микрофона возможна.\n")); } str.append(QString::number(ossControl->recmask)); label->setText(ossControl->log); }

В логи пишет:
Лог открытия устройства.
Файл миксера = /dev/mixer
Успешно открыт файл.
Успешно прочитано mask = 153041
Успешно прочитано recmask = 0
Уровень громкости микрофона = 25700


Ошибок вроде не выдает.
В маске устройств микрофон устанавливается, а в маске записываемых устройств его нет.
Почему не работает?
Спасибо сказали: