Я хочу изменить частоту звука по умолчанию SND_BELL (которая используется, когда \a или BEL или ^ G печатаются на экране) на более высокие значения (текущее значение по умолчанию составляет около 750 Гц).
Конечно, этот поворот требует полного программного решения.
Проблема в том, что я не понимаю, как int value в pcspkr_event() преобразуется из заданной частоты в подходящее значение при использовании с SND_TONE . Поэтому я не понимаю, как value=1000 воспроизводит сигнал с частотой 750 Гц.
switch (code) {
case SND_BELL: if (value) value = 1000; // changing this line would change the default beep frequency, but why 1000 does 750Hz tone????
case SND_TONE: break; // with SND_TONE the value variable is already computed, so do nothing
default: return -1;
}
Поскольку та же функция реализует SND_TONE я подумал, что было бы неплохо получить то, что вызывает ее, поэтому я смог бы найти функцию, которая преобразует частоту. Однако обратная трассировка не сообщает имени функции, которая вызывает pcspkr_event, и оказалось, что преобразование все еще не выполнено в функции, которая ее вызывает (« ìnput_handle_event()).
Я также не смог найти документацию о том, как использовать динамик, когда нет операционной системы.
Так какова частота отношения между частотой и value переменной value`?
