viewgit/index.php:465 Only variables should be passed by reference [2048]

viewgit/index.php:466 Non-static method GeSHi::get_language_name_from_extension() should not be called statically [2048]

  1. /*
  2.  * Questa è una semplice libreria per gestire del basilare audio
  3.  * in C che ho scritto quando ho frequentato il corsi di
  4.  * Laboratorio sperimentale di Matematica Computazionale
  5.  * per essere più comodo a maneggiare i file.
  6.  *
  7.  * Penso che supporterà solamente file audio raw a 16 bit
  8.  * con una frequenza di 44100 Hz (quelli dei CD, per intenderci)
  9.  * perché non abbiamo mai avuto bisogno di altro.
  10.  *
  11.  * Leonardo Robol <robol@poisson.phc.unipi.it>
  12.  */
  13.  
  14. #ifndef __SIMPLE_AUDIO_H
  15. #define __SIMPLE_AUDIO_H
  16.  
  17. #define SA_FREQUENCY 44100
  18. #define SA_BIT 16
  19.  
  20. /*
  21.  * Questo tipo definisce una generica serie di fourier
  22.  * troncata.
  23.  * In generale sarà intesa come
  24.  * f(t) = a_0/2 + somma di seni + somma di coseni
  25.  */
  26. typedef struct {
  27. int cos_len;
  28. int sin_len;
  29. double* cos_values;
  30. double* sin_values;
  31. int a_0;
  32. } sa_fourier_series;
  33.  
  34. typedef struct {
  35. // Serie di fourier della forma d'onda
  36. sa_fourier_series* fs;
  37. // Nome
  38. char* name;
  39. } sa_instrument;
  40.  
  41. typedef short int sample;
  42.  
  43. // Questa union ci serve per scambiare i byte con comodità
  44. typedef union {
  45. sample s;
  46. unsigned char bytes[2];
  47. } sample_b;
  48.  
  49.  
  50. // Traccia audio
  51. typedef struct {
  52. int channels;
  53. sample** data;
  54. int* len;
  55. } sa_track;
  56.  
  57.  
  58. // Crea una traccia vuota con n canali
  59. sa_track* sa_track_new(int n);
  60.  
  61. // Elimina una traccia e tutto il suo contenuto
  62. int sa_track_free(sa_track* t);
  63.  
  64. // Aggiunge dati ad una traccia
  65. int sa_track_append(sa_track* t, sample* s, int len, int channel);
  66.  
  67. // Genera un singolo sample dello strumento prescelto dopo
  68. // un certo tempo
  69. sample sa_note_sample(sa_instrument* instrument, double frequency, double time);
  70.  
  71. // Determina la frequenza di una nota
  72. double sa_parse_note(char* note);
  73.  
  74. // Converte un double fra 0 e 1 in un sample a 16bit
  75. sample sa_double_to_sample(double);
  76.  
  77. // Genera len sample dello strumento scelto che suona la
  78. // nota scelta
  79. sample* sa_note(sa_instrument instrument, char* note, int len);
  80.  
  81. // Il silenzio :)
  82. sample* sa_silence(int len);
  83.  
  84. // Scrive la traccia su file
  85. int sa_track_write(sa_track* t, char* filename);
  86.  
  87. // Determina se il computer sta usando la convenzione little
  88. // endian o big endian
  89. int sa_is_little_endian();
  90. int sa_is_big_endian();
  91.  
  92. sample sa_swap_bytes(sample s);
  93.  
  94. #endif