Autore Topic: Fare BIIIIIP  (Letto 3829 volte)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Fare BIIIIIP
« Risposta #15 il: 13 Ottobre 2008, 17:09:16 »
Sì, sapevo dell'esistenza del pacchetto, ma dato che non ne faccio uso e quindi non l'ho installato.

Comunque, mi congratulo ancora per la tua libreria, sicuramente servirà a qualcun'altro.

L'oggetto protrebbe anche essere utile per applicazioni orientate su procedure di basso livello (vedi modem, seriali, ecc.). In queste non c'è bisogno, anzi è pesante, usare la scheda audio, ed è sifficente e più utile il beeper.

Bye

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.264
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Fare BIIIIIP
« Risposta #16 il: 18 Giugno 2013, 22:54:25 »
Ora, per Gambas-3, rinvio a questa discussione:
http://www.gambas-it.org/smf/index.php?topic=2361.0

e più in generale al capitolo specifico della nostra WIKI sulla gestione dell'audio mediante le funzioni esterne delle API di Alsa.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.264
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Fare BIIIIIP
« Risposta #17 il: 12 Aprile 2015, 01:10:58 »
... tanto più che si può usare il comando beep come modello:

http://johnath.com/beep/

Un esempio più semplice sarebbe questo:
Codice: c [Seleziona]
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/kd.h>


int main(void) {

    int freq[] = { /* Do   Re   Mi   Fa  Sol   La   Si   Do */
                         523, 587, 659, 698, 784, 880, 988, 1046 };
    int i, fd, err;

    fd = open("/dev/tty0", O_WRONLY);

    for (i=0; i<8; i++)
    {
        err = ioctl(fd, KIOCSOUND, 1193180/freq[i]);
            if (err == -1) {
                printf("ERRORE: impossibile effettuare l'esecuzione del bip !");
return -1;
            }

         usleep(200000);

         err = ioctl(fd, KIOCSOUND, 0); /*Stop*/
         if (err == -1) {
           printf("ERRORE: impossibile arrestare l'esecuzione del bip !");
           return -1;
         }
    }

    close(fd);

    return 0;
}

Riferimenti:
http://johnath.com/beep/
https://tldp.org/LDP/lpg/node83.html
« Ultima modifica: 02 Ottobre 2023, 13:16:17 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »