Jose Ortiz vor 8 Jahren
Commit
86d0580d6d
100 geänderte Dateien mit 6633 neuen und 0 gelöschten Zeilen
  1. 514
    0
      README.md
  2. 28
    0
      Sounds.pro
  3. 271
    0
      Sounds.pro.user
  4. BIN
      WaveSamples/airplane.wav
  5. BIN
      WaveSamples/cartoon.out.wav
  6. BIN
      WaveSamples/cartoon.wav
  7. BIN
      WaveSamples/doglake.out.wav
  8. BIN
      WaveSamples/doglake.wav
  9. BIN
      WaveSamples/grace.out.wav
  10. BIN
      WaveSamples/grace.wav
  11. BIN
      WaveSamples/love.out.wav
  12. BIN
      WaveSamples/love.wav
  13. BIN
      WaveSamples/rain.fi.wav
  14. BIN
      WaveSamples/rain.fo.wav
  15. BIN
      WaveSamples/rain.out.wav
  16. BIN
      WaveSamples/rain.wav
  17. BIN
      WaveSamples/water.fi.wav
  18. BIN
      WaveSamples/water.fo.wav
  19. BIN
      WaveSamples/water.out.wav
  20. BIN
      WaveSamples/water.wav
  21. 1
    0
      audio.rsc
  22. 95
    0
      audiomanip.cpp
  23. 86
    0
      audiomanip.h
  24. 103
    0
      doc/en/html/annotated.html
  25. BIN
      doc/en/html/arrowdown.png
  26. BIN
      doc/en/html/arrowright.png
  27. 276
    0
      doc/en/html/audiomanip_8cpp.html
  28. 298
    0
      doc/en/html/audiomanip_8h.html
  29. 120
    0
      doc/en/html/audiomanip_8h_source.html
  30. BIN
      doc/en/html/bc_s.png
  31. BIN
      doc/en/html/bdwn.png
  32. 102
    0
      doc/en/html/class_main_window-members.html
  33. 124
    0
      doc/en/html/class_main_window.html
  34. BIN
      doc/en/html/class_main_window.png
  35. 105
    0
      doc/en/html/class_wave_sound-members.html
  36. 116
    0
      doc/en/html/class_wave_sound.html
  37. 107
    0
      doc/en/html/classes.html
  38. BIN
      doc/en/html/closed.png
  39. BIN
      doc/en/html/doc.png
  40. 1449
    0
      doc/en/html/doxygen.css
  41. BIN
      doc/en/html/doxygen.png
  42. 97
    0
      doc/en/html/dynsections.js
  43. 104
    0
      doc/en/html/files.html
  44. BIN
      doc/en/html/folderclosed.png
  45. BIN
      doc/en/html/folderopen.png
  46. 107
    0
      doc/en/html/functions.html
  47. 107
    0
      doc/en/html/functions_func.html
  48. 119
    0
      doc/en/html/globals.html
  49. 103
    0
      doc/en/html/globals_defs.html
  50. 116
    0
      doc/en/html/globals_func.html
  51. 104
    0
      doc/en/html/hierarchy.html
  52. 89
    0
      doc/en/html/index.html
  53. 68
    0
      doc/en/html/jquery.js
  54. 98
    0
      doc/en/html/mainwindow_8cpp.html
  55. 165
    0
      doc/en/html/mainwindow_8h_source.html
  56. BIN
      doc/en/html/nav_f.png
  57. BIN
      doc/en/html/nav_g.png
  58. BIN
      doc/en/html/nav_h.png
  59. BIN
      doc/en/html/open.png
  60. 26
    0
      doc/en/html/search/all_0.html
  61. 8
    0
      doc/en/html/search/all_0.js
  62. 26
    0
      doc/en/html/search/all_1.html
  63. 4
    0
      doc/en/html/search/all_1.js
  64. 26
    0
      doc/en/html/search/all_2.html
  65. 5
    0
      doc/en/html/search/all_2.js
  66. 26
    0
      doc/en/html/search/all_3.html
  67. 4
    0
      doc/en/html/search/all_3.js
  68. 26
    0
      doc/en/html/search/all_4.html
  69. 4
    0
      doc/en/html/search/all_4.js
  70. 26
    0
      doc/en/html/search/all_5.html
  71. 4
    0
      doc/en/html/search/all_5.js
  72. 26
    0
      doc/en/html/search/classes_0.html
  73. 4
    0
      doc/en/html/search/classes_0.js
  74. 26
    0
      doc/en/html/search/classes_1.html
  75. 4
    0
      doc/en/html/search/classes_1.js
  76. BIN
      doc/en/html/search/close.png
  77. 26
    0
      doc/en/html/search/defines_0.html
  78. 4
    0
      doc/en/html/search/defines_0.js
  79. 26
    0
      doc/en/html/search/files_0.html
  80. 5
    0
      doc/en/html/search/files_0.js
  81. 26
    0
      doc/en/html/search/files_1.html
  82. 4
    0
      doc/en/html/search/files_1.js
  83. 26
    0
      doc/en/html/search/functions_0.html
  84. 5
    0
      doc/en/html/search/functions_0.js
  85. 26
    0
      doc/en/html/search/functions_1.html
  86. 4
    0
      doc/en/html/search/functions_1.js
  87. 26
    0
      doc/en/html/search/functions_2.html
  88. 4
    0
      doc/en/html/search/functions_2.js
  89. 26
    0
      doc/en/html/search/functions_3.html
  90. 4
    0
      doc/en/html/search/functions_3.js
  91. 26
    0
      doc/en/html/search/functions_4.html
  92. 4
    0
      doc/en/html/search/functions_4.js
  93. BIN
      doc/en/html/search/mag_sel.png
  94. 12
    0
      doc/en/html/search/nomatches.html
  95. 271
    0
      doc/en/html/search/search.css
  96. 791
    0
      doc/en/html/search/search.js
  97. BIN
      doc/en/html/search/search_l.png
  98. BIN
      doc/en/html/search/search_m.png
  99. BIN
      doc/en/html/search/search_r.png
  100. 0
    0
      doc/en/html/search/searchdata.js

+ 514
- 0
README.md Datei anzeigen

@@ -0,0 +1,514 @@
1
+[English](#markdown-header-arrays-sound-processing) | [Español](#markdown-header-arreglos-procesamiento-de-sonido)
2
+
3
+
4
+
5
+#Arreglos - Procesamiento de sonido
6
+
7
+![main1.png](images/main1.png)
8
+![main2.png](images/main2.png)
9
+![main3.png](images/main3.png)
10
+
11
+Los arreglos de datos (*arrays*) nos facilitan guardar y trabajar con grupos de datos del mismo tipo. Los datos se guardan en espacios de memoria consecutivos a los que se puede acceder utilizando el nombre del arreglo e índices o suscritos que indican la posición en que se encuentra el dato. Las estructuras de repetición nos proveen una manera simple de acceder a los datos de un arreglo. En la experiencia de laboratorio de hoy te expondrás a algoritmos de procesamiento de sonido, simples pero ingeniosos, para practicar el uso de ciclos en la manipulación de arreglos.
12
+
13
+
14
+Esta experiencia de laboratorio es una adaptación de un "nifty assignment" presentado por Daniel Zingaro en [1]. 
15
+
16
+
17
+##Objetivos:
18
+
19
+1. Practicar el  uso de ciclos en la manipulación de arreglos.
20
+
21
+2. Aprender algoritmos simples para procesar sonido.
22
+
23
+3. Practicar la programación modular.
24
+
25
+
26
+##Pre-Lab:
27
+
28
+Antes de llegar al laboratorio debes haber:
29
+
30
+
31
+1. Repasado los conceptos relacionados a arreglos y ciclos.
32
+
33
+2. Estudiado los atributos `left` y `right` de la clase `QAudioBuffer::S16S` de  la librería multimedios de `Qt`.
34
+
35
+3. Estudiado los conceptos e instrucciones para la sesión de laboratorio.
36
+
37
+4. Tomado el quiz Pre-Lab que se encuentra en Moodle.
38
+
39
+---
40
+
41
+---
42
+
43
+##Procesamiento de sonido digital
44
+
45
+El sonido es una vibración que se propaga en medios elásticos tales como el aire, el agua y los sólidos. Las ondas sonoras son generadas por una fuente de sonido como por ejemplo la vibración del diafragma de una bocina de sonido [2]. Las ondas de sonido consisten de segmentos de alta y baja presión llamados compresiones y rarefacciones respectivamente.
46
+
47
+Los micrófonos convierten las ondas de sonido a señales eléctricas. Estas señales eléctricas pueden digitalizarse, o sea, pueden ser convertidas a sucesiones de números, en donde cada número representa la intensidad de la señal eléctrica en un momento en el tiempo. La *razón de la muestra* es el número de muestras de la señal de sonido tomadas en un segundo. Por ejemplo, para obtener la calidad de sonido de una grabación estéreo de CD se usa una razón de muestra de 44,100 muestras por segundo. Esto significa que en cada segundo, para cada uno de los canales (izquierdo y derecho), se toman 44,100 muestras de sonido y se convierten a números.
48
+
49
+---
50
+
51
+![image1.jpg](images/image1.jpg)
52
+
53
+
54
+**Figura 1.** Ilustración de los pasos para realizar una digitalización de sonido. El micrófono convierte la onda de presión en una señal de voltaje. El convertidor de señal análoga a señal digital toma muestras de la señal de voltaje y convierte cada muestra en un valor numérico. La sucesión de números forma el sonido *digitalizado*. Tomado de [3]. 
55
+
56
+---
57
+
58
+**Pregunta...**
59
+
60
+Supón que cada muestra de sonido se convierte a un número que ocupa 2 bytes. ?Cuántos bytes se necesitan para guardar una canción que dure exactamente 180 segundos y que fue grabada en calidad de CD estéreo? 
61
+
62
+**Respuesta:**
63
+
64
+180 segundos * 44,100 muestras/segundo * 2 bytes/muestra * 2 canales = 31,752,000 bytes = 31.75 MBytes.
65
+
66
+Afortunadamente existen técnicas de compresión de datos como *MP3* y *ogg* que reducen la cantidad de memoria necesaria para guardar música con calidad de CD.
67
+
68
+---
69
+
70
+Las **técnicas de procesamiento digital** se pueden utilizar para mejorar la calidad del sonido removiendo ruido y eco  para comprimir los datos y para mejorar la transmisión. El procesamiento de sonido digital también juega un papel importante en las aplicaciones de reconocimiento de voz y en investigaciones científicas de detección de biodiversidad utilizando sensores de sonido [4]. El sonido digital también se puede manipular fácilmente para lograr efectos especiales.
71
+
72
+Como las grabaciones de sonido digital son esencialmente una colección de valores numéricos que representan una onda de sonido, el procesamiento de sonido digital puede ser tan simple como el aplicar operaciones aritméticas a esos valores. Por ejemplo, digamos que tienes una grabación de sonido digital. Mientras más alto el volúmen de la grabación, más altos los valores absolutos de los números que contiene. Para reducir el volúmen de toda la grabación solo tendríamos que multiplicar cada valor en la grabación por un número positivo menor que 1.
73
+
74
+---
75
+
76
+
77
+![image2.png](images/image2.png)
78
+
79
+
80
+**Figura 2.** Una de las tareas más simples en el  procesamiento de sonido digital: cambiar el volúmen de una onda de sonido multiplicando cada punto por un valor positivo menor que 1 (en este caso 0.5).
81
+
82
+---
83
+
84
+##Bibliotecas
85
+
86
+Para esta experiencia de laboratorio usarás bibliotecas multimedios de `Qt`. Para poder trabajar los ejercicios necesitarás conocer los atributos `left` y `right` de la clase `QAudioBuffer::S16S`. Para propósito de esta experiencia de laboratorio utilizamos el nombre `AudioBuffer` al referirnos a `QAudioBuffer::S16S`.
87
+
88
+Cada objeto de la clase `AudioBuffer` tendrá atributos o variables miembro `left` y `right` que contienen el valor izquierdo y derecho de la muestra de sonido estéreo. Estas variables son públicas y podrás acceder su contenido escribiendo el nombre del objeto, seguido de un punto y luego el nombre de la variable. Para representar una señal de sonido, usamos un arreglo de objetos de clase `AudioBuffer`. Cada elemento del arreglo es un objeto que contiene los valores izquierdo y derecho  de la señal en un instante en el tiempo (recuerda que cada segundo contiene 44,100 muestras). Por ejemplo, si tenemos un arreglo de objetos `AudioBuffer`, llamado `frames`, entonces  `frames[i].left`  se refiere al valor del canal izquierdo del sonido en la muestra `i`.
89
+
90
+---
91
+
92
+![image3.png](images/image3.png)
93
+
94
+**Figura 3.** En la figura, `frame` es un arreglo de objetos `AudioBuffer`. En esta experiencia de laboratorio, las señales de sonido estarán representadas por un arreglo de objetos `AudioBuffer`. Un objeto con índice `i` guarda el valor de los canales izquierdo y derecho de la muestra `i`. 
95
+
96
+---
97
+
98
+La función `HalfVolume` en el siguiente ejemplo ilustra cómo leer y modificar un arreglo de objetos `AudioBuffer`:
99
+
100
+
101
+```cpp
102
+void HalfVolume(AudioBuffer frames[], int N){
103
+
104
+    // para cada muestra en la señal, reduce su valor a la mitad
105
+
106
+    for (int i=0; i < N; i++) {
107
+        frames[i].left  = frames[i].left / 2;
108
+        frames[i].right = frames[i].right / 2; 
109
+    }
110
+}
111
+
112
+```
113
+
114
+
115
+---
116
+
117
+---
118
+
119
+##Sesión de laboratorio:
120
+
121
+
122
+El proyecto `SoundProcessing` contiene el esqueleto de una aplicación para hacer procesamiento de sonido estéreo. La aplicación que completarás permitirá al usuario aplicar cuatro algoritmos diferentes para procesamiento de sonidos. La  sub-carpeta llamada `WaveSamples` contiene archivos de onda para que pruebes tus implementaciones.
123
+
124
+###Ejercicio 1: Remover las voces de una grabación
125
+
126
+Una forma barata (pero muchas veces inefectiva) de remover las voces de una grabación es tomando ventaja del hecho de que las voces usualmente se graban en ambos canales, izquierdo y derecho, mientras que el resto de los instrumentos quizás no. Si este fuera el caso, podemos remover las voces de una grabación restando el canal izquierdo y derecho.
127
+
128
+####Instrucciones
129
+
130
+
131
+1. Carga a `QtCreator` el proyecto `SoundProcessing`  haciendo doble "click" en el archivo `Sounds.pro` en el directorio `Documents/eip/Arrays-SoundProcessing` de tu computadora. También puedes ir a `http://bitbucket.org/eip-uprrp/arrays-soundprocessing` para descargar la carpeta `Arrays-SoundProcessing` a tu computadora.
132
+
133
+2. Compila y corre el programa. Aparecerá un interface gráfico para procesamiento de sonido de grabaciones.
134
+
135
+3. Carga cualquiera de los archivos de onda  `love.wav`, `cartoon.wav`, o `grace.wav` marcando el botón de búsqueda (`Search`) en el lado derecho de la etiqueta `Audio In`, y reprodúcela marcando el botón `Play Audio In`.
136
+
137
+4. Tu tarea en este ejercicio es completar la función `RemoveVocals` que se encuentra en el archivo  `audiomanip.cpp` para que remueva las voces de una grabación. La función recibe un arreglo de objetos de la clase `AudioBuffer` y el tamaño del arreglo. 
138
+
139
+**Algoritmo:**
140
+
141
+Para cada muestra en el arreglo, computa la diferencia de la muestra del canal izquierdo menos el derecho, divídelo por 2 y usa este valor como el nuevo valor para la muestra correspondiente en el canal izquierdo y derecho.
142
+
143
+Marca el botón `Play Audio Out` en la aplicación  para reproducir el sonido del archivo de salida.
144
+
145
+
146
+###Ejercicio 2: Intensificar
147
+
148
+Un efecto de sonido común es la intensificación gradual del volumen de una grabación. Esto se consigue aumentando constantemente el valor de muestras consecutivas en el arreglo de muestras de sonido.
149
+
150
+####Instrucciones
151
+
152
+1. Carga y reproduce cualquiera de los archivos de onda `rain.wav`, o `water.wav` como hiciste en el Ejercicio 1. 
153
+
154
+2. Tu tarea en este ejercicio es completar la función `AudioFadeIn` que se encuentra en el archivo `audiomanip.cpp` de modo que se intensifique gradualmente el volumen de una grabación hasta cierto punto. La función recibe un arreglo de objetos de la clase  `AudioBuffer`, el tamaño del arreglo, y un largo de duración para el aumento en intensidad (fade_length) que será aplicado a `AudioBuffer`. Por ejemplo, si `fade_length` es `88200`, el aumento en intensidad no debe afectar ninguna muestra en posición mayor o igual a `88200`.
155
+
156
+3. Reproduce las siguientes grabaciones contenidas en la carpeta `WaveSamples`: 
157
+
158
+    * `rain.fi.wav`
159
+    * `water.fi.wav`
160
+  
161
+    Las grabaciones fueron creadas utilizando el filtro de intensidad con `fade_length 88200`. Debes escuchar como el sonido del agua y la lluvia se intensifican linealmente durante los primeros dos segundos y luego se quedan en el mismo volúmen. Nota que, como estamos usando sonidos grabados a `44100` muestras por segundo, `88200` corresponde a dos segundos de grabación.
162
+
163
+**Algoritmo:**
164
+
165
+Para aplicar el aumento de intensidad a un sonido, multiplicamos cada muestra sucesiva por números entre `0` y `1` que van en aumento constante. Si la muestra se multiplica por `0` se silencia, si se multiplica por `1` se queda igual; si se multiplica por un valor entre `0` y `1` el volúmen se escala por ese factor. Ambos canales deben ser multiplicados por el mismo factor.
166
+
167
+Por ejemplo, si `fade_length` es `4`, aplicaremos el filtro a las primeras 4 muestras:
168
+
169
+ 
170
+| Número de muestra | Multiplica por factor |
171
+|---|---|
172
+| 0 | 0 |
173
+| 1 | 0.25 |
174
+| 2 | 0.5 |
175
+| 3 | 0.75 |
176
+| >= 4 | 1 (No modifica la muestra) |
177
+
178
+Nota que tenemos 4 muestras y el factor por el que se multiplica la muestra en cada canal comienza en `0` e incrementa `0.25` cada vez hasta llegar a `1`.
179
+
180
+
181
+
182
+###Ejercicio 3: Desvanecer
183
+
184
+Otro efecto de sonido común es la disminución gradual del volumen de una grabación. Esto se consigue disminuyendo constantemente el valor de muestras consecutivas en el arreglo de muestras de sonido.
185
+
186
+####Instrucciones
187
+
188
+1. Carga y reproduce cualquiera de los archivos de onda `rain.wav`, o `water.wav` como hiciste en los ejercicios anteriores. 
189
+
190
+2. Tu tarea en este ejercicio es completar la función `AudioFadeOut` que se encuentra en el archivo `audiomanip.cpp` para que desvanezca el volúmen a partir de una muestra de la grabación hasta el final. La función recibe un arreglo de objetos de la clase `AudioBuffer`, el tamaño del arreglo, y un largo de duración del desvanecimiento que será aplicado a `AudioBuffer`. Por ejemplo, si  `fade_length` es `88200`, el desvanecimiento no debe afectar ninguna muestra en  posiciones menores o iguales a `88200`. 
191
+
192
+3. Reproduce las siguientes grabaciones contenidas en la carpeta `WaveSamples`: 
193
+
194
+    * `rain.fo.wav`
195
+    * `water.fo.wav` 
196
+  
197
+    Las grabaciones fueron creadas utilizando el filtro de desvanecer con `fade_length 88200`. Debes escuchar el sonido del agua y la lluvia en volúmen constante y luego, en los últimos dos segundos, el volumen disminuye linealmente hasta desaparecer.
198
+
199
+**Algoritmo:**
200
+
201
+Los factores para desvanecer son los mismos que para intensificar pero se aplican en el orden opuesto. Por ejemplo, si `fade_length` fuera `4`, las muestras de los canales en la posición cuatro antes de la última se multiplican por `0.75`, las muestras de los canales en la posición tres antes de la última se multiplican por `0.5`, las muestras de los canales en la penúltima posición se multiplican por `0.25`, y las muestras en los canales en la última posición se multiplican por `0.0`. 
202
+
203
+
204
+
205
+###Ejercicio 4: Recorrido de izquierda a derecha
206
+
207
+El efecto de sonido que queremos lograr en este ejercicio es comenzar a escuchar un sonido por el canal izquierdo, que vaya desvaneciéndose en ese canal, vaya intensificándose en el canal derecho y termine completamente en el canal derecho.
208
+
209
+####Instrucciones
210
+
211
+1. Carga y reproduce el archivo  `airplane.wav` como hiciste en los ejercicios anteriores. 
212
+
213
+2. Tu tarea en este ejercicio es completar la función `LeftToRight` que se encuentra en el archivo `audiomanip.cpp` para que haga que el sonido vaya "moviéndose" del canal izquierdo al canal derecho. La función recibe un arreglo de objetos de la clase `AudioBuffer`, el tamaño del arreglo, y un largo de recorrido (pan_length) que será aplicado a `AudioBuffer`. Por ejemplo, si  `pan_length` es `88200`, el recorrido no debe afectar ninguna muestra en  posiciones mayores o iguales a `88200`. 
214
+
215
+3. Reproduce la grabación en `airplane.out.wav`. Debes poder oir cómo el sonido del avión se escucha primero completamente a la izquierda y luego se mueve lentamente hacia la derecha, terminando completamente a la derecha en la última muestra.
216
+
217
+**Algoritmo:**
218
+
219
+Para crear el efecto de que el sonido se mueve de izquerda a derecha se necesita un desvanecimiento en el canal de la izquierda y una intensificación en el canal de la derecha. Por ejemplo, si el `pan_length` es 4, el filtro será aplicado a las primeras 4 muestras:
220
+
221
+
222
+ 
223
+| Número de muestra | Factor a multiplicar por canal izquierdo |Factor a multiplicar por canal derecho |
224
+|---|---|---|
225
+| 0 | 0.75 | 0 |
226
+| 1 | 0.5 | 0.25 |
227
+| 2 | 0.25 | 0.5 |
228
+| 3 | 0 | 0.75 |
229
+| >= 4 | (No modificar la muestra) | (No modificar la muestra) | 
230
+
231
+---
232
+
233
+---
234
+
235
+##Entrega
236
+
237
+Utiliza "Entrega" en Moodle para entregar el archivo  `audiomanip.cpp`. Recuerda utilizar buenas prácticas de programación, incluir el nombre de los programadores y documentar tu programa.
238
+
239
+
240
+---
241
+
242
+---
243
+
244
+
245
+
246
+##Referencias
247
+
248
+[1] Daniel Zingaro, http://nifty.stanford.edu/2012/zingaro-stereo-sound-processing/
249
+
250
+[2] http://en.wikipedia.org/wiki/Sound
251
+
252
+[3] http://homepages.udayton.edu/~hardierc/ece203/sound_files/image001.jpg.
253
+
254
+[4] Arbimon, A web based network for storing, sharing, and analyzing acoustic information. http://arbimon.com/
255
+
256
+[5] https://somnathbanik.wordpress.com/2012/10/22/digital-signal-processing-featured-project/
257
+
258
+[6] http://www.hearingreview.com/2013/03/designing-hearing-aid-technology-to-support-benefits-in-demanding-situations-part-1/
259
+
260
+[7] http://diveintodotnet.com/2014/12/02/programming-basics-what-are-strings/
261
+
262
+
263
+---
264
+
265
+---
266
+
267
+---
268
+
269
+
270
+[English](#markdown-header-arrays-sound-processing) | [Español](#markdown-header-arreglos-procesamiento-de-sonido)
271
+
272
+
273
+#Arrays - Sound Processing
274
+
275
+![main1.png](images/main1.png)
276
+![main2.png](images/main2.png)
277
+![main3.png](images/main3.png)
278
+
279
+Arrays help us to store and work with groups of data of the same type. The data is stored in consecutive memory spaces which can be accessed by using the name of the array and indexes or subscripts that indicate the position where the data is stored. Repetition structures provide us a simple way of accessing the data within an array. In this laboratory experience, you will be using nested loops to process bi-dimensional arrays and implement the functionality of a green-screen.
280
+
281
+This laboratory experience is an adaptation of the nifty assignment presented by Daniel Zingaro in [1].  
282
+
283
+
284
+##Objectives
285
+
286
+1. Practice the use of loops to manipulate arrays.
287
+
288
+2. Learn simple algorithms to process sound.
289
+
290
+3. Practice modular programming.
291
+
292
+
293
+##Pre-Lab:
294
+
295
+Before coming to the laboratory you should have:
296
+
297
+1. Reviewed the basic concepts related to arrays and loops.
298
+
299
+2. Studied the `left` and `right` attributes of the `QAudioBuffer::S16S` class in the `Qt` multimedia library.
300
+
301
+3. Studied the concepts and instructions for the laboratory session.
302
+
303
+4. Taken the Pre-Lab quiz that is found in Moodle.
304
+
305
+---
306
+
307
+---
308
+
309
+##Digital Sound Processing
310
+
311
+
312
+Sounds are vibrations that propagate through elastic media such as air, water, and solids. The sound waves are generated by a sound source, such as the vibrating diaphragm of a stereo speaker [2]. Sound waves consist of areas of high and low pressure called compressions and rarefractions, respectively. 
313
+
314
+Microphones convert sound waves into electrical signals. These electrical signals can be digitized, i.e. converted to a stream of numbers, where each number is the intensity of the electrical signal at an instant in time. The *sample rate* is the number of samples of a sound signal taken per second. For example, a *sample rate* of 44,100 samples per second is used in CD-quality recordings. This means that every second, for each of the channels (left and right), 44,100 samples of the audio signal are taken and converted to numbers.
315
+
316
+---
317
+
318
+![image1.jpg](images/image1.jpg)
319
+
320
+**Figure 1**: Illustration of the steps involved in sound digitalization.  The pressure wave is converted to a voltage signal by the microphone. The voltage signal is sampled and digitized by the analog to digital converter to obtain a number value for each sample.  The stream of numbers constitutes the *digitized* sound. Taken from [3].
321
+
322
+---
323
+
324
+**Question...**
325
+
326
+How many bytes would it take to store a song that is exactly 180 seconds long and that is recorded in stereo CD-quality. Assume that each sample is converted to a number of  2 bytes.
327
+
328
+**Answer:**
329
+
330
+180 seconds * 44,100 samples/second * 2 bytes/sample * 2 channels = 31,752,000 bytes = 31.75 MBytes.
331
+
332
+Fortunately, there exist sound data compression techniques such as *MP3* and *ogg* that reduce the amount of memory required to store CD-quality music.
333
+
334
+----
335
+
336
+**Digital sound processing** techniques can be used to enhance sound quality by removing noise and echo to perform data compression and to improve transmission. Digital sound processing also plays an important role in voice recognition applications and in scientific research such as in biodiversity recognition using sound sensors [4]. Digital sound can also be easily manipulated to produce special effects.  
337
+
338
+Since digital sound recordings are in essence a collection of numeric values that represent a sound wave, digital sound processing can be as simple as applying arithmetic operations over those values. For example, let's say that you are given a digital sound recording. The louder the recording, the higher the absolute values of the numbers that it contains. To decrease the volume of the whole recording we could multiply each value by a positive number smaller than 1. 
339
+
340
+---
341
+
342
+![image2.png](images/image2.png)
343
+
344
+**Figure 2.** One of the simplest sound processing tasks: changing the volume of a sound wave by multiplying each point by a  positive number smaller than 1 (in this case 0.5).
345
+
346
+---
347
+
348
+## Libraries
349
+
350
+For this laboratory experience you will use the multimedia libraries of `Qt`. To complete the exercises, you will need to understand the `left` and `right` members of the `QAudioBuffer::S16S` class. For the purpose of this laboratory experience we use the name `AudioBuffer` to refer to `QAudioBuffer::S16S`.
351
+
352
+Each object of class `AudioBuffer` will have the variable members `left` and `right` that contain the left and right values of the stereo sound sample. These variables are public and you can access their content by writing the name of the object, followed by a period and the name of the variable. To represent a sound signal, we use an array of `AudioBuffer` objects. Each element in the array is an object that contains the left and right values of the signal at an instant in time (remember that each second contains 44,100 samples). For instance, if we have an array of `AudioBuffer` objects, called `frames`, then `frames[i].left` refers to the left channel value of the sound at sample `i`.
353
+
354
+---
355
+
356
+![image3.png](images/image3.png)
357
+
358
+**Figure 3.** In the figure, `frame` is an array of `AudioBuffer` objects. During this laboratory experience, sound signals will be represented by an array of `AudioBuffer` objects. An object with index `i` stores the values of the left and right channels of sample `i`. 
359
+
360
+---
361
+
362
+The `HalfVolume` function in the following example illustrates how to read and modify an array of `AudioBuffer` objects:
363
+
364
+
365
+```cpp
366
+void HalfVolume(AudioBuffer frames[], int N){
367
+
368
+    // for each sample in the signal, reduce its value to half
369
+
370
+    for (int i=0; i < N; i++) {
371
+        frames[i].left  = frames[i].left / 2;
372
+        frames[i].right = frames[i].right / 2; 
373
+    }
374
+}
375
+
376
+```
377
+
378
+
379
+---
380
+
381
+---
382
+
383
+
384
+##Laboratory Session:
385
+
386
+The `SoundProcessing` project contains the skeleton of an application to process stereo sound. The application you will complete will allow the user to apply four different algorithms to process sound. The sub-directory called `WaveSamples` contains sound files for you to test your implementation.
387
+
388
+###Exercise 1: Remove vocals on a recording
389
+
390
+A cheap (but many times ineffective) way to remove the vocals from a recording is by taking advantage of the fact that voice is commonly recorded in both left and right channels, while the rest of the instruments may not. If this is the case, then we can remove vocals from a recording by subtracting the left and right channels.
391
+
392
+
393
+####Instructions
394
+
395
+1. Load the project `SoundProcessing` onto `QtCreator` by double clicking on the `Sounds.pro` file in the `Documents/eip/Arrays-SoundProcessing` directory on your computer. You may also go to `http://bitbucket.org/eip-uprrp/arrays-soundprocessing` to download the `Arrays-SoundProcessing` folder to your computer.
396
+
397
+2. Compile and run the program. You will see a graphical interface to process sound and recordings.
398
+
399
+3. Load any of the wave files `love.wav`, `cartoon.wav`, or `grace.wav` by clicking the `Search` button in the right side of the `Audio In` label, and play it clicking the `Play Audio In` button.
400
+
401
+4. In this exercise, your task is to complete the function `RemoveVocals` in file `audiomanip.cpp` so it can remove voices from a recording. The function receives an array of objects of class `AudioBuffer`, and the size of the array.
402
+
403
+**Algorithm:**
404
+
405
+For each sample in the array, compute the difference of the sample's left channel minus its right channel, divide it by 2, and use this value as the new value for both the left and right channels of the corresponding sample.
406
+
407
+Play the output sound file with the application by clicking the `Play Audio Out` button.
408
+
409
+###Exercise 2: Fade In
410
+
411
+A common sound effect is the gradual intensification of the recording's volume, or fade in. This is the result of constantly increasing the value of consecutive samples in the array of sound samples.
412
+
413
+####Instructions
414
+
415
+1. Load and play any of the wave files `rain.wav`, or `water.wav` just as in Exercise 1.  
416
+
417
+2. Your task is to complete the function `AudioFadeIn` in file `audiomanip.cpp` so it gradually intensifies the volume of a recording up to a certain moment. The function receives an array of objects of class `AudioBuffer`, the size of the array, and a fade in length that will be applied to the `AudioBuffer`. For example, if `fade_length` is `88200`, the fade in should not affect any sample in position `88200` or higher. 
418
+
419
+3. Reproduce the following recordings from the `WaveSamples` folder:
420
+
421
+* `rain-fi.wav`
422
+* `water-fi.wav`
423
+  
424
+The recordings were created using the fade in filter with `fade_length` set to `88200`. You should be able to listen how the water and the rain linearly fades in over the first two seconds, and then remains at the same volume throughout.  Notice that, since we are using sounds recorded at `44100` samples per second, `88200` corresponds to two seconds of the recording.
425
+
426
+**Algorithm:**
427
+
428
+To apply a fade in to a sound, we multiply successive samples by constantly increasing fractional numbers between `0` and `1`. Multiplying samples by `0` silences them, and multiplying by `1` keeps them the same; multiplying by a factor between `0` and `1` scales their volume by that factor. Both channels of the samples should be multiplied by the same factor.
429
+
430
+For instance, if `fade_length` is 4, the filter will be applied to the first 4 samples:
431
+ 
432
+| Sample Number | Multiply by factor |
433
+|---|---|
434
+| 0 | 0 |
435
+| 1 | 0.25 |
436
+| 2 | 0.5 |
437
+| 3 | 0.75 |
438
+| >= 4 | 1 (Do not modify the sample) |
439
+
440
+Notice that we have 4 samples and the factor used to multiply the sample in each channel stars at `0` and increases `0.25` each time until reaching `1`.
441
+
442
+
443
+###Exercise 3: Fade Out
444
+
445
+Another common sound effect is the gradual decrease of volume in a recording. This is the result of constantly decreasing the value of consecutive samples in the array of sound samples.
446
+
447
+####Instructions
448
+
449
+1. Load and play any of the wave files `rain.wav`, or `water.wav` just like in the previous exercises.  
450
+
451
+2. Your task in this exercise is to complete the function `AudioFadeOut` in the file `audiomanip.cpp` so it will fade out the volume starting from a sample up to the end of the recording. The function receives an array of objects of class `AudioBuffer`, the size of the array, and a fade out length that will be applied to the `AudioBuffer`. For example, if `fade_length` is `88200`, the fade-out should not affect any sample numbered `88200` or lower. 
452
+
453
+3. Reproduce the following recordings from the `WaveSamples` folder:
454
+
455
+* `rain.fo.wav`
456
+* `water.fo.wav`
457
+  
458
+The recordings were created using the fae out filter with `fade_length` set to `88200`. You should be able to listen how the water and the rain is played at maximum volume and then in the last two seconds the sound starts to linearly fade out.
459
+
460
+**Algorithm:**
461
+
462
+The multiplicative factors for `fade_out` are the same as for `fade_in`, but are applied in the reverse order. For example, if `fade_length` were `4`, the samples in the fourth-before-last positions would be multiplied by `0.75` (in both channels), the samples in the third-before-last positions would be multiplied by `0.5`, the samples in the penultimate positions would be multiplied by `0.25`, the samples in the final positions would be multiplied by `0.0`.
463
+
464
+
465
+###Exercise 4: Panning from left to right
466
+
467
+The sound effect we want to produce in this exercise is to start hearing sound from the left channel, then fading from that channel, intensifying in the right channel and ending up completely on the right channel.
468
+
469
+
470
+####Instructions
471
+
472
+1. Load and play the `airplane.wav` just like in the previous exercises.
473
+
474
+2. Your task is to complete the function `LeftToRight` in file `audiomanip.cpp` so the sound "moves" from the left channel to the right channel. The function receives an array of objects of class  `AudioBuffer`, the size of the array, and a pan length that will be applied to the `AudioBuffer`. For example, if `pan_length` is `88200`, the pan should not affect any sample in position `88200` or higher.
475
+
476
+3. Play the `airplane.out.wav` recording. You should be able to listen how the airplane sound starts completely at the left, then slowly moves to the right, reaching the extreme right by the final sample.
477
+
478
+**Algorithm:**
479
+
480
+Getting a sound to move from left to right like this requires a fade-out on the left channel and a fade-in on the right channel. For instance, if `pan_length` is `4`, the filter will be applied to the first 4 samples:
481
+
482
+ 
483
+| Sample Number | Multiply left channel by factor | Multiply right channel by factor |
484
+|---|---|---|
485
+| 0 | 0.75 | 0 |
486
+| 1 | 0.5 | 0.25 |
487
+| 2 | 0.25 | 0.5 |
488
+| 3 | 0 | 0.75 |
489
+| >= 4 | (Do not modify the sample) | (Do not modify the sample) | 
490
+
491
+
492
+### Deliverables
493
+
494
+Use "Deliverables" in Moodle to upload the `audiomanip.cpp` file. Remember to use good programming techniques, include the names of the programmers involved, and to document your program.
495
+
496
+---
497
+
498
+---
499
+
500
+### References
501
+
502
+[1] Daniel Zingaro, http://nifty.stanford.edu/2012/zingaro-stereo-sound-processing/
503
+
504
+[2] http://en.wikipedia.org/wiki/Sound
505
+
506
+[3] http://homepages.udayton.edu/~hardierc/ece203/sound_files/image001.jpg.
507
+
508
+[4] Arbimon, A web based network for storing, sharing, and analyzing acoustic information. http://arbimon.com/
509
+
510
+[5] https://somnathbanik.wordpress.com/2012/10/22/digital-signal-processing-featured-project/
511
+
512
+[6] http://www.hearingreview.com/2013/03/designing-hearing-aid-technology-to-support-benefits-in-demanding-situations-part-1/
513
+
514
+[7] http://diveintodotnet.com/2014/12/02/programming-basics-what-are-strings/

+ 28
- 0
Sounds.pro Datei anzeigen

@@ -0,0 +1,28 @@
1
+#-------------------------------------------------
2
+#
3
+# Project created by QtCreator 2014-02-14T10:12:24
4
+#
5
+#-------------------------------------------------
6
+
7
+QT       += core gui
8
+QT += multimedia
9
+
10
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
11
+
12
+TARGET = Sounds
13
+TEMPLATE = app
14
+
15
+SOURCES += main.cpp\
16
+        mainwindow.cpp \
17
+    audiomanip.cpp
18
+
19
+HEADERS  += mainwindow.h \
20
+    wavesound.h \
21
+    audiomanip.h
22
+
23
+FORMS    += mainwindow.ui
24
+
25
+OTHER_FILES +=
26
+
27
+RESOURCES += \
28
+    images.qrc

+ 271
- 0
Sounds.pro.user Datei anzeigen

@@ -0,0 +1,271 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE QtCreatorProject>
3
+<!-- Written by QtCreator 3.4.0, 2015-08-11T14:05:55. -->
4
+<qtcreator>
5
+ <data>
6
+  <variable>EnvironmentId</variable>
7
+  <value type="QByteArray">{927fb263-722b-46dd-b3ec-8bedf75b6ed1}</value>
8
+ </data>
9
+ <data>
10
+  <variable>ProjectExplorer.Project.ActiveTarget</variable>
11
+  <value type="int">0</value>
12
+ </data>
13
+ <data>
14
+  <variable>ProjectExplorer.Project.EditorSettings</variable>
15
+  <valuemap type="QVariantMap">
16
+   <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
17
+   <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
18
+   <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
19
+   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
20
+    <value type="QString" key="language">Cpp</value>
21
+    <valuemap type="QVariantMap" key="value">
22
+     <value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
23
+    </valuemap>
24
+   </valuemap>
25
+   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
26
+    <value type="QString" key="language">QmlJS</value>
27
+    <valuemap type="QVariantMap" key="value">
28
+     <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
29
+    </valuemap>
30
+   </valuemap>
31
+   <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
32
+   <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
33
+   <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
34
+   <value type="int" key="EditorConfiguration.IndentSize">4</value>
35
+   <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
36
+   <value type="int" key="EditorConfiguration.MarginColumn">80</value>
37
+   <value type="bool" key="EditorConfiguration.MouseHiding">true</value>
38
+   <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
39
+   <value type="int" key="EditorConfiguration.PaddingMode">1</value>
40
+   <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
41
+   <value type="bool" key="EditorConfiguration.ShowMargin">false</value>
42
+   <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
43
+   <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
44
+   <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
45
+   <value type="int" key="EditorConfiguration.TabSize">8</value>
46
+   <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
47
+   <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
48
+   <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
49
+   <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
50
+   <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
51
+   <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
52
+  </valuemap>
53
+ </data>
54
+ <data>
55
+  <variable>ProjectExplorer.Project.PluginSettings</variable>
56
+  <valuemap type="QVariantMap"/>
57
+ </data>
58
+ <data>
59
+  <variable>ProjectExplorer.Project.Target.0</variable>
60
+  <valuemap type="QVariantMap">
61
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.4.1 clang 64bit</value>
62
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.4.1 clang 64bit</value>
63
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.54.clang_64_kit</value>
64
+   <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
65
+   <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
66
+   <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
67
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
68
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/joseortiz/Dropbox/proposals/TUES/public/exercises/build-Sounds-Desktop_Qt_5_4_1_clang_64bit-Debug</value>
69
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
70
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
71
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
72
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
73
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
74
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
75
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
76
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
77
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
78
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
79
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
80
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
81
+     </valuemap>
82
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
83
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
84
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
85
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
86
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
87
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
88
+       <value type="QString">-w</value>
89
+       <value type="QString">-r</value>
90
+      </valuelist>
91
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
92
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
93
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
94
+     </valuemap>
95
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
96
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
97
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
98
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
99
+    </valuemap>
100
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
101
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
102
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
103
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
104
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
105
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
106
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
107
+       <value type="QString">-w</value>
108
+       <value type="QString">-r</value>
109
+      </valuelist>
110
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
111
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
112
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
113
+     </valuemap>
114
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
115
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
116
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
117
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
118
+    </valuemap>
119
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
120
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
121
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
122
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
123
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
124
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
125
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
126
+    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
127
+   </valuemap>
128
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
129
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/joseortiz/Dropbox/proposals/TUES/public/exercises/build-Sounds-Desktop_Qt_5_4_1_clang_64bit-Release</value>
130
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
131
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
132
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
133
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
134
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
135
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
136
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
137
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
138
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
139
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
140
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
141
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
142
+     </valuemap>
143
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
144
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
145
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
146
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
147
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
148
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
149
+       <value type="QString">-w</value>
150
+       <value type="QString">-r</value>
151
+      </valuelist>
152
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
153
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
154
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
155
+     </valuemap>
156
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
157
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
158
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
159
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
160
+    </valuemap>
161
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
162
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
163
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
164
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
165
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
166
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
167
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
168
+       <value type="QString">-w</value>
169
+       <value type="QString">-r</value>
170
+      </valuelist>
171
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
172
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
173
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
174
+     </valuemap>
175
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
176
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
177
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
178
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
179
+    </valuemap>
180
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
181
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
182
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
183
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
184
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
185
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
186
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
187
+    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
188
+   </valuemap>
189
+   <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
190
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
191
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
192
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
193
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
194
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
195
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
196
+    </valuemap>
197
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
198
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
199
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
200
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
201
+   </valuemap>
202
+   <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
203
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
204
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
205
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
206
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
207
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
208
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
209
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
210
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
211
+    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
212
+    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
213
+    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
214
+    <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
215
+    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
216
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
217
+    <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
218
+    <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
219
+    <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
220
+    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
221
+    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
222
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
223
+     <value type="int">0</value>
224
+     <value type="int">1</value>
225
+     <value type="int">2</value>
226
+     <value type="int">3</value>
227
+     <value type="int">4</value>
228
+     <value type="int">5</value>
229
+     <value type="int">6</value>
230
+     <value type="int">7</value>
231
+     <value type="int">8</value>
232
+     <value type="int">9</value>
233
+     <value type="int">10</value>
234
+     <value type="int">11</value>
235
+     <value type="int">12</value>
236
+     <value type="int">13</value>
237
+     <value type="int">14</value>
238
+    </valuelist>
239
+    <value type="int" key="PE.EnvironmentAspect.Base">2</value>
240
+    <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
241
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Sounds</value>
242
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
243
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/Users/joseortiz/Dropbox/proposals/TUES/public/exercises/arrays-soundprocessing/Sounds.pro</value>
244
+    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
245
+    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">Sounds.pro</value>
246
+    <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
247
+    <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
248
+    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
249
+    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
250
+    <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
251
+    <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
252
+    <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
253
+    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
254
+    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
255
+   </valuemap>
256
+   <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
257
+  </valuemap>
258
+ </data>
259
+ <data>
260
+  <variable>ProjectExplorer.Project.TargetCount</variable>
261
+  <value type="int">1</value>
262
+ </data>
263
+ <data>
264
+  <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
265
+  <value type="int">18</value>
266
+ </data>
267
+ <data>
268
+  <variable>Version</variable>
269
+  <value type="int">18</value>
270
+ </data>
271
+</qtcreator>

BIN
WaveSamples/airplane.wav Datei anzeigen


BIN
WaveSamples/cartoon.out.wav Datei anzeigen


BIN
WaveSamples/cartoon.wav Datei anzeigen


BIN
WaveSamples/doglake.out.wav Datei anzeigen


BIN
WaveSamples/doglake.wav Datei anzeigen


BIN
WaveSamples/grace.out.wav Datei anzeigen


BIN
WaveSamples/grace.wav Datei anzeigen


BIN
WaveSamples/love.out.wav Datei anzeigen


BIN
WaveSamples/love.wav Datei anzeigen


BIN
WaveSamples/rain.fi.wav Datei anzeigen


BIN
WaveSamples/rain.fo.wav Datei anzeigen


BIN
WaveSamples/rain.out.wav Datei anzeigen


BIN
WaveSamples/rain.wav Datei anzeigen


BIN
WaveSamples/water.fi.wav Datei anzeigen


BIN
WaveSamples/water.fo.wav Datei anzeigen


BIN
WaveSamples/water.out.wav Datei anzeigen


BIN
WaveSamples/water.wav Datei anzeigen


+ 1
- 0
audio.rsc Datei anzeigen

@@ -0,0 +1 @@
1
+<RCC/>

+ 95
- 0
audiomanip.cpp Datei anzeigen

@@ -0,0 +1,95 @@
1
+#include "audiomanip.h"
2
+/// \file
3
+
4
+// Here is where the laboratory begins
5
+
6
+/// \fn void RemoveVocals(AudioBuffer frames[], int N)
7
+/// \~English
8
+/// \brief Given the audio frames of the sound clip, remove
9
+///                      the vocals from the clip.
10
+/// \param frames array that contains audio samples, it will be modified
11
+///                this function.
12
+/// \param N number of audio samples (per channel)
13
+/// \~Spanish
14
+/// \brief Dadas las tramas de audio de un clip de sonido, remueve
15
+///         las vocales del clip
16
+/// \param arreglo de tramas que contiene las muestras, será modificado en
17
+/// esta funcion.
18
+/// \param N numero de muestras de audio (por canal)
19
+void RemoveVocals(AudioBuffer frames[], int N)
20
+{
21
+
22
+   // YOUR CODE HERE
23
+    
24
+}
25
+
26
+
27
+/// \fn void AudioFadeIn(AudioBuffer frames[], int N, int fade_length)
28
+/// \~English
29
+/// \brief Perform an audio fade in of the sound clip
30
+/// \param frames array that contains audio samples, it will modified
31
+///                this function.
32
+/// \param N number of audio samples (per channel)
33
+/// \param fade_length length of the fade in, in terms of audio samples
34
+/// \~Spanish
35
+/// \brief Performa un desbanecimiento de audio de un clip de sonido
36
+/// \param arreglo de tramas que contiene las muestras, será modificado en
37
+/// esta funcion.
38
+/// \param N numero de muestras de audio (por canal)
39
+/// \param fade_length largo del desbanecimiento, en terminos de muestras de
40
+/// audio.
41
+///
42
+void AudioFadeIn(AudioBuffer frames[], int N, int fade_length)
43
+{
44
+    
45
+    // YOUR CODE HERE
46
+
47
+}
48
+
49
+
50
+/// \fn void AudioFadeOut(AudioBuffer frames[], int N, int fade_length)
51
+/// \~English
52
+/// \brief Perform an audio fade out of the sound clip
53
+/// \param frames array that contains audio samples, it will modified
54
+///                this function.
55
+/// \param N number of audio samples (per channel)
56
+/// \param fade_length length of the fade out, in terms of audio samples
57
+///
58
+/// \~Spanish
59
+/// \brief Performa un incremento del sonido de audio de un clip de sonido
60
+/// \param arreglo de tramas que contiene las muestras, será modificado en
61
+/// esta funcion.
62
+/// \param N numero de muestras de audio (por canal)
63
+/// \param fade_length largo del incremento del sonido, en terminos de muestras de
64
+/// audio.
65
+///
66
+void AudioFadeOut(AudioBuffer frames[], int N, int fade_length)
67
+{
68
+
69
+    // YOUR CODE HERE
70
+    
71
+}
72
+
73
+
74
+/// \fn void LeftToRight(AudioBuffer frames[], int N, int pan_length)
75
+/// \~English
76
+/// \brief Performs a panning effect from left to right
77
+/// \param frames array that contains audio samples, it will modified
78
+///                this function.
79
+/// \param N number of audio samples (per channel)
80
+/// \param pan_length length of the panning effect, in terms of audio samples
81
+///
82
+/// \~Spanish
83
+/// \brief Performa un efecto panoramico del audio de un clip de sonido
84
+/// \param arreglo de tramas que contiene las muestras, será modificado en
85
+/// esta funcion.
86
+/// \param N numero de muestras de audio (por canal)
87
+/// \param pan_length largo del efecto panoramico, en terminos de muestras de
88
+/// audio.
89
+void LeftToRight(AudioBuffer frames[], int N, int pan_length)
90
+{
91
+
92
+    // YOUR CODE HERE
93
+    
94
+}
95
+

+ 86
- 0
audiomanip.h Datei anzeigen

@@ -0,0 +1,86 @@
1
+#ifndef AUDIOMANIP_H
2
+#define AUDIOMANIP_H
3
+
4
+#include <QAudioBuffer>
5
+
6
+///\file
7
+
8
+///
9
+// Define to make the name of the object easier for the student.
10
+/// \~English
11
+/// AudioBuffer is an object with left and right side of an stereo audio
12
+/// \~Spanish
13
+/// AudioBuffer es un objecte con el lado izquierdo y derecho de un audio estero.
14
+///
15
+#define AudioBuffer QAudioBuffer::S16S
16
+
17
+
18
+// Prototypes for the functions to be implemented in the lab
19
+/// \fn void RemoveVocals(AudioBuffer frames[], int N)
20
+/// \~English
21
+/// \brief Given the audio frames of the sound clip, remove
22
+///                      the vocals from the clip.
23
+/// \param frames array that contains audio samples, it will be modified
24
+///                this function.
25
+/// \param N number of audio samples (per channel)
26
+/// \~Spanish
27
+/// \brief Dadas las tramas de audio de un clip de sonido, remueve
28
+///         las vocales del clip
29
+/// \param arreglo de tramas que contiene las muestras, será modificado en
30
+/// esta funcion.
31
+/// \param N numero de muestras de audio (por canal)
32
+void RemoveVocals(AudioBuffer frames[], int N);
33
+
34
+/// \fn void AudioFadeIn(AudioBuffer frames[], int N, int fade_length)
35
+/// \~English
36
+/// \brief Perform an audio fade in of the sound clip
37
+/// \param frames array that contains audio samples, it will modified
38
+///                this function.
39
+/// \param N number of audio samples (per channel)
40
+/// \param fade_length length of the fade in, in terms of audio samples
41
+/// \~Spanish
42
+/// \brief Performa un desbanecimiento de audio de un clip de sonido
43
+/// \param arreglo de tramas que contiene las muestras, será modificado en
44
+/// esta funcion.
45
+/// \param N numero de muestras de audio (por canal)
46
+/// \param fade_length largo del desbanecimiento, en terminos de muestras de
47
+/// audio.
48
+///
49
+void AudioFadeIn (AudioBuffer frames[], int N, int fade_length);
50
+
51
+/// \fn void AudioFadeOut(AudioBuffer frames[], int N, int fade_length)
52
+/// \~English
53
+/// \brief Perform an audio fade out of the sound clip
54
+/// \param frames array that contains audio samples, it will modified
55
+///                this function.
56
+/// \param N number of audio samples (per channel)
57
+/// \param fade_length length of the fade out, in terms of audio samples
58
+///
59
+/// \~Spanish
60
+/// \brief Performa un incremento del sonido de audio de un clip de sonido
61
+/// \param arreglo de tramas que contiene las muestras, será modificado en
62
+/// esta funcion.
63
+/// \param N numero de muestras de audio (por canal)
64
+/// \param fade_length largo del incremento del sonido, en terminos de muestras de
65
+/// audio.
66
+///
67
+void AudioFadeOut(AudioBuffer frames[], int N, int fade_length);
68
+
69
+/// \fn void LeftToRight(AudioBuffer frames[], int N, int pan_length)
70
+/// \~English
71
+/// \brief Performs a panning effect from left to right
72
+/// \param frames array that contains audio samples, it will modified
73
+///                this function.
74
+/// \param N number of audio samples (per channel)
75
+/// \param pan_length length of the panning effect, in terms of audio samples
76
+///
77
+/// \~Spanish
78
+/// \brief Performa un efecto panoramico del audio de un clip de sonido
79
+/// \param arreglo de tramas que contiene las muestras, será modificado en
80
+/// esta funcion.
81
+/// \param N numero de muestras de audio (por canal)
82
+/// \param pan_length largo del efecto panoramico, en terminos de muestras de
83
+/// audio.
84
+void LeftToRight (AudioBuffer frames[], int N, int pan_length);
85
+
86
+#endif

+ 103
- 0
doc/en/html/annotated.html Datei anzeigen

@@ -0,0 +1,103 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: Class List</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
64
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
65
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
66
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
67
+    </ul>
68
+  </div>
69
+</div><!-- top -->
70
+<!-- window showing the filter options -->
71
+<div id="MSearchSelectWindow"
72
+     onmouseover="return searchBox.OnSearchSelectShow()"
73
+     onmouseout="return searchBox.OnSearchSelectHide()"
74
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
75
+</div>
76
+
77
+<!-- iframe showing the search results (closed by default) -->
78
+<div id="MSearchResultsWindow">
79
+<iframe src="javascript:void(0)" frameborder="0" 
80
+        name="MSearchResults" id="MSearchResults">
81
+</iframe>
82
+</div>
83
+
84
+<div class="header">
85
+  <div class="headertitle">
86
+<div class="title">Class List</div>  </div>
87
+</div><!--header-->
88
+<div class="contents">
89
+<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
90
+<table class="directory">
91
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_window.html" target="_self">MainWindow</a></td><td class="desc"></td></tr>
92
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_wave_sound.html" target="_self">WaveSound</a></td><td class="desc"></td></tr>
93
+</table>
94
+</div><!-- directory -->
95
+</div><!-- contents -->
96
+<!-- start footer part -->
97
+<hr class="footer"/><address class="footer"><small>
98
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
99
+<img class="footer" src="doxygen.png" alt="doxygen"/>
100
+</a> 1.8.9.1
101
+</small></address>
102
+</body>
103
+</html>

BIN
doc/en/html/arrowdown.png Datei anzeigen


BIN
doc/en/html/arrowright.png Datei anzeigen


+ 276
- 0
doc/en/html/audiomanip_8cpp.html Datei anzeigen

@@ -0,0 +1,276 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: audiomanip.cpp File Reference</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
64
+      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
65
+    </ul>
66
+  </div>
67
+<!-- window showing the filter options -->
68
+<div id="MSearchSelectWindow"
69
+     onmouseover="return searchBox.OnSearchSelectShow()"
70
+     onmouseout="return searchBox.OnSearchSelectHide()"
71
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
72
+</div>
73
+
74
+<!-- iframe showing the search results (closed by default) -->
75
+<div id="MSearchResultsWindow">
76
+<iframe src="javascript:void(0)" frameborder="0" 
77
+        name="MSearchResults" id="MSearchResults">
78
+</iframe>
79
+</div>
80
+
81
+</div><!-- top -->
82
+<div class="header">
83
+  <div class="summary">
84
+<a href="#func-members">Functions</a>  </div>
85
+  <div class="headertitle">
86
+<div class="title">audiomanip.cpp File Reference</div>  </div>
87
+</div><!--header-->
88
+<div class="contents">
89
+<div class="textblock"><code>#include &quot;<a class="el" href="audiomanip_8h_source.html">audiomanip.h</a>&quot;</code><br />
90
+</div><table class="memberdecls">
91
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
92
+Functions</h2></td></tr>
93
+<tr class="memitem:a3cd69c0b889169ee6625239ca35e9538"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audiomanip_8cpp.html#a3cd69c0b889169ee6625239ca35e9538">RemoveVocals</a> (<a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a> frames[], int N)</td></tr>
94
+<tr class="memdesc:a3cd69c0b889169ee6625239ca35e9538"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given the audio frames of the sound clip, remove the vocals from the clip.  <a href="#a3cd69c0b889169ee6625239ca35e9538">More...</a><br /></td></tr>
95
+<tr class="separator:a3cd69c0b889169ee6625239ca35e9538"><td class="memSeparator" colspan="2">&#160;</td></tr>
96
+<tr class="memitem:a88857e657ef3840063e4ea5e9e898dba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audiomanip_8cpp.html#a88857e657ef3840063e4ea5e9e898dba">AudioFadeIn</a> (<a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a> frames[], int N, int fade_length)</td></tr>
97
+<tr class="memdesc:a88857e657ef3840063e4ea5e9e898dba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform an audio fade in of the sound clip.  <a href="#a88857e657ef3840063e4ea5e9e898dba">More...</a><br /></td></tr>
98
+<tr class="separator:a88857e657ef3840063e4ea5e9e898dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
99
+<tr class="memitem:a980252d21947f1aa1bd45d1ba3938121"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audiomanip_8cpp.html#a980252d21947f1aa1bd45d1ba3938121">AudioFadeOut</a> (<a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a> frames[], int N, int fade_length)</td></tr>
100
+<tr class="memdesc:a980252d21947f1aa1bd45d1ba3938121"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform an audio fade out of the sound clip.  <a href="#a980252d21947f1aa1bd45d1ba3938121">More...</a><br /></td></tr>
101
+<tr class="separator:a980252d21947f1aa1bd45d1ba3938121"><td class="memSeparator" colspan="2">&#160;</td></tr>
102
+<tr class="memitem:acdb38ec71647d81c81eeadf210a7800c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audiomanip_8cpp.html#acdb38ec71647d81c81eeadf210a7800c">LeftToRight</a> (<a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a> frames[], int N, int pan_length)</td></tr>
103
+<tr class="memdesc:acdb38ec71647d81c81eeadf210a7800c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a panning effect from left to right.  <a href="#acdb38ec71647d81c81eeadf210a7800c">More...</a><br /></td></tr>
104
+<tr class="separator:acdb38ec71647d81c81eeadf210a7800c"><td class="memSeparator" colspan="2">&#160;</td></tr>
105
+</table>
106
+<h2 class="groupheader">Function Documentation</h2>
107
+<a class="anchor" id="a88857e657ef3840063e4ea5e9e898dba"></a>
108
+<div class="memitem">
109
+<div class="memproto">
110
+      <table class="memname">
111
+        <tr>
112
+          <td class="memname">void AudioFadeIn </td>
113
+          <td>(</td>
114
+          <td class="paramtype"><a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a>&#160;</td>
115
+          <td class="paramname"><em>frames</em>[], </td>
116
+        </tr>
117
+        <tr>
118
+          <td class="paramkey"></td>
119
+          <td></td>
120
+          <td class="paramtype">int&#160;</td>
121
+          <td class="paramname"><em>N</em>, </td>
122
+        </tr>
123
+        <tr>
124
+          <td class="paramkey"></td>
125
+          <td></td>
126
+          <td class="paramtype">int&#160;</td>
127
+          <td class="paramname"><em>fade_length</em>&#160;</td>
128
+        </tr>
129
+        <tr>
130
+          <td></td>
131
+          <td>)</td>
132
+          <td></td><td></td>
133
+        </tr>
134
+      </table>
135
+</div><div class="memdoc">
136
+
137
+<p>Perform an audio fade in of the sound clip. </p>
138
+<dl class="params"><dt>Parameters</dt><dd>
139
+  <table class="params">
140
+    <tr><td class="paramname">frames</td><td>array that contains audio samples, it will modified this function. </td></tr>
141
+    <tr><td class="paramname">N</td><td>number of audio samples (per channel) </td></tr>
142
+    <tr><td class="paramname">fade_length</td><td>length of the fade in, in terms of audio samples </td></tr>
143
+  </table>
144
+  </dd>
145
+</dl>
146
+
147
+</div>
148
+</div>
149
+<a class="anchor" id="a980252d21947f1aa1bd45d1ba3938121"></a>
150
+<div class="memitem">
151
+<div class="memproto">
152
+      <table class="memname">
153
+        <tr>
154
+          <td class="memname">void AudioFadeOut </td>
155
+          <td>(</td>
156
+          <td class="paramtype"><a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a>&#160;</td>
157
+          <td class="paramname"><em>frames</em>[], </td>
158
+        </tr>
159
+        <tr>
160
+          <td class="paramkey"></td>
161
+          <td></td>
162
+          <td class="paramtype">int&#160;</td>
163
+          <td class="paramname"><em>N</em>, </td>
164
+        </tr>
165
+        <tr>
166
+          <td class="paramkey"></td>
167
+          <td></td>
168
+          <td class="paramtype">int&#160;</td>
169
+          <td class="paramname"><em>fade_length</em>&#160;</td>
170
+        </tr>
171
+        <tr>
172
+          <td></td>
173
+          <td>)</td>
174
+          <td></td><td></td>
175
+        </tr>
176
+      </table>
177
+</div><div class="memdoc">
178
+
179
+<p>Perform an audio fade out of the sound clip. </p>
180
+<dl class="params"><dt>Parameters</dt><dd>
181
+  <table class="params">
182
+    <tr><td class="paramname">frames</td><td>array that contains audio samples, it will modified this function. </td></tr>
183
+    <tr><td class="paramname">N</td><td>number of audio samples (per channel) </td></tr>
184
+    <tr><td class="paramname">fade_length</td><td>length of the fade out, in terms of audio samples </td></tr>
185
+  </table>
186
+  </dd>
187
+</dl>
188
+
189
+</div>
190
+</div>
191
+<a class="anchor" id="acdb38ec71647d81c81eeadf210a7800c"></a>
192
+<div class="memitem">
193
+<div class="memproto">
194
+      <table class="memname">
195
+        <tr>
196
+          <td class="memname">void LeftToRight </td>
197
+          <td>(</td>
198
+          <td class="paramtype"><a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a>&#160;</td>
199
+          <td class="paramname"><em>frames</em>[], </td>
200
+        </tr>
201
+        <tr>
202
+          <td class="paramkey"></td>
203
+          <td></td>
204
+          <td class="paramtype">int&#160;</td>
205
+          <td class="paramname"><em>N</em>, </td>
206
+        </tr>
207
+        <tr>
208
+          <td class="paramkey"></td>
209
+          <td></td>
210
+          <td class="paramtype">int&#160;</td>
211
+          <td class="paramname"><em>pan_length</em>&#160;</td>
212
+        </tr>
213
+        <tr>
214
+          <td></td>
215
+          <td>)</td>
216
+          <td></td><td></td>
217
+        </tr>
218
+      </table>
219
+</div><div class="memdoc">
220
+
221
+<p>Performs a panning effect from left to right. </p>
222
+<dl class="params"><dt>Parameters</dt><dd>
223
+  <table class="params">
224
+    <tr><td class="paramname">frames</td><td>array that contains audio samples, it will modified this function. </td></tr>
225
+    <tr><td class="paramname">N</td><td>number of audio samples (per channel) </td></tr>
226
+    <tr><td class="paramname">pan_length</td><td>length of the panning effect, in terms of audio samples </td></tr>
227
+  </table>
228
+  </dd>
229
+</dl>
230
+
231
+</div>
232
+</div>
233
+<a class="anchor" id="a3cd69c0b889169ee6625239ca35e9538"></a>
234
+<div class="memitem">
235
+<div class="memproto">
236
+      <table class="memname">
237
+        <tr>
238
+          <td class="memname">void RemoveVocals </td>
239
+          <td>(</td>
240
+          <td class="paramtype"><a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a>&#160;</td>
241
+          <td class="paramname"><em>frames</em>[], </td>
242
+        </tr>
243
+        <tr>
244
+          <td class="paramkey"></td>
245
+          <td></td>
246
+          <td class="paramtype">int&#160;</td>
247
+          <td class="paramname"><em>N</em>&#160;</td>
248
+        </tr>
249
+        <tr>
250
+          <td></td>
251
+          <td>)</td>
252
+          <td></td><td></td>
253
+        </tr>
254
+      </table>
255
+</div><div class="memdoc">
256
+
257
+<p>Given the audio frames of the sound clip, remove the vocals from the clip. </p>
258
+<dl class="params"><dt>Parameters</dt><dd>
259
+  <table class="params">
260
+    <tr><td class="paramname">frames</td><td>array that contains audio samples, it will be modified this function. </td></tr>
261
+    <tr><td class="paramname">N</td><td>number of audio samples (per channel) </td></tr>
262
+  </table>
263
+  </dd>
264
+</dl>
265
+
266
+</div>
267
+</div>
268
+</div><!-- contents -->
269
+<!-- start footer part -->
270
+<hr class="footer"/><address class="footer"><small>
271
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
272
+<img class="footer" src="doxygen.png" alt="doxygen"/>
273
+</a> 1.8.9.1
274
+</small></address>
275
+</body>
276
+</html>

+ 298
- 0
doc/en/html/audiomanip_8h.html Datei anzeigen

@@ -0,0 +1,298 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: audiomanip.h File Reference</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
64
+      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
65
+    </ul>
66
+  </div>
67
+<!-- window showing the filter options -->
68
+<div id="MSearchSelectWindow"
69
+     onmouseover="return searchBox.OnSearchSelectShow()"
70
+     onmouseout="return searchBox.OnSearchSelectHide()"
71
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
72
+</div>
73
+
74
+<!-- iframe showing the search results (closed by default) -->
75
+<div id="MSearchResultsWindow">
76
+<iframe src="javascript:void(0)" frameborder="0" 
77
+        name="MSearchResults" id="MSearchResults">
78
+</iframe>
79
+</div>
80
+
81
+</div><!-- top -->
82
+<div class="header">
83
+  <div class="summary">
84
+<a href="#define-members">Macros</a> &#124;
85
+<a href="#func-members">Functions</a>  </div>
86
+  <div class="headertitle">
87
+<div class="title">audiomanip.h File Reference</div>  </div>
88
+</div><!--header-->
89
+<div class="contents">
90
+<div class="textblock"><code>#include &lt;QAudioBuffer&gt;</code><br />
91
+</div>
92
+<p><a href="audiomanip_8h_source.html">Go to the source code of this file.</a></p>
93
+<table class="memberdecls">
94
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
95
+Macros</h2></td></tr>
96
+<tr class="memitem:a03d94cc61b0c5794b5aeb0e8390e7e0d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a>&#160;&#160;&#160;QAudioBuffer::S16S</td></tr>
97
+<tr class="separator:a03d94cc61b0c5794b5aeb0e8390e7e0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
98
+</table><table class="memberdecls">
99
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
100
+Functions</h2></td></tr>
101
+<tr class="memitem:a3cd69c0b889169ee6625239ca35e9538"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audiomanip_8h.html#a3cd69c0b889169ee6625239ca35e9538">RemoveVocals</a> (<a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a> frames[], int N)</td></tr>
102
+<tr class="memdesc:a3cd69c0b889169ee6625239ca35e9538"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given the audio frames of the sound clip, remove the vocals from the clip.  <a href="#a3cd69c0b889169ee6625239ca35e9538">More...</a><br /></td></tr>
103
+<tr class="separator:a3cd69c0b889169ee6625239ca35e9538"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
+<tr class="memitem:a88857e657ef3840063e4ea5e9e898dba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audiomanip_8h.html#a88857e657ef3840063e4ea5e9e898dba">AudioFadeIn</a> (<a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a> frames[], int N, int fade_length)</td></tr>
105
+<tr class="memdesc:a88857e657ef3840063e4ea5e9e898dba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform an audio fade in of the sound clip.  <a href="#a88857e657ef3840063e4ea5e9e898dba">More...</a><br /></td></tr>
106
+<tr class="separator:a88857e657ef3840063e4ea5e9e898dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
107
+<tr class="memitem:a980252d21947f1aa1bd45d1ba3938121"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audiomanip_8h.html#a980252d21947f1aa1bd45d1ba3938121">AudioFadeOut</a> (<a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a> frames[], int N, int fade_length)</td></tr>
108
+<tr class="memdesc:a980252d21947f1aa1bd45d1ba3938121"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform an audio fade out of the sound clip.  <a href="#a980252d21947f1aa1bd45d1ba3938121">More...</a><br /></td></tr>
109
+<tr class="separator:a980252d21947f1aa1bd45d1ba3938121"><td class="memSeparator" colspan="2">&#160;</td></tr>
110
+<tr class="memitem:acdb38ec71647d81c81eeadf210a7800c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audiomanip_8h.html#acdb38ec71647d81c81eeadf210a7800c">LeftToRight</a> (<a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a> frames[], int N, int pan_length)</td></tr>
111
+<tr class="memdesc:acdb38ec71647d81c81eeadf210a7800c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a panning effect from left to right.  <a href="#acdb38ec71647d81c81eeadf210a7800c">More...</a><br /></td></tr>
112
+<tr class="separator:acdb38ec71647d81c81eeadf210a7800c"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
+</table>
114
+<h2 class="groupheader">Macro Definition Documentation</h2>
115
+<a class="anchor" id="a03d94cc61b0c5794b5aeb0e8390e7e0d"></a>
116
+<div class="memitem">
117
+<div class="memproto">
118
+      <table class="memname">
119
+        <tr>
120
+          <td class="memname">#define AudioBuffer&#160;&#160;&#160;QAudioBuffer::S16S</td>
121
+        </tr>
122
+      </table>
123
+</div><div class="memdoc">
124
+<p>AudioBuffer is an object with left and right side of an stereo audio </p>
125
+
126
+</div>
127
+</div>
128
+<h2 class="groupheader">Function Documentation</h2>
129
+<a class="anchor" id="a88857e657ef3840063e4ea5e9e898dba"></a>
130
+<div class="memitem">
131
+<div class="memproto">
132
+      <table class="memname">
133
+        <tr>
134
+          <td class="memname">void AudioFadeIn </td>
135
+          <td>(</td>
136
+          <td class="paramtype"><a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a>&#160;</td>
137
+          <td class="paramname"><em>frames</em>[], </td>
138
+        </tr>
139
+        <tr>
140
+          <td class="paramkey"></td>
141
+          <td></td>
142
+          <td class="paramtype">int&#160;</td>
143
+          <td class="paramname"><em>N</em>, </td>
144
+        </tr>
145
+        <tr>
146
+          <td class="paramkey"></td>
147
+          <td></td>
148
+          <td class="paramtype">int&#160;</td>
149
+          <td class="paramname"><em>fade_length</em>&#160;</td>
150
+        </tr>
151
+        <tr>
152
+          <td></td>
153
+          <td>)</td>
154
+          <td></td><td></td>
155
+        </tr>
156
+      </table>
157
+</div><div class="memdoc">
158
+
159
+<p>Perform an audio fade in of the sound clip. </p>
160
+<dl class="params"><dt>Parameters</dt><dd>
161
+  <table class="params">
162
+    <tr><td class="paramname">frames</td><td>array that contains audio samples, it will modified this function. </td></tr>
163
+    <tr><td class="paramname">N</td><td>number of audio samples (per channel) </td></tr>
164
+    <tr><td class="paramname">fade_length</td><td>length of the fade in, in terms of audio samples </td></tr>
165
+  </table>
166
+  </dd>
167
+</dl>
168
+
169
+</div>
170
+</div>
171
+<a class="anchor" id="a980252d21947f1aa1bd45d1ba3938121"></a>
172
+<div class="memitem">
173
+<div class="memproto">
174
+      <table class="memname">
175
+        <tr>
176
+          <td class="memname">void AudioFadeOut </td>
177
+          <td>(</td>
178
+          <td class="paramtype"><a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a>&#160;</td>
179
+          <td class="paramname"><em>frames</em>[], </td>
180
+        </tr>
181
+        <tr>
182
+          <td class="paramkey"></td>
183
+          <td></td>
184
+          <td class="paramtype">int&#160;</td>
185
+          <td class="paramname"><em>N</em>, </td>
186
+        </tr>
187
+        <tr>
188
+          <td class="paramkey"></td>
189
+          <td></td>
190
+          <td class="paramtype">int&#160;</td>
191
+          <td class="paramname"><em>fade_length</em>&#160;</td>
192
+        </tr>
193
+        <tr>
194
+          <td></td>
195
+          <td>)</td>
196
+          <td></td><td></td>
197
+        </tr>
198
+      </table>
199
+</div><div class="memdoc">
200
+
201
+<p>Perform an audio fade out of the sound clip. </p>
202
+<dl class="params"><dt>Parameters</dt><dd>
203
+  <table class="params">
204
+    <tr><td class="paramname">frames</td><td>array that contains audio samples, it will modified this function. </td></tr>
205
+    <tr><td class="paramname">N</td><td>number of audio samples (per channel) </td></tr>
206
+    <tr><td class="paramname">fade_length</td><td>length of the fade out, in terms of audio samples </td></tr>
207
+  </table>
208
+  </dd>
209
+</dl>
210
+
211
+</div>
212
+</div>
213
+<a class="anchor" id="acdb38ec71647d81c81eeadf210a7800c"></a>
214
+<div class="memitem">
215
+<div class="memproto">
216
+      <table class="memname">
217
+        <tr>
218
+          <td class="memname">void LeftToRight </td>
219
+          <td>(</td>
220
+          <td class="paramtype"><a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a>&#160;</td>
221
+          <td class="paramname"><em>frames</em>[], </td>
222
+        </tr>
223
+        <tr>
224
+          <td class="paramkey"></td>
225
+          <td></td>
226
+          <td class="paramtype">int&#160;</td>
227
+          <td class="paramname"><em>N</em>, </td>
228
+        </tr>
229
+        <tr>
230
+          <td class="paramkey"></td>
231
+          <td></td>
232
+          <td class="paramtype">int&#160;</td>
233
+          <td class="paramname"><em>pan_length</em>&#160;</td>
234
+        </tr>
235
+        <tr>
236
+          <td></td>
237
+          <td>)</td>
238
+          <td></td><td></td>
239
+        </tr>
240
+      </table>
241
+</div><div class="memdoc">
242
+
243
+<p>Performs a panning effect from left to right. </p>
244
+<dl class="params"><dt>Parameters</dt><dd>
245
+  <table class="params">
246
+    <tr><td class="paramname">frames</td><td>array that contains audio samples, it will modified this function. </td></tr>
247
+    <tr><td class="paramname">N</td><td>number of audio samples (per channel) </td></tr>
248
+    <tr><td class="paramname">pan_length</td><td>length of the panning effect, in terms of audio samples </td></tr>
249
+  </table>
250
+  </dd>
251
+</dl>
252
+
253
+</div>
254
+</div>
255
+<a class="anchor" id="a3cd69c0b889169ee6625239ca35e9538"></a>
256
+<div class="memitem">
257
+<div class="memproto">
258
+      <table class="memname">
259
+        <tr>
260
+          <td class="memname">void RemoveVocals </td>
261
+          <td>(</td>
262
+          <td class="paramtype"><a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a>&#160;</td>
263
+          <td class="paramname"><em>frames</em>[], </td>
264
+        </tr>
265
+        <tr>
266
+          <td class="paramkey"></td>
267
+          <td></td>
268
+          <td class="paramtype">int&#160;</td>
269
+          <td class="paramname"><em>N</em>&#160;</td>
270
+        </tr>
271
+        <tr>
272
+          <td></td>
273
+          <td>)</td>
274
+          <td></td><td></td>
275
+        </tr>
276
+      </table>
277
+</div><div class="memdoc">
278
+
279
+<p>Given the audio frames of the sound clip, remove the vocals from the clip. </p>
280
+<dl class="params"><dt>Parameters</dt><dd>
281
+  <table class="params">
282
+    <tr><td class="paramname">frames</td><td>array that contains audio samples, it will be modified this function. </td></tr>
283
+    <tr><td class="paramname">N</td><td>number of audio samples (per channel) </td></tr>
284
+  </table>
285
+  </dd>
286
+</dl>
287
+
288
+</div>
289
+</div>
290
+</div><!-- contents -->
291
+<!-- start footer part -->
292
+<hr class="footer"/><address class="footer"><small>
293
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
294
+<img class="footer" src="doxygen.png" alt="doxygen"/>
295
+</a> 1.8.9.1
296
+</small></address>
297
+</body>
298
+</html>

+ 120
- 0
doc/en/html/audiomanip_8h_source.html Datei anzeigen

@@ -0,0 +1,120 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: audiomanip.h Source File</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
64
+      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
65
+    </ul>
66
+  </div>
67
+</div><!-- top -->
68
+<!-- window showing the filter options -->
69
+<div id="MSearchSelectWindow"
70
+     onmouseover="return searchBox.OnSearchSelectShow()"
71
+     onmouseout="return searchBox.OnSearchSelectHide()"
72
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
73
+</div>
74
+
75
+<!-- iframe showing the search results (closed by default) -->
76
+<div id="MSearchResultsWindow">
77
+<iframe src="javascript:void(0)" frameborder="0" 
78
+        name="MSearchResults" id="MSearchResults">
79
+</iframe>
80
+</div>
81
+
82
+<div class="header">
83
+  <div class="headertitle">
84
+<div class="title">audiomanip.h</div>  </div>
85
+</div><!--header-->
86
+<div class="contents">
87
+<a href="audiomanip_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef AUDIOMANIP_H</span></div>
88
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define AUDIOMANIP_H</span></div>
89
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;</div>
90
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;QAudioBuffer&gt;</span></div>
91
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;</div>
92
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;</div>
93
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">// Define to make the name of the object easier for the student.</span></div>
94
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">   15</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define AudioBuffer QAudioBuffer::S16S</span></div>
95
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div>
96
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div>
97
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">// Prototypes for the functions to be implemented in the lab</span></div>
98
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="audiomanip_8h.html#a3cd69c0b889169ee6625239ca35e9538">RemoveVocals</a>(<a class="code" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a> frames[], <span class="keywordtype">int</span> N);</div>
99
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
100
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audiomanip_8h.html#a88857e657ef3840063e4ea5e9e898dba">AudioFadeIn</a> (<a class="code" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a> frames[], <span class="keywordtype">int</span> N, <span class="keywordtype">int</span> fade_length);</div>
101
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div>
102
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audiomanip_8h.html#a980252d21947f1aa1bd45d1ba3938121">AudioFadeOut</a>(<a class="code" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a> frames[], <span class="keywordtype">int</span> N, <span class="keywordtype">int</span> fade_length);</div>
103
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div>
104
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audiomanip_8h.html#acdb38ec71647d81c81eeadf210a7800c">LeftToRight</a> (<a class="code" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a> frames[], <span class="keywordtype">int</span> N, <span class="keywordtype">int</span> pan_length);</div>
105
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div>
106
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#endif</span></div>
107
+<div class="ttc" id="audiomanip_8h_html_a03d94cc61b0c5794b5aeb0e8390e7e0d"><div class="ttname"><a href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">AudioBuffer</a></div><div class="ttdeci">#define AudioBuffer</div><div class="ttdef"><b>Definition:</b> audiomanip.h:15</div></div>
108
+<div class="ttc" id="audiomanip_8h_html_a3cd69c0b889169ee6625239ca35e9538"><div class="ttname"><a href="audiomanip_8h.html#a3cd69c0b889169ee6625239ca35e9538">RemoveVocals</a></div><div class="ttdeci">void RemoveVocals(AudioBuffer frames[], int N)</div><div class="ttdoc">Given the audio frames of the sound clip, remove the vocals from the clip. </div><div class="ttdef"><b>Definition:</b> audiomanip.cpp:19</div></div>
109
+<div class="ttc" id="audiomanip_8h_html_acdb38ec71647d81c81eeadf210a7800c"><div class="ttname"><a href="audiomanip_8h.html#acdb38ec71647d81c81eeadf210a7800c">LeftToRight</a></div><div class="ttdeci">void LeftToRight(AudioBuffer frames[], int N, int pan_length)</div><div class="ttdoc">Performs a panning effect from left to right. </div><div class="ttdef"><b>Definition:</b> audiomanip.cpp:105</div></div>
110
+<div class="ttc" id="audiomanip_8h_html_a88857e657ef3840063e4ea5e9e898dba"><div class="ttname"><a href="audiomanip_8h.html#a88857e657ef3840063e4ea5e9e898dba">AudioFadeIn</a></div><div class="ttdeci">void AudioFadeIn(AudioBuffer frames[], int N, int fade_length)</div><div class="ttdoc">Perform an audio fade in of the sound clip. </div><div class="ttdef"><b>Definition:</b> audiomanip.cpp:45</div></div>
111
+<div class="ttc" id="audiomanip_8h_html_a980252d21947f1aa1bd45d1ba3938121"><div class="ttname"><a href="audiomanip_8h.html#a980252d21947f1aa1bd45d1ba3938121">AudioFadeOut</a></div><div class="ttdeci">void AudioFadeOut(AudioBuffer frames[], int N, int fade_length)</div><div class="ttdoc">Perform an audio fade out of the sound clip. </div><div class="ttdef"><b>Definition:</b> audiomanip.cpp:75</div></div>
112
+</div><!-- fragment --></div><!-- contents -->
113
+<!-- start footer part -->
114
+<hr class="footer"/><address class="footer"><small>
115
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
116
+<img class="footer" src="doxygen.png" alt="doxygen"/>
117
+</a> 1.8.9.1
118
+</small></address>
119
+</body>
120
+</html>

BIN
doc/en/html/bc_s.png Datei anzeigen


BIN
doc/en/html/bdwn.png Datei anzeigen


+ 102
- 0
doc/en/html/class_main_window-members.html Datei anzeigen

@@ -0,0 +1,102 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: Member List</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
64
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
65
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
66
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
67
+    </ul>
68
+  </div>
69
+<!-- window showing the filter options -->
70
+<div id="MSearchSelectWindow"
71
+     onmouseover="return searchBox.OnSearchSelectShow()"
72
+     onmouseout="return searchBox.OnSearchSelectHide()"
73
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
74
+</div>
75
+
76
+<!-- iframe showing the search results (closed by default) -->
77
+<div id="MSearchResultsWindow">
78
+<iframe src="javascript:void(0)" frameborder="0" 
79
+        name="MSearchResults" id="MSearchResults">
80
+</iframe>
81
+</div>
82
+
83
+</div><!-- top -->
84
+<div class="header">
85
+  <div class="headertitle">
86
+<div class="title">MainWindow Member List</div>  </div>
87
+</div><!--header-->
88
+<div class="contents">
89
+
90
+<p>This is the complete list of members for <a class="el" href="class_main_window.html">MainWindow</a>, including all inherited members.</p>
91
+<table class="directory">
92
+  <tr class="even"><td class="entry"><a class="el" href="class_main_window.html#a8b244be8b7b7db1b08de2a2acb9409db">MainWindow</a>(QWidget *parent=0)</td><td class="entry"><a class="el" href="class_main_window.html">MainWindow</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
93
+  <tr><td class="entry"><a class="el" href="class_main_window.html#ae98d00a93bc118200eeef9f9bba1dba7">~MainWindow</a>()</td><td class="entry"><a class="el" href="class_main_window.html">MainWindow</a></td><td class="entry"></td></tr>
94
+</table></div><!-- contents -->
95
+<!-- start footer part -->
96
+<hr class="footer"/><address class="footer"><small>
97
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
98
+<img class="footer" src="doxygen.png" alt="doxygen"/>
99
+</a> 1.8.9.1
100
+</small></address>
101
+</body>
102
+</html>

+ 124
- 0
doc/en/html/class_main_window.html Datei anzeigen

@@ -0,0 +1,124 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: MainWindow Class Reference</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
64
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
65
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
66
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
67
+    </ul>
68
+  </div>
69
+<!-- window showing the filter options -->
70
+<div id="MSearchSelectWindow"
71
+     onmouseover="return searchBox.OnSearchSelectShow()"
72
+     onmouseout="return searchBox.OnSearchSelectHide()"
73
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
74
+</div>
75
+
76
+<!-- iframe showing the search results (closed by default) -->
77
+<div id="MSearchResultsWindow">
78
+<iframe src="javascript:void(0)" frameborder="0" 
79
+        name="MSearchResults" id="MSearchResults">
80
+</iframe>
81
+</div>
82
+
83
+</div><!-- top -->
84
+<div class="header">
85
+  <div class="summary">
86
+<a href="#pub-methods">Public Member Functions</a> &#124;
87
+<a href="class_main_window-members.html">List of all members</a>  </div>
88
+  <div class="headertitle">
89
+<div class="title">MainWindow Class Reference</div>  </div>
90
+</div><!--header-->
91
+<div class="contents">
92
+<div class="dynheader">
93
+Inheritance diagram for MainWindow:</div>
94
+<div class="dyncontent">
95
+ <div class="center">
96
+  <img src="class_main_window.png" usemap="#MainWindow_map" alt=""/>
97
+  <map id="MainWindow_map" name="MainWindow_map">
98
+</map>
99
+ </div></div>
100
+<table class="memberdecls">
101
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
102
+Public Member Functions</h2></td></tr>
103
+<tr class="memitem:a8b244be8b7b7db1b08de2a2acb9409db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b244be8b7b7db1b08de2a2acb9409db"></a>
104
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_main_window.html#a8b244be8b7b7db1b08de2a2acb9409db">MainWindow</a> (QWidget *parent=0)</td></tr>
105
+<tr class="memdesc:a8b244be8b7b7db1b08de2a2acb9409db"><td class="mdescLeft">&#160;</td><td class="mdescRight">GUI Constructor. <br /></td></tr>
106
+<tr class="separator:a8b244be8b7b7db1b08de2a2acb9409db"><td class="memSeparator" colspan="2">&#160;</td></tr>
107
+<tr class="memitem:ae98d00a93bc118200eeef9f9bba1dba7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae98d00a93bc118200eeef9f9bba1dba7"></a>
108
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_main_window.html#ae98d00a93bc118200eeef9f9bba1dba7">~MainWindow</a> ()</td></tr>
109
+<tr class="memdesc:ae98d00a93bc118200eeef9f9bba1dba7"><td class="mdescLeft">&#160;</td><td class="mdescRight">GUI Destructor. <br /></td></tr>
110
+<tr class="separator:ae98d00a93bc118200eeef9f9bba1dba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
111
+</table>
112
+<hr/>The documentation for this class was generated from the following files:<ul>
113
+<li><a class="el" href="mainwindow_8h_source.html">mainwindow.h</a></li>
114
+<li><a class="el" href="mainwindow_8cpp.html">mainwindow.cpp</a></li>
115
+</ul>
116
+</div><!-- contents -->
117
+<!-- start footer part -->
118
+<hr class="footer"/><address class="footer"><small>
119
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
120
+<img class="footer" src="doxygen.png" alt="doxygen"/>
121
+</a> 1.8.9.1
122
+</small></address>
123
+</body>
124
+</html>

BIN
doc/en/html/class_main_window.png Datei anzeigen


+ 105
- 0
doc/en/html/class_wave_sound-members.html Datei anzeigen

@@ -0,0 +1,105 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: Member List</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
64
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
65
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
66
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
67
+    </ul>
68
+  </div>
69
+<!-- window showing the filter options -->
70
+<div id="MSearchSelectWindow"
71
+     onmouseover="return searchBox.OnSearchSelectShow()"
72
+     onmouseout="return searchBox.OnSearchSelectHide()"
73
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
74
+</div>
75
+
76
+<!-- iframe showing the search results (closed by default) -->
77
+<div id="MSearchResultsWindow">
78
+<iframe src="javascript:void(0)" frameborder="0" 
79
+        name="MSearchResults" id="MSearchResults">
80
+</iframe>
81
+</div>
82
+
83
+</div><!-- top -->
84
+<div class="header">
85
+  <div class="headertitle">
86
+<div class="title">WaveSound Member List</div>  </div>
87
+</div><!--header-->
88
+<div class="contents">
89
+
90
+<p>This is the complete list of members for <a class="el" href="class_wave_sound.html">WaveSound</a>, including all inherited members.</p>
91
+<table class="directory">
92
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>frameCount</b>() (defined in <a class="el" href="class_wave_sound.html">WaveSound</a>)</td><td class="entry"><a class="el" href="class_wave_sound.html">WaveSound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
93
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getAudioSamples</b>(QString filename) (defined in <a class="el" href="class_wave_sound.html">WaveSound</a>)</td><td class="entry"><a class="el" href="class_wave_sound.html">WaveSound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
94
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>WaveSound</b>() (defined in <a class="el" href="class_wave_sound.html">WaveSound</a>)</td><td class="entry"><a class="el" href="class_wave_sound.html">WaveSound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
95
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>writeNewAudioFile</b>(QString filename) (defined in <a class="el" href="class_wave_sound.html">WaveSound</a>)</td><td class="entry"><a class="el" href="class_wave_sound.html">WaveSound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
96
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~WaveSound</b>() (defined in <a class="el" href="class_wave_sound.html">WaveSound</a>)</td><td class="entry"><a class="el" href="class_wave_sound.html">WaveSound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
97
+</table></div><!-- contents -->
98
+<!-- start footer part -->
99
+<hr class="footer"/><address class="footer"><small>
100
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
101
+<img class="footer" src="doxygen.png" alt="doxygen"/>
102
+</a> 1.8.9.1
103
+</small></address>
104
+</body>
105
+</html>

+ 116
- 0
doc/en/html/class_wave_sound.html Datei anzeigen

@@ -0,0 +1,116 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: WaveSound Class Reference</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
64
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
65
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
66
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
67
+    </ul>
68
+  </div>
69
+<!-- window showing the filter options -->
70
+<div id="MSearchSelectWindow"
71
+     onmouseover="return searchBox.OnSearchSelectShow()"
72
+     onmouseout="return searchBox.OnSearchSelectHide()"
73
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
74
+</div>
75
+
76
+<!-- iframe showing the search results (closed by default) -->
77
+<div id="MSearchResultsWindow">
78
+<iframe src="javascript:void(0)" frameborder="0" 
79
+        name="MSearchResults" id="MSearchResults">
80
+</iframe>
81
+</div>
82
+
83
+</div><!-- top -->
84
+<div class="header">
85
+  <div class="summary">
86
+<a href="#pub-methods">Public Member Functions</a> &#124;
87
+<a href="class_wave_sound-members.html">List of all members</a>  </div>
88
+  <div class="headertitle">
89
+<div class="title">WaveSound Class Reference</div>  </div>
90
+</div><!--header-->
91
+<div class="contents">
92
+<table class="memberdecls">
93
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
94
+Public Member Functions</h2></td></tr>
95
+<tr class="memitem:a70deef07d0d63fd049229f324057dd1d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70deef07d0d63fd049229f324057dd1d"></a>
96
+QAudioBuffer::S16S *&#160;</td><td class="memItemRight" valign="bottom"><b>getAudioSamples</b> (QString filename)</td></tr>
97
+<tr class="separator:a70deef07d0d63fd049229f324057dd1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
98
+<tr class="memitem:a573bb274a9bf162a97edcbc02525f13c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a573bb274a9bf162a97edcbc02525f13c"></a>
99
+void&#160;</td><td class="memItemRight" valign="bottom"><b>writeNewAudioFile</b> (QString filename)</td></tr>
100
+<tr class="separator:a573bb274a9bf162a97edcbc02525f13c"><td class="memSeparator" colspan="2">&#160;</td></tr>
101
+<tr class="memitem:a585722c8385d9ea38d82b7758cf9b376"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a585722c8385d9ea38d82b7758cf9b376"></a>
102
+int&#160;</td><td class="memItemRight" valign="bottom"><b>frameCount</b> ()</td></tr>
103
+<tr class="separator:a585722c8385d9ea38d82b7758cf9b376"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
+</table>
105
+<hr/>The documentation for this class was generated from the following file:<ul>
106
+<li><a class="el" href="wavesound_8h_source.html">wavesound.h</a></li>
107
+</ul>
108
+</div><!-- contents -->
109
+<!-- start footer part -->
110
+<hr class="footer"/><address class="footer"><small>
111
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
112
+<img class="footer" src="doxygen.png" alt="doxygen"/>
113
+</a> 1.8.9.1
114
+</small></address>
115
+</body>
116
+</html>

+ 107
- 0
doc/en/html/classes.html Datei anzeigen

@@ -0,0 +1,107 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: Class Index</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
64
+      <li class="current"><a href="classes.html"><span>Class&#160;Index</span></a></li>
65
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
66
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
67
+    </ul>
68
+  </div>
69
+</div><!-- top -->
70
+<!-- window showing the filter options -->
71
+<div id="MSearchSelectWindow"
72
+     onmouseover="return searchBox.OnSearchSelectShow()"
73
+     onmouseout="return searchBox.OnSearchSelectHide()"
74
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
75
+</div>
76
+
77
+<!-- iframe showing the search results (closed by default) -->
78
+<div id="MSearchResultsWindow">
79
+<iframe src="javascript:void(0)" frameborder="0" 
80
+        name="MSearchResults" id="MSearchResults">
81
+</iframe>
82
+</div>
83
+
84
+<div class="header">
85
+  <div class="headertitle">
86
+<div class="title">Class Index</div>  </div>
87
+</div><!--header-->
88
+<div class="contents">
89
+<div class="qindex"><a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
90
+<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
91
+<tr><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;M&#160;&#160;</div></td></tr></table>
92
+</td><td rowspan="2" valign="bottom"><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;W&#160;&#160;</div></td></tr></table>
93
+</td><td></td></tr>
94
+<tr><td></td></tr>
95
+<tr><td valign="top"><a class="el" href="class_main_window.html">MainWindow</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_wave_sound.html">WaveSound</a>&#160;&#160;&#160;</td><td></td></tr>
96
+<tr><td></td><td></td><td></td></tr>
97
+</table>
98
+<div class="qindex"><a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
99
+</div><!-- contents -->
100
+<!-- start footer part -->
101
+<hr class="footer"/><address class="footer"><small>
102
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
103
+<img class="footer" src="doxygen.png" alt="doxygen"/>
104
+</a> 1.8.9.1
105
+</small></address>
106
+</body>
107
+</html>

BIN
doc/en/html/closed.png Datei anzeigen


BIN
doc/en/html/doc.png Datei anzeigen


+ 1449
- 0
doc/en/html/doxygen.css
Datei-Diff unterdrückt, da er zu groß ist
Datei anzeigen


BIN
doc/en/html/doxygen.png Datei anzeigen


+ 97
- 0
doc/en/html/dynsections.js Datei anzeigen

@@ -0,0 +1,97 @@
1
+function toggleVisibility(linkObj)
2
+{
3
+ var base = $(linkObj).attr('id');
4
+ var summary = $('#'+base+'-summary');
5
+ var content = $('#'+base+'-content');
6
+ var trigger = $('#'+base+'-trigger');
7
+ var src=$(trigger).attr('src');
8
+ if (content.is(':visible')===true) {
9
+   content.hide();
10
+   summary.show();
11
+   $(linkObj).addClass('closed').removeClass('opened');
12
+   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
13
+ } else {
14
+   content.show();
15
+   summary.hide();
16
+   $(linkObj).removeClass('closed').addClass('opened');
17
+   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
18
+ } 
19
+ return false;
20
+}
21
+
22
+function updateStripes()
23
+{
24
+  $('table.directory tr').
25
+       removeClass('even').filter(':visible:even').addClass('even');
26
+}
27
+
28
+function toggleLevel(level)
29
+{
30
+  $('table.directory tr').each(function() {
31
+    var l = this.id.split('_').length-1;
32
+    var i = $('#img'+this.id.substring(3));
33
+    var a = $('#arr'+this.id.substring(3));
34
+    if (l<level+1) {
35
+      i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
36
+      a.html('&#9660;');
37
+      $(this).show();
38
+    } else if (l==level+1) {
39
+      i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
40
+      a.html('&#9658;');
41
+      $(this).show();
42
+    } else {
43
+      $(this).hide();
44
+    }
45
+  });
46
+  updateStripes();
47
+}
48
+
49
+function toggleFolder(id)
50
+{
51
+  // the clicked row
52
+  var currentRow = $('#row_'+id);
53
+
54
+  // all rows after the clicked row
55
+  var rows = currentRow.nextAll("tr");
56
+
57
+  var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
58
+
59
+  // only match elements AFTER this one (can't hide elements before)
60
+  var childRows = rows.filter(function() { return this.id.match(re); });
61
+
62
+  // first row is visible we are HIDING
63
+  if (childRows.filter(':first').is(':visible')===true) {
64
+    // replace down arrow by right arrow for current row
65
+    var currentRowSpans = currentRow.find("span");
66
+    currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
67
+    currentRowSpans.filter(".arrow").html('&#9658;');
68
+    rows.filter("[id^=row_"+id+"]").hide(); // hide all children
69
+  } else { // we are SHOWING
70
+    // replace right arrow by down arrow for current row
71
+    var currentRowSpans = currentRow.find("span");
72
+    currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
73
+    currentRowSpans.filter(".arrow").html('&#9660;');
74
+    // replace down arrows by right arrows for child rows
75
+    var childRowsSpans = childRows.find("span");
76
+    childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
77
+    childRowsSpans.filter(".arrow").html('&#9658;');
78
+    childRows.show(); //show all children
79
+  }
80
+  updateStripes();
81
+}
82
+
83
+
84
+function toggleInherit(id)
85
+{
86
+  var rows = $('tr.inherit.'+id);
87
+  var img = $('tr.inherit_header.'+id+' img');
88
+  var src = $(img).attr('src');
89
+  if (rows.filter(':first').is(':visible')===true) {
90
+    rows.css('display','none');
91
+    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
92
+  } else {
93
+    rows.css('display','table-row'); // using show() causes jump in firefox
94
+    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
95
+  }
96
+}
97
+

+ 104
- 0
doc/en/html/files.html Datei anzeigen

@@ -0,0 +1,104 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: File List</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
64
+      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
65
+    </ul>
66
+  </div>
67
+</div><!-- top -->
68
+<!-- window showing the filter options -->
69
+<div id="MSearchSelectWindow"
70
+     onmouseover="return searchBox.OnSearchSelectShow()"
71
+     onmouseout="return searchBox.OnSearchSelectHide()"
72
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
73
+</div>
74
+
75
+<!-- iframe showing the search results (closed by default) -->
76
+<div id="MSearchResultsWindow">
77
+<iframe src="javascript:void(0)" frameborder="0" 
78
+        name="MSearchResults" id="MSearchResults">
79
+</iframe>
80
+</div>
81
+
82
+<div class="header">
83
+  <div class="headertitle">
84
+<div class="title">File List</div>  </div>
85
+</div><!--header-->
86
+<div class="contents">
87
+<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
88
+<table class="directory">
89
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="audiomanip_8cpp.html" target="_self">audiomanip.cpp</a></td><td class="desc"></td></tr>
90
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="audiomanip_8h_source.html"><span class="icondoc"></span></a><a class="el" href="audiomanip_8h.html" target="_self">audiomanip.h</a></td><td class="desc"></td></tr>
91
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="mainwindow_8cpp.html" target="_self">mainwindow.cpp</a></td><td class="desc"></td></tr>
92
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="mainwindow_8h_source.html"><span class="icondoc"></span></a><b>mainwindow.h</b></td><td class="desc"></td></tr>
93
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="wavesound_8h_source.html"><span class="icondoc"></span></a><b>wavesound.h</b></td><td class="desc"></td></tr>
94
+</table>
95
+</div><!-- directory -->
96
+</div><!-- contents -->
97
+<!-- start footer part -->
98
+<hr class="footer"/><address class="footer"><small>
99
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
100
+<img class="footer" src="doxygen.png" alt="doxygen"/>
101
+</a> 1.8.9.1
102
+</small></address>
103
+</body>
104
+</html>

BIN
doc/en/html/folderclosed.png Datei anzeigen


BIN
doc/en/html/folderopen.png Datei anzeigen


+ 107
- 0
doc/en/html/functions.html Datei anzeigen

@@ -0,0 +1,107 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: Class Members</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
64
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
65
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
66
+      <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
67
+    </ul>
68
+  </div>
69
+  <div id="navrow3" class="tabs2">
70
+    <ul class="tablist">
71
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
72
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
73
+    </ul>
74
+  </div>
75
+</div><!-- top -->
76
+<!-- window showing the filter options -->
77
+<div id="MSearchSelectWindow"
78
+     onmouseover="return searchBox.OnSearchSelectShow()"
79
+     onmouseout="return searchBox.OnSearchSelectHide()"
80
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
81
+</div>
82
+
83
+<!-- iframe showing the search results (closed by default) -->
84
+<div id="MSearchResultsWindow">
85
+<iframe src="javascript:void(0)" frameborder="0" 
86
+        name="MSearchResults" id="MSearchResults">
87
+</iframe>
88
+</div>
89
+
90
+<div class="contents">
91
+<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div><ul>
92
+<li>MainWindow()
93
+: <a class="el" href="class_main_window.html#a8b244be8b7b7db1b08de2a2acb9409db">MainWindow</a>
94
+</li>
95
+<li>~MainWindow()
96
+: <a class="el" href="class_main_window.html#ae98d00a93bc118200eeef9f9bba1dba7">MainWindow</a>
97
+</li>
98
+</ul>
99
+</div><!-- contents -->
100
+<!-- start footer part -->
101
+<hr class="footer"/><address class="footer"><small>
102
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
103
+<img class="footer" src="doxygen.png" alt="doxygen"/>
104
+</a> 1.8.9.1
105
+</small></address>
106
+</body>
107
+</html>

+ 107
- 0
doc/en/html/functions_func.html Datei anzeigen

@@ -0,0 +1,107 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: Class Members - Functions</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
64
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
65
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
66
+      <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
67
+    </ul>
68
+  </div>
69
+  <div id="navrow3" class="tabs2">
70
+    <ul class="tablist">
71
+      <li><a href="functions.html"><span>All</span></a></li>
72
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
73
+    </ul>
74
+  </div>
75
+</div><!-- top -->
76
+<!-- window showing the filter options -->
77
+<div id="MSearchSelectWindow"
78
+     onmouseover="return searchBox.OnSearchSelectShow()"
79
+     onmouseout="return searchBox.OnSearchSelectHide()"
80
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
81
+</div>
82
+
83
+<!-- iframe showing the search results (closed by default) -->
84
+<div id="MSearchResultsWindow">
85
+<iframe src="javascript:void(0)" frameborder="0" 
86
+        name="MSearchResults" id="MSearchResults">
87
+</iframe>
88
+</div>
89
+
90
+<div class="contents">
91
+&#160;<ul>
92
+<li>MainWindow()
93
+: <a class="el" href="class_main_window.html#a8b244be8b7b7db1b08de2a2acb9409db">MainWindow</a>
94
+</li>
95
+<li>~MainWindow()
96
+: <a class="el" href="class_main_window.html#ae98d00a93bc118200eeef9f9bba1dba7">MainWindow</a>
97
+</li>
98
+</ul>
99
+</div><!-- contents -->
100
+<!-- start footer part -->
101
+<hr class="footer"/><address class="footer"><small>
102
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
103
+<img class="footer" src="doxygen.png" alt="doxygen"/>
104
+</a> 1.8.9.1
105
+</small></address>
106
+</body>
107
+</html>

+ 119
- 0
doc/en/html/globals.html Datei anzeigen

@@ -0,0 +1,119 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: File Members</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
64
+      <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
65
+    </ul>
66
+  </div>
67
+  <div id="navrow3" class="tabs2">
68
+    <ul class="tablist">
69
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
70
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
71
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
72
+    </ul>
73
+  </div>
74
+</div><!-- top -->
75
+<!-- window showing the filter options -->
76
+<div id="MSearchSelectWindow"
77
+     onmouseover="return searchBox.OnSearchSelectShow()"
78
+     onmouseout="return searchBox.OnSearchSelectHide()"
79
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
80
+</div>
81
+
82
+<!-- iframe showing the search results (closed by default) -->
83
+<div id="MSearchResultsWindow">
84
+<iframe src="javascript:void(0)" frameborder="0" 
85
+        name="MSearchResults" id="MSearchResults">
86
+</iframe>
87
+</div>
88
+
89
+<div class="contents">
90
+<div class="textblock">Here is a list of all documented file members with links to the documentation:</div><ul>
91
+<li>AudioBuffer
92
+: <a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">audiomanip.h</a>
93
+</li>
94
+<li>AudioFadeIn()
95
+: <a class="el" href="audiomanip_8cpp.html#a88857e657ef3840063e4ea5e9e898dba">audiomanip.cpp</a>
96
+, <a class="el" href="audiomanip_8h.html#a88857e657ef3840063e4ea5e9e898dba">audiomanip.h</a>
97
+</li>
98
+<li>AudioFadeOut()
99
+: <a class="el" href="audiomanip_8cpp.html#a980252d21947f1aa1bd45d1ba3938121">audiomanip.cpp</a>
100
+, <a class="el" href="audiomanip_8h.html#a980252d21947f1aa1bd45d1ba3938121">audiomanip.h</a>
101
+</li>
102
+<li>LeftToRight()
103
+: <a class="el" href="audiomanip_8cpp.html#acdb38ec71647d81c81eeadf210a7800c">audiomanip.cpp</a>
104
+, <a class="el" href="audiomanip_8h.html#acdb38ec71647d81c81eeadf210a7800c">audiomanip.h</a>
105
+</li>
106
+<li>RemoveVocals()
107
+: <a class="el" href="audiomanip_8cpp.html#a3cd69c0b889169ee6625239ca35e9538">audiomanip.cpp</a>
108
+, <a class="el" href="audiomanip_8h.html#a3cd69c0b889169ee6625239ca35e9538">audiomanip.h</a>
109
+</li>
110
+</ul>
111
+</div><!-- contents -->
112
+<!-- start footer part -->
113
+<hr class="footer"/><address class="footer"><small>
114
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
115
+<img class="footer" src="doxygen.png" alt="doxygen"/>
116
+</a> 1.8.9.1
117
+</small></address>
118
+</body>
119
+</html>

+ 103
- 0
doc/en/html/globals_defs.html Datei anzeigen

@@ -0,0 +1,103 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: File Members</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
64
+      <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
65
+    </ul>
66
+  </div>
67
+  <div id="navrow3" class="tabs2">
68
+    <ul class="tablist">
69
+      <li><a href="globals.html"><span>All</span></a></li>
70
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
71
+      <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
72
+    </ul>
73
+  </div>
74
+</div><!-- top -->
75
+<!-- window showing the filter options -->
76
+<div id="MSearchSelectWindow"
77
+     onmouseover="return searchBox.OnSearchSelectShow()"
78
+     onmouseout="return searchBox.OnSearchSelectHide()"
79
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
80
+</div>
81
+
82
+<!-- iframe showing the search results (closed by default) -->
83
+<div id="MSearchResultsWindow">
84
+<iframe src="javascript:void(0)" frameborder="0" 
85
+        name="MSearchResults" id="MSearchResults">
86
+</iframe>
87
+</div>
88
+
89
+<div class="contents">
90
+&#160;<ul>
91
+<li>AudioBuffer
92
+: <a class="el" href="audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d">audiomanip.h</a>
93
+</li>
94
+</ul>
95
+</div><!-- contents -->
96
+<!-- start footer part -->
97
+<hr class="footer"/><address class="footer"><small>
98
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
99
+<img class="footer" src="doxygen.png" alt="doxygen"/>
100
+</a> 1.8.9.1
101
+</small></address>
102
+</body>
103
+</html>

+ 116
- 0
doc/en/html/globals_func.html Datei anzeigen

@@ -0,0 +1,116 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: File Members</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
64
+      <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
65
+    </ul>
66
+  </div>
67
+  <div id="navrow3" class="tabs2">
68
+    <ul class="tablist">
69
+      <li><a href="globals.html"><span>All</span></a></li>
70
+      <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
71
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
72
+    </ul>
73
+  </div>
74
+</div><!-- top -->
75
+<!-- window showing the filter options -->
76
+<div id="MSearchSelectWindow"
77
+     onmouseover="return searchBox.OnSearchSelectShow()"
78
+     onmouseout="return searchBox.OnSearchSelectHide()"
79
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
80
+</div>
81
+
82
+<!-- iframe showing the search results (closed by default) -->
83
+<div id="MSearchResultsWindow">
84
+<iframe src="javascript:void(0)" frameborder="0" 
85
+        name="MSearchResults" id="MSearchResults">
86
+</iframe>
87
+</div>
88
+
89
+<div class="contents">
90
+&#160;<ul>
91
+<li>AudioFadeIn()
92
+: <a class="el" href="audiomanip_8cpp.html#a88857e657ef3840063e4ea5e9e898dba">audiomanip.cpp</a>
93
+, <a class="el" href="audiomanip_8h.html#a88857e657ef3840063e4ea5e9e898dba">audiomanip.h</a>
94
+</li>
95
+<li>AudioFadeOut()
96
+: <a class="el" href="audiomanip_8cpp.html#a980252d21947f1aa1bd45d1ba3938121">audiomanip.cpp</a>
97
+, <a class="el" href="audiomanip_8h.html#a980252d21947f1aa1bd45d1ba3938121">audiomanip.h</a>
98
+</li>
99
+<li>LeftToRight()
100
+: <a class="el" href="audiomanip_8cpp.html#acdb38ec71647d81c81eeadf210a7800c">audiomanip.cpp</a>
101
+, <a class="el" href="audiomanip_8h.html#acdb38ec71647d81c81eeadf210a7800c">audiomanip.h</a>
102
+</li>
103
+<li>RemoveVocals()
104
+: <a class="el" href="audiomanip_8cpp.html#a3cd69c0b889169ee6625239ca35e9538">audiomanip.cpp</a>
105
+, <a class="el" href="audiomanip_8h.html#a3cd69c0b889169ee6625239ca35e9538">audiomanip.h</a>
106
+</li>
107
+</ul>
108
+</div><!-- contents -->
109
+<!-- start footer part -->
110
+<hr class="footer"/><address class="footer"><small>
111
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
112
+<img class="footer" src="doxygen.png" alt="doxygen"/>
113
+</a> 1.8.9.1
114
+</small></address>
115
+</body>
116
+</html>

+ 104
- 0
doc/en/html/hierarchy.html Datei anzeigen

@@ -0,0 +1,104 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: Class Hierarchy</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
64
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
65
+      <li class="current"><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
66
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
67
+    </ul>
68
+  </div>
69
+</div><!-- top -->
70
+<!-- window showing the filter options -->
71
+<div id="MSearchSelectWindow"
72
+     onmouseover="return searchBox.OnSearchSelectShow()"
73
+     onmouseout="return searchBox.OnSearchSelectHide()"
74
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
75
+</div>
76
+
77
+<!-- iframe showing the search results (closed by default) -->
78
+<div id="MSearchResultsWindow">
79
+<iframe src="javascript:void(0)" frameborder="0" 
80
+        name="MSearchResults" id="MSearchResults">
81
+</iframe>
82
+</div>
83
+
84
+<div class="header">
85
+  <div class="headertitle">
86
+<div class="title">Class Hierarchy</div>  </div>
87
+</div><!--header-->
88
+<div class="contents">
89
+<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
90
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
91
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>QMainWindow</b></td><td class="desc"></td></tr>
92
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_window.html" target="_self">MainWindow</a></td><td class="desc"></td></tr>
93
+<tr id="row_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_wave_sound.html" target="_self">WaveSound</a></td><td class="desc"></td></tr>
94
+</table>
95
+</div><!-- directory -->
96
+</div><!-- contents -->
97
+<!-- start footer part -->
98
+<hr class="footer"/><address class="footer"><small>
99
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
100
+<img class="footer" src="doxygen.png" alt="doxygen"/>
101
+</a> 1.8.9.1
102
+</small></address>
103
+</body>
104
+</html>

+ 89
- 0
doc/en/html/index.html Datei anzeigen

@@ -0,0 +1,89 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: Main Page</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+</div><!-- top -->
62
+<!-- window showing the filter options -->
63
+<div id="MSearchSelectWindow"
64
+     onmouseover="return searchBox.OnSearchSelectShow()"
65
+     onmouseout="return searchBox.OnSearchSelectHide()"
66
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
67
+</div>
68
+
69
+<!-- iframe showing the search results (closed by default) -->
70
+<div id="MSearchResultsWindow">
71
+<iframe src="javascript:void(0)" frameborder="0" 
72
+        name="MSearchResults" id="MSearchResults">
73
+</iframe>
74
+</div>
75
+
76
+<div class="header">
77
+  <div class="headertitle">
78
+<div class="title">My Project Documentation</div>  </div>
79
+</div><!--header-->
80
+<div class="contents">
81
+</div><!-- contents -->
82
+<!-- start footer part -->
83
+<hr class="footer"/><address class="footer"><small>
84
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
85
+<img class="footer" src="doxygen.png" alt="doxygen"/>
86
+</a> 1.8.9.1
87
+</small></address>
88
+</body>
89
+</html>

+ 68
- 0
doc/en/html/jquery.js
Datei-Diff unterdrückt, da er zu groß ist
Datei anzeigen


+ 98
- 0
doc/en/html/mainwindow_8cpp.html Datei anzeigen

@@ -0,0 +1,98 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: mainwindow.cpp File Reference</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
64
+      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
65
+    </ul>
66
+  </div>
67
+<!-- window showing the filter options -->
68
+<div id="MSearchSelectWindow"
69
+     onmouseover="return searchBox.OnSearchSelectShow()"
70
+     onmouseout="return searchBox.OnSearchSelectHide()"
71
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
72
+</div>
73
+
74
+<!-- iframe showing the search results (closed by default) -->
75
+<div id="MSearchResultsWindow">
76
+<iframe src="javascript:void(0)" frameborder="0" 
77
+        name="MSearchResults" id="MSearchResults">
78
+</iframe>
79
+</div>
80
+
81
+</div><!-- top -->
82
+<div class="header">
83
+  <div class="headertitle">
84
+<div class="title">mainwindow.cpp File Reference</div>  </div>
85
+</div><!--header-->
86
+<div class="contents">
87
+<div class="textblock"><code>#include &quot;mainwindow.h&quot;</code><br />
88
+<code>#include &quot;ui_mainwindow.h&quot;</code><br />
89
+<code>#include &quot;<a class="el" href="audiomanip_8h_source.html">audiomanip.h</a>&quot;</code><br />
90
+</div></div><!-- contents -->
91
+<!-- start footer part -->
92
+<hr class="footer"/><address class="footer"><small>
93
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
94
+<img class="footer" src="doxygen.png" alt="doxygen"/>
95
+</a> 1.8.9.1
96
+</small></address>
97
+</body>
98
+</html>

+ 165
- 0
doc/en/html/mainwindow_8h_source.html Datei anzeigen

@@ -0,0 +1,165 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+<meta name="generator" content="Doxygen 1.8.9.1"/>
7
+<title>My Project: mainwindow.h Source File</title>
8
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
+<script type="text/javascript" src="jquery.js"></script>
10
+<script type="text/javascript" src="dynsections.js"></script>
11
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
12
+<script type="text/javascript" src="search/searchdata.js"></script>
13
+<script type="text/javascript" src="search/search.js"></script>
14
+<script type="text/javascript">
15
+  $(document).ready(function() { init_search(); });
16
+</script>
17
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
18
+</head>
19
+<body>
20
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
+<div id="titlearea">
22
+<table cellspacing="0" cellpadding="0">
23
+ <tbody>
24
+ <tr style="height: 56px;">
25
+  <td style="padding-left: 0.5em;">
26
+   <div id="projectname">My Project
27
+   </div>
28
+  </td>
29
+ </tr>
30
+ </tbody>
31
+</table>
32
+</div>
33
+<!-- end header part -->
34
+<!-- Generated by Doxygen 1.8.9.1 -->
35
+<script type="text/javascript">
36
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
37
+</script>
38
+  <div id="navrow1" class="tabs">
39
+    <ul class="tablist">
40
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
41
+      <li><a href="annotated.html"><span>Classes</span></a></li>
42
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
43
+      <li>
44
+        <div id="MSearchBox" class="MSearchBoxInactive">
45
+        <span class="left">
46
+          <img id="MSearchSelect" src="search/mag_sel.png"
47
+               onmouseover="return searchBox.OnSearchSelectShow()"
48
+               onmouseout="return searchBox.OnSearchSelectHide()"
49
+               alt=""/>
50
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
51
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
52
+               onblur="searchBox.OnSearchFieldFocus(false)" 
53
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
54
+          </span><span class="right">
55
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56
+          </span>
57
+        </div>
58
+      </li>
59
+    </ul>
60
+  </div>
61
+  <div id="navrow2" class="tabs2">
62
+    <ul class="tablist">
63
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
64
+      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
65
+    </ul>
66
+  </div>
67
+</div><!-- top -->
68
+<!-- window showing the filter options -->
69
+<div id="MSearchSelectWindow"
70
+     onmouseover="return searchBox.OnSearchSelectShow()"
71
+     onmouseout="return searchBox.OnSearchSelectHide()"
72
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
73
+</div>
74
+
75
+<!-- iframe showing the search results (closed by default) -->
76
+<div id="MSearchResultsWindow">
77
+<iframe src="javascript:void(0)" frameborder="0" 
78
+        name="MSearchResults" id="MSearchResults">
79
+</iframe>
80
+</div>
81
+
82
+<div class="header">
83
+  <div class="headertitle">
84
+<div class="title">mainwindow.h</div>  </div>
85
+</div><!--header-->
86
+<div class="contents">
87
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef MAINWINDOW_H</span></div>
88
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define MAINWINDOW_H</span></div>
89
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;</div>
90
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;QMainWindow&gt;</span></div>
91
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;QFileDialog&gt;</span></div>
92
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &lt;QtMultimedia/QMediaPlayer&gt;</span></div>
93
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;QMessageBox&gt;</span></div>
94
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;wavesound.h&quot;</span></div>
95
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div>
96
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_ui.html">Ui</a> {</div>
97
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">class </span><a class="code" href="class_main_window.html">MainWindow</a>;</div>
98
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;}</div>
99
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div>
100
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="class_main_window.html">   14</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_main_window.html">MainWindow</a> : <span class="keyword">public</span> QMainWindow</div>
101
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;{</div>
102
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    Q_OBJECT</div>
103
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="keyword">private</span>:</div>
104
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <a class="code" href="class_wave_sound.html">WaveSound</a> ws;</div>
105
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    QAudioBuffer::S16S *Frames;</div>
106
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    QMediaPlayer *MediaPlayer;</div>
107
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    QString AudioInFile;</div>
108
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    QString AudioOutFile;</div>
109
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div>
110
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">public</span>:</div>
111
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="class_main_window.html#a8b244be8b7b7db1b08de2a2acb9409db">MainWindow</a>(QWidget *parent = 0);</div>
112
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <a class="code" href="class_main_window.html#ae98d00a93bc118200eeef9f9bba1dba7">~MainWindow</a>();</div>
113
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div>
114
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">private</span> slots:</div>
115
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div>
116
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keywordtype">void</span> on_actionExit_triggered();</div>
117
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div>
118
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keywordtype">void</span> on_actionAbout_triggered();</div>
119
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
120
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keywordtype">void</span> on_Filter_Box_currentIndexChanged(<span class="keywordtype">int</span> index);</div>
121
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div>
122
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <span class="keywordtype">void</span> on_Play_Audio_In_clicked();</div>
123
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div>
124
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="keywordtype">void</span> on_Play_Audio_Out_clicked();</div>
125
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div>
126
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="keywordtype">void</span> on_Search_Audio_In_clicked();</div>
127
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div>
128
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordtype">void</span> on_Search_Audio_Out_clicked();</div>
129
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div>
130
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="keywordtype">void</span> on_Stop_Audio_In_clicked();</div>
131
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div>
132
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keywordtype">void</span> on_Stop_Audio_Out_clicked();</div>
133
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div>
134
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="keywordtype">void</span> on_run_filter_clicked();</div>
135
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div>
136
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keywordtype">void</span> on_Action_Output_Audio_File_triggered();</div>
137
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div>
138
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordtype">void</span> on_Audio_Out_currentIndexChanged(<span class="keyword">const</span> QString &amp;arg1);</div>
139
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div>
140
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="keywordtype">void</span> on_Action_Input_Audio_File_triggered();</div>
141
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div>
142
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordtype">void</span> on_Audio_In_currentIndexChanged(<span class="keyword">const</span> QString &amp;arg1);</div>
143
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div>
144
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keyword">private</span>:</div>
145
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keywordtype">void</span> setFilesAndButtonStatus(<span class="keyword">const</span> QString &amp;fileName);</div>
146
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div>
147
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    Ui::MainWindow *ui;</div>
148
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div>
149
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;};</div>
150
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div>
151
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#endif //MAINWINDOW_H</span></div>
152
+<div class="ttc" id="namespace_ui_html"><div class="ttname"><a href="namespace_ui.html">Ui</a></div><div class="ttdef"><b>Definition:</b> mainwindow.h:10</div></div>
153
+<div class="ttc" id="class_main_window_html_ae98d00a93bc118200eeef9f9bba1dba7"><div class="ttname"><a href="class_main_window.html#ae98d00a93bc118200eeef9f9bba1dba7">MainWindow::~MainWindow</a></div><div class="ttdeci">~MainWindow()</div><div class="ttdoc">GUI Destructor. </div><div class="ttdef"><b>Definition:</b> mainwindow.cpp:25</div></div>
154
+<div class="ttc" id="class_main_window_html_a8b244be8b7b7db1b08de2a2acb9409db"><div class="ttname"><a href="class_main_window.html#a8b244be8b7b7db1b08de2a2acb9409db">MainWindow::MainWindow</a></div><div class="ttdeci">MainWindow(QWidget *parent=0)</div><div class="ttdoc">GUI Constructor. </div><div class="ttdef"><b>Definition:</b> mainwindow.cpp:12</div></div>
155
+<div class="ttc" id="class_main_window_html"><div class="ttname"><a href="class_main_window.html">MainWindow</a></div><div class="ttdef"><b>Definition:</b> mainwindow.h:14</div></div>
156
+<div class="ttc" id="class_wave_sound_html"><div class="ttname"><a href="class_wave_sound.html">WaveSound</a></div><div class="ttdef"><b>Definition:</b> wavesound.h:12</div></div>
157
+</div><!-- fragment --></div><!-- contents -->
158
+<!-- start footer part -->
159
+<hr class="footer"/><address class="footer"><small>
160
+Generated on Wed Jun 3 2015 09:11:49 for My Project by &#160;<a href="http://www.doxygen.org/index.html">
161
+<img class="footer" src="doxygen.png" alt="doxygen"/>
162
+</a> 1.8.9.1
163
+</small></address>
164
+</body>
165
+</html>

BIN
doc/en/html/nav_f.png Datei anzeigen


BIN
doc/en/html/nav_g.png Datei anzeigen


BIN
doc/en/html/nav_h.png Datei anzeigen


BIN
doc/en/html/open.png Datei anzeigen


+ 26
- 0
doc/en/html/search/all_0.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="all_0.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 8
- 0
doc/en/html/search/all_0.js Datei anzeigen

@@ -0,0 +1,8 @@
1
+var searchData=
2
+[
3
+  ['audiobuffer',['AudioBuffer',['../audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d',1,'audiomanip.h']]],
4
+  ['audiofadein',['AudioFadeIn',['../audiomanip_8cpp.html#a88857e657ef3840063e4ea5e9e898dba',1,'AudioFadeIn(AudioBuffer frames[], int N, int fade_length):&#160;audiomanip.cpp'],['../audiomanip_8h.html#a88857e657ef3840063e4ea5e9e898dba',1,'AudioFadeIn(AudioBuffer frames[], int N, int fade_length):&#160;audiomanip.cpp']]],
5
+  ['audiofadeout',['AudioFadeOut',['../audiomanip_8cpp.html#a980252d21947f1aa1bd45d1ba3938121',1,'AudioFadeOut(AudioBuffer frames[], int N, int fade_length):&#160;audiomanip.cpp'],['../audiomanip_8h.html#a980252d21947f1aa1bd45d1ba3938121',1,'AudioFadeOut(AudioBuffer frames[], int N, int fade_length):&#160;audiomanip.cpp']]],
6
+  ['audiomanip_2ecpp',['audiomanip.cpp',['../audiomanip_8cpp.html',1,'']]],
7
+  ['audiomanip_2eh',['audiomanip.h',['../audiomanip_8h.html',1,'']]]
8
+];

+ 26
- 0
doc/en/html/search/all_1.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="all_1.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 4
- 0
doc/en/html/search/all_1.js Datei anzeigen

@@ -0,0 +1,4 @@
1
+var searchData=
2
+[
3
+  ['lefttoright',['LeftToRight',['../audiomanip_8cpp.html#acdb38ec71647d81c81eeadf210a7800c',1,'LeftToRight(AudioBuffer frames[], int N, int pan_length):&#160;audiomanip.cpp'],['../audiomanip_8h.html#acdb38ec71647d81c81eeadf210a7800c',1,'LeftToRight(AudioBuffer frames[], int N, int pan_length):&#160;audiomanip.cpp']]]
4
+];

+ 26
- 0
doc/en/html/search/all_2.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="all_2.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 5
- 0
doc/en/html/search/all_2.js Datei anzeigen

@@ -0,0 +1,5 @@
1
+var searchData=
2
+[
3
+  ['mainwindow',['MainWindow',['../class_main_window.html',1,'MainWindow'],['../class_main_window.html#a8b244be8b7b7db1b08de2a2acb9409db',1,'MainWindow::MainWindow()']]],
4
+  ['mainwindow_2ecpp',['mainwindow.cpp',['../mainwindow_8cpp.html',1,'']]]
5
+];

+ 26
- 0
doc/en/html/search/all_3.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="all_3.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 4
- 0
doc/en/html/search/all_3.js Datei anzeigen

@@ -0,0 +1,4 @@
1
+var searchData=
2
+[
3
+  ['removevocals',['RemoveVocals',['../audiomanip_8cpp.html#a3cd69c0b889169ee6625239ca35e9538',1,'RemoveVocals(AudioBuffer frames[], int N):&#160;audiomanip.cpp'],['../audiomanip_8h.html#a3cd69c0b889169ee6625239ca35e9538',1,'RemoveVocals(AudioBuffer frames[], int N):&#160;audiomanip.cpp']]]
4
+];

+ 26
- 0
doc/en/html/search/all_4.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="all_4.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 4
- 0
doc/en/html/search/all_4.js Datei anzeigen

@@ -0,0 +1,4 @@
1
+var searchData=
2
+[
3
+  ['wavesound',['WaveSound',['../class_wave_sound.html',1,'']]]
4
+];

+ 26
- 0
doc/en/html/search/all_5.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="all_5.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 4
- 0
doc/en/html/search/all_5.js Datei anzeigen

@@ -0,0 +1,4 @@
1
+var searchData=
2
+[
3
+  ['_7emainwindow',['~MainWindow',['../class_main_window.html#ae98d00a93bc118200eeef9f9bba1dba7',1,'MainWindow']]]
4
+];

+ 26
- 0
doc/en/html/search/classes_0.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="classes_0.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 4
- 0
doc/en/html/search/classes_0.js Datei anzeigen

@@ -0,0 +1,4 @@
1
+var searchData=
2
+[
3
+  ['mainwindow',['MainWindow',['../class_main_window.html',1,'']]]
4
+];

+ 26
- 0
doc/en/html/search/classes_1.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="classes_1.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 4
- 0
doc/en/html/search/classes_1.js Datei anzeigen

@@ -0,0 +1,4 @@
1
+var searchData=
2
+[
3
+  ['wavesound',['WaveSound',['../class_wave_sound.html',1,'']]]
4
+];

BIN
doc/en/html/search/close.png Datei anzeigen


+ 26
- 0
doc/en/html/search/defines_0.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="defines_0.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 4
- 0
doc/en/html/search/defines_0.js Datei anzeigen

@@ -0,0 +1,4 @@
1
+var searchData=
2
+[
3
+  ['audiobuffer',['AudioBuffer',['../audiomanip_8h.html#a03d94cc61b0c5794b5aeb0e8390e7e0d',1,'audiomanip.h']]]
4
+];

+ 26
- 0
doc/en/html/search/files_0.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="files_0.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 5
- 0
doc/en/html/search/files_0.js Datei anzeigen

@@ -0,0 +1,5 @@
1
+var searchData=
2
+[
3
+  ['audiomanip_2ecpp',['audiomanip.cpp',['../audiomanip_8cpp.html',1,'']]],
4
+  ['audiomanip_2eh',['audiomanip.h',['../audiomanip_8h.html',1,'']]]
5
+];

+ 26
- 0
doc/en/html/search/files_1.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="files_1.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 4
- 0
doc/en/html/search/files_1.js Datei anzeigen

@@ -0,0 +1,4 @@
1
+var searchData=
2
+[
3
+  ['mainwindow_2ecpp',['mainwindow.cpp',['../mainwindow_8cpp.html',1,'']]]
4
+];

+ 26
- 0
doc/en/html/search/functions_0.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="functions_0.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 5
- 0
doc/en/html/search/functions_0.js Datei anzeigen

@@ -0,0 +1,5 @@
1
+var searchData=
2
+[
3
+  ['audiofadein',['AudioFadeIn',['../audiomanip_8cpp.html#a88857e657ef3840063e4ea5e9e898dba',1,'AudioFadeIn(AudioBuffer frames[], int N, int fade_length):&#160;audiomanip.cpp'],['../audiomanip_8h.html#a88857e657ef3840063e4ea5e9e898dba',1,'AudioFadeIn(AudioBuffer frames[], int N, int fade_length):&#160;audiomanip.cpp']]],
4
+  ['audiofadeout',['AudioFadeOut',['../audiomanip_8cpp.html#a980252d21947f1aa1bd45d1ba3938121',1,'AudioFadeOut(AudioBuffer frames[], int N, int fade_length):&#160;audiomanip.cpp'],['../audiomanip_8h.html#a980252d21947f1aa1bd45d1ba3938121',1,'AudioFadeOut(AudioBuffer frames[], int N, int fade_length):&#160;audiomanip.cpp']]]
5
+];

+ 26
- 0
doc/en/html/search/functions_1.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="functions_1.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 4
- 0
doc/en/html/search/functions_1.js Datei anzeigen

@@ -0,0 +1,4 @@
1
+var searchData=
2
+[
3
+  ['lefttoright',['LeftToRight',['../audiomanip_8cpp.html#acdb38ec71647d81c81eeadf210a7800c',1,'LeftToRight(AudioBuffer frames[], int N, int pan_length):&#160;audiomanip.cpp'],['../audiomanip_8h.html#acdb38ec71647d81c81eeadf210a7800c',1,'LeftToRight(AudioBuffer frames[], int N, int pan_length):&#160;audiomanip.cpp']]]
4
+];

+ 26
- 0
doc/en/html/search/functions_2.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="functions_2.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 4
- 0
doc/en/html/search/functions_2.js Datei anzeigen

@@ -0,0 +1,4 @@
1
+var searchData=
2
+[
3
+  ['mainwindow',['MainWindow',['../class_main_window.html#a8b244be8b7b7db1b08de2a2acb9409db',1,'MainWindow']]]
4
+];

+ 26
- 0
doc/en/html/search/functions_3.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="functions_3.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 4
- 0
doc/en/html/search/functions_3.js Datei anzeigen

@@ -0,0 +1,4 @@
1
+var searchData=
2
+[
3
+  ['removevocals',['RemoveVocals',['../audiomanip_8cpp.html#a3cd69c0b889169ee6625239ca35e9538',1,'RemoveVocals(AudioBuffer frames[], int N):&#160;audiomanip.cpp'],['../audiomanip_8h.html#a3cd69c0b889169ee6625239ca35e9538',1,'RemoveVocals(AudioBuffer frames[], int N):&#160;audiomanip.cpp']]]
4
+];

+ 26
- 0
doc/en/html/search/functions_4.html Datei anzeigen

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<meta name="generator" content="Doxygen 1.8.9.1"/>
5
+<link rel="stylesheet" type="text/css" href="search.css"/>
6
+<script type="text/javascript" src="functions_4.js"></script>
7
+<script type="text/javascript" src="search.js"></script>
8
+</head>
9
+<body class="SRPage">
10
+<div id="SRIndex">
11
+<div class="SRStatus" id="Loading">Loading...</div>
12
+<div id="SRResults"></div>
13
+<script type="text/javascript"><!--
14
+createResults();
15
+--></script>
16
+<div class="SRStatus" id="Searching">Searching...</div>
17
+<div class="SRStatus" id="NoMatches">No Matches</div>
18
+<script type="text/javascript"><!--
19
+document.getElementById("Loading").style.display="none";
20
+document.getElementById("NoMatches").style.display="none";
21
+var searchResults = new SearchResults("searchResults");
22
+searchResults.Search();
23
+--></script>
24
+</div>
25
+</body>
26
+</html>

+ 4
- 0
doc/en/html/search/functions_4.js Datei anzeigen

@@ -0,0 +1,4 @@
1
+var searchData=
2
+[
3
+  ['_7emainwindow',['~MainWindow',['../class_main_window.html#ae98d00a93bc118200eeef9f9bba1dba7',1,'MainWindow']]]
4
+];

BIN
doc/en/html/search/mag_sel.png Datei anzeigen


+ 12
- 0
doc/en/html/search/nomatches.html Datei anzeigen

@@ -0,0 +1,12 @@
1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+<html><head><title></title>
3
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4
+<link rel="stylesheet" type="text/css" href="search.css"/>
5
+<script type="text/javascript" src="search.js"></script>
6
+</head>
7
+<body class="SRPage">
8
+<div id="SRIndex">
9
+<div class="SRStatus" id="NoMatches">No Matches</div>
10
+</div>
11
+</body>
12
+</html>

+ 271
- 0
doc/en/html/search/search.css Datei anzeigen

@@ -0,0 +1,271 @@
1
+/*---------------- Search Box */
2
+
3
+#FSearchBox {
4
+    float: left;
5
+}
6
+
7
+#MSearchBox {
8
+    white-space : nowrap;
9
+    position: absolute;
10
+    float: none;
11
+    display: inline;
12
+    margin-top: 8px;
13
+    right: 0px;
14
+    width: 170px;
15
+    z-index: 102;
16
+    background-color: white;
17
+}
18
+
19
+#MSearchBox .left
20
+{
21
+    display:block;
22
+    position:absolute;
23
+    left:10px;
24
+    width:20px;
25
+    height:19px;
26
+    background:url('search_l.png') no-repeat;
27
+    background-position:right;
28
+}
29
+
30
+#MSearchSelect {
31
+    display:block;
32
+    position:absolute;
33
+    width:20px;
34
+    height:19px;
35
+}
36
+
37
+.left #MSearchSelect {
38
+    left:4px;
39
+}
40
+
41
+.right #MSearchSelect {
42
+    right:5px;
43
+}
44
+
45
+#MSearchField {
46
+    display:block;
47
+    position:absolute;
48
+    height:19px;
49
+    background:url('search_m.png') repeat-x;
50
+    border:none;
51
+    width:111px;
52
+    margin-left:20px;
53
+    padding-left:4px;
54
+    color: #909090;
55
+    outline: none;
56
+    font: 9pt Arial, Verdana, sans-serif;
57
+}
58
+
59
+#FSearchBox #MSearchField {
60
+    margin-left:15px;
61
+}
62
+
63
+#MSearchBox .right {
64
+    display:block;
65
+    position:absolute;
66
+    right:10px;
67
+    top:0px;
68
+    width:20px;
69
+    height:19px;
70
+    background:url('search_r.png') no-repeat;
71
+    background-position:left;
72
+}
73
+
74
+#MSearchClose {
75
+    display: none;
76
+    position: absolute;
77
+    top: 4px;
78
+    background : none;
79
+    border: none;
80
+    margin: 0px 4px 0px 0px;
81
+    padding: 0px 0px;
82
+    outline: none;
83
+}
84
+
85
+.left #MSearchClose {
86
+    left: 6px;
87
+}
88
+
89
+.right #MSearchClose {
90
+    right: 2px;
91
+}
92
+
93
+.MSearchBoxActive #MSearchField {
94
+    color: #000000;
95
+}
96
+
97
+/*---------------- Search filter selection */
98
+
99
+#MSearchSelectWindow {
100
+    display: none;
101
+    position: absolute;
102
+    left: 0; top: 0;
103
+    border: 1px solid #90A5CE;
104
+    background-color: #F9FAFC;
105
+    z-index: 1;
106
+    padding-top: 4px;
107
+    padding-bottom: 4px;
108
+    -moz-border-radius: 4px;
109
+    -webkit-border-top-left-radius: 4px;
110
+    -webkit-border-top-right-radius: 4px;
111
+    -webkit-border-bottom-left-radius: 4px;
112
+    -webkit-border-bottom-right-radius: 4px;
113
+    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
114
+}
115
+
116
+.SelectItem {
117
+    font: 8pt Arial, Verdana, sans-serif;
118
+    padding-left:  2px;
119
+    padding-right: 12px;
120
+    border: 0px;
121
+}
122
+
123
+span.SelectionMark {
124
+    margin-right: 4px;
125
+    font-family: monospace;
126
+    outline-style: none;
127
+    text-decoration: none;
128
+}
129
+
130
+a.SelectItem {
131
+    display: block;
132
+    outline-style: none;
133
+    color: #000000; 
134
+    text-decoration: none;
135
+    padding-left:   6px;
136
+    padding-right: 12px;
137
+}
138
+
139
+a.SelectItem:focus,
140
+a.SelectItem:active {
141
+    color: #000000; 
142
+    outline-style: none;
143
+    text-decoration: none;
144
+}
145
+
146
+a.SelectItem:hover {
147
+    color: #FFFFFF;
148
+    background-color: #3D578C;
149
+    outline-style: none;
150
+    text-decoration: none;
151
+    cursor: pointer;
152
+    display: block;
153
+}
154
+
155
+/*---------------- Search results window */
156
+
157
+iframe#MSearchResults {
158
+    width: 60ex;
159
+    height: 15em;
160
+}
161
+
162
+#MSearchResultsWindow {
163
+    display: none;
164
+    position: absolute;
165
+    left: 0; top: 0;
166
+    border: 1px solid #000;
167
+    background-color: #EEF1F7;
168
+}
169
+
170
+/* ----------------------------------- */
171
+
172
+
173
+#SRIndex {
174
+    clear:both; 
175
+    padding-bottom: 15px;
176
+}
177
+
178
+.SREntry {
179
+    font-size: 10pt;
180
+    padding-left: 1ex;
181
+}
182
+
183
+.SRPage .SREntry {
184
+    font-size: 8pt;
185
+    padding: 1px 5px;
186
+}
187
+
188
+body.SRPage {
189
+    margin: 5px 2px;
190
+}
191
+
192
+.SRChildren {
193
+    padding-left: 3ex; padding-bottom: .5em 
194
+}
195
+
196
+.SRPage .SRChildren {
197
+    display: none;
198
+}
199
+
200
+.SRSymbol {
201
+    font-weight: bold; 
202
+    color: #425E97;
203
+    font-family: Arial, Verdana, sans-serif;
204
+    text-decoration: none;
205
+    outline: none;
206
+}
207
+
208
+a.SRScope {
209
+    display: block;
210
+    color: #425E97; 
211
+    font-family: Arial, Verdana, sans-serif;
212
+    text-decoration: none;
213
+    outline: none;
214
+}
215
+
216
+a.SRSymbol:focus, a.SRSymbol:active,
217
+a.SRScope:focus, a.SRScope:active {
218
+    text-decoration: underline;
219
+}
220
+
221
+span.SRScope {
222
+    padding-left: 4px;
223
+}
224
+
225
+.SRPage .SRStatus {
226
+    padding: 2px 5px;
227
+    font-size: 8pt;
228
+    font-style: italic;
229
+}
230
+
231
+.SRResult {
232
+    display: none;
233
+}
234
+
235
+DIV.searchresults {
236
+    margin-left: 10px;
237
+    margin-right: 10px;
238
+}
239
+
240
+/*---------------- External search page results */
241
+
242
+.searchresult {
243
+    background-color: #F0F3F8;
244
+}
245
+
246
+.pages b {
247
+   color: white;
248
+   padding: 5px 5px 3px 5px;
249
+   background-image: url("../tab_a.png");
250
+   background-repeat: repeat-x;
251
+   text-shadow: 0 1px 1px #000000;
252
+}
253
+
254
+.pages {
255
+    line-height: 17px;
256
+    margin-left: 4px;
257
+    text-decoration: none;
258
+}
259
+
260
+.hl {
261
+    font-weight: bold;
262
+}
263
+
264
+#searchresults {
265
+    margin-bottom: 20px;
266
+}
267
+
268
+.searchpages {
269
+    margin-top: 10px;
270
+}
271
+

+ 791
- 0
doc/en/html/search/search.js Datei anzeigen

@@ -0,0 +1,791 @@
1
+function convertToId(search)
2
+{
3
+  var result = '';
4
+  for (i=0;i<search.length;i++)
5
+  {
6
+    var c = search.charAt(i);
7
+    var cn = c.charCodeAt(0);
8
+    if (c.match(/[a-z0-9\u0080-\uFFFF]/))
9
+    {
10
+      result+=c;
11
+    }
12
+    else if (cn<16)
13
+    {
14
+      result+="_0"+cn.toString(16);
15
+    }
16
+    else
17
+    {
18
+      result+="_"+cn.toString(16);
19
+    }
20
+  }
21
+  return result;
22
+}
23
+
24
+function getXPos(item)
25
+{
26
+  var x = 0;
27
+  if (item.offsetWidth)
28
+  {
29
+    while (item && item!=document.body)
30
+    {
31
+      x   += item.offsetLeft;
32
+      item = item.offsetParent;
33
+    }
34
+  }
35
+  return x;
36
+}
37
+
38
+function getYPos(item)
39
+{
40
+  var y = 0;
41
+  if (item.offsetWidth)
42
+  {
43
+     while (item && item!=document.body)
44
+     {
45
+       y   += item.offsetTop;
46
+       item = item.offsetParent;
47
+     }
48
+  }
49
+  return y;
50
+}
51
+
52
+/* A class handling everything associated with the search panel.
53
+
54
+   Parameters:
55
+   name - The name of the global variable that will be
56
+          storing this instance.  Is needed to be able to set timeouts.
57
+   resultPath - path to use for external files
58
+*/
59
+function SearchBox(name, resultsPath, inFrame, label)
60
+{
61
+  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
62
+
63
+  // ---------- Instance variables
64
+  this.name                  = name;
65
+  this.resultsPath           = resultsPath;
66
+  this.keyTimeout            = 0;
67
+  this.keyTimeoutLength      = 500;
68
+  this.closeSelectionTimeout = 300;
69
+  this.lastSearchValue       = "";
70
+  this.lastResultsPage       = "";
71
+  this.hideTimeout           = 0;
72
+  this.searchIndex           = 0;
73
+  this.searchActive          = false;
74
+  this.insideFrame           = inFrame;
75
+  this.searchLabel           = label;
76
+
77
+  // ----------- DOM Elements
78
+
79
+  this.DOMSearchField = function()
80
+  {  return document.getElementById("MSearchField");  }
81
+
82
+  this.DOMSearchSelect = function()
83
+  {  return document.getElementById("MSearchSelect");  }
84
+
85
+  this.DOMSearchSelectWindow = function()
86
+  {  return document.getElementById("MSearchSelectWindow");  }
87
+
88
+  this.DOMPopupSearchResults = function()
89
+  {  return document.getElementById("MSearchResults");  }
90
+
91
+  this.DOMPopupSearchResultsWindow = function()
92
+  {  return document.getElementById("MSearchResultsWindow");  }
93
+
94
+  this.DOMSearchClose = function()
95
+  {  return document.getElementById("MSearchClose"); }
96
+
97
+  this.DOMSearchBox = function()
98
+  {  return document.getElementById("MSearchBox");  }
99
+
100
+  // ------------ Event Handlers
101
+
102
+  // Called when focus is added or removed from the search field.
103
+  this.OnSearchFieldFocus = function(isActive)
104
+  {
105
+    this.Activate(isActive);
106
+  }
107
+
108
+  this.OnSearchSelectShow = function()
109
+  {
110
+    var searchSelectWindow = this.DOMSearchSelectWindow();
111
+    var searchField        = this.DOMSearchSelect();
112
+
113
+    if (this.insideFrame)
114
+    {
115
+      var left = getXPos(searchField);
116
+      var top  = getYPos(searchField);
117
+      left += searchField.offsetWidth + 6;
118
+      top += searchField.offsetHeight;
119
+
120
+      // show search selection popup
121
+      searchSelectWindow.style.display='block';
122
+      left -= searchSelectWindow.offsetWidth;
123
+      searchSelectWindow.style.left =  left + 'px';
124
+      searchSelectWindow.style.top  =  top  + 'px';
125
+    }
126
+    else
127
+    {
128
+      var left = getXPos(searchField);
129
+      var top  = getYPos(searchField);
130
+      top += searchField.offsetHeight;
131
+
132
+      // show search selection popup
133
+      searchSelectWindow.style.display='block';
134
+      searchSelectWindow.style.left =  left + 'px';
135
+      searchSelectWindow.style.top  =  top  + 'px';
136
+    }
137
+
138
+    // stop selection hide timer
139
+    if (this.hideTimeout)
140
+    {
141
+      clearTimeout(this.hideTimeout);
142
+      this.hideTimeout=0;
143
+    }
144
+    return false; // to avoid "image drag" default event
145
+  }
146
+
147
+  this.OnSearchSelectHide = function()
148
+  {
149
+    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
150
+                                  this.closeSelectionTimeout);
151
+  }
152
+
153
+  // Called when the content of the search field is changed.
154
+  this.OnSearchFieldChange = function(evt)
155
+  {
156
+    if (this.keyTimeout) // kill running timer
157
+    {
158
+      clearTimeout(this.keyTimeout);
159
+      this.keyTimeout = 0;
160
+    }
161
+
162
+    var e  = (evt) ? evt : window.event; // for IE
163
+    if (e.keyCode==40 || e.keyCode==13)
164
+    {
165
+      if (e.shiftKey==1)
166
+      {
167
+        this.OnSearchSelectShow();
168
+        var win=this.DOMSearchSelectWindow();
169
+        for (i=0;i<win.childNodes.length;i++)
170
+        {
171
+          var child = win.childNodes[i]; // get span within a
172
+          if (child.className=='SelectItem')
173
+          {
174
+            child.focus();
175
+            return;
176
+          }
177
+        }
178
+        return;
179
+      }
180
+      else if (window.frames.MSearchResults.searchResults)
181
+      {
182
+        var elem = window.frames.MSearchResults.searchResults.NavNext(0);
183
+        if (elem) elem.focus();
184
+      }
185
+    }
186
+    else if (e.keyCode==27) // Escape out of the search field
187
+    {
188
+      this.DOMSearchField().blur();
189
+      this.DOMPopupSearchResultsWindow().style.display = 'none';
190
+      this.DOMSearchClose().style.display = 'none';
191
+      this.lastSearchValue = '';
192
+      this.Activate(false);
193
+      return;
194
+    }
195
+
196
+    // strip whitespaces
197
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
198
+
199
+    if (searchValue != this.lastSearchValue) // search value has changed
200
+    {
201
+      if (searchValue != "") // non-empty search
202
+      {
203
+        // set timer for search update
204
+        this.keyTimeout = setTimeout(this.name + '.Search()',
205
+                                     this.keyTimeoutLength);
206
+      }
207
+      else // empty search field
208
+      {
209
+        this.DOMPopupSearchResultsWindow().style.display = 'none';
210
+        this.DOMSearchClose().style.display = 'none';
211
+        this.lastSearchValue = '';
212
+      }
213
+    }
214
+  }
215
+
216
+  this.SelectItemCount = function(id)
217
+  {
218
+    var count=0;
219
+    var win=this.DOMSearchSelectWindow();
220
+    for (i=0;i<win.childNodes.length;i++)
221
+    {
222
+      var child = win.childNodes[i]; // get span within a
223
+      if (child.className=='SelectItem')
224
+      {
225
+        count++;
226
+      }
227
+    }
228
+    return count;
229
+  }
230
+
231
+  this.SelectItemSet = function(id)
232
+  {
233
+    var i,j=0;
234
+    var win=this.DOMSearchSelectWindow();
235
+    for (i=0;i<win.childNodes.length;i++)
236
+    {
237
+      var child = win.childNodes[i]; // get span within a
238
+      if (child.className=='SelectItem')
239
+      {
240
+        var node = child.firstChild;
241
+        if (j==id)
242
+        {
243
+          node.innerHTML='&#8226;';
244
+        }
245
+        else
246
+        {
247
+          node.innerHTML='&#160;';
248
+        }
249
+        j++;
250
+      }
251
+    }
252
+  }
253
+
254
+  // Called when an search filter selection is made.
255
+  // set item with index id as the active item
256
+  this.OnSelectItem = function(id)
257
+  {
258
+    this.searchIndex = id;
259
+    this.SelectItemSet(id);
260
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
261
+    if (searchValue!="" && this.searchActive) // something was found -> do a search
262
+    {
263
+      this.Search();
264
+    }
265
+  }
266
+
267
+  this.OnSearchSelectKey = function(evt)
268
+  {
269
+    var e = (evt) ? evt : window.event; // for IE
270
+    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
271
+    {
272
+      this.searchIndex++;
273
+      this.OnSelectItem(this.searchIndex);
274
+    }
275
+    else if (e.keyCode==38 && this.searchIndex>0) // Up
276
+    {
277
+      this.searchIndex--;
278
+      this.OnSelectItem(this.searchIndex);
279
+    }
280
+    else if (e.keyCode==13 || e.keyCode==27)
281
+    {
282
+      this.OnSelectItem(this.searchIndex);
283
+      this.CloseSelectionWindow();
284
+      this.DOMSearchField().focus();
285
+    }
286
+    return false;
287
+  }
288
+
289
+  // --------- Actions
290
+
291
+  // Closes the results window.
292
+  this.CloseResultsWindow = function()
293
+  {
294
+    this.DOMPopupSearchResultsWindow().style.display = 'none';
295
+    this.DOMSearchClose().style.display = 'none';
296
+    this.Activate(false);
297
+  }
298
+
299
+  this.CloseSelectionWindow = function()
300
+  {
301
+    this.DOMSearchSelectWindow().style.display = 'none';
302
+  }
303
+
304
+  // Performs a search.
305
+  this.Search = function()
306
+  {
307
+    this.keyTimeout = 0;
308
+
309
+    // strip leading whitespace
310
+    var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
311
+
312
+    var code = searchValue.toLowerCase().charCodeAt(0);
313
+    var idxChar = searchValue.substr(0, 1).toLowerCase();
314
+    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
315
+    {
316
+      idxChar = searchValue.substr(0, 2);
317
+    }
318
+
319
+    var resultsPage;
320
+    var resultsPageWithSearch;
321
+    var hasResultsPage;
322
+
323
+    var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
324
+    if (idx!=-1)
325
+    {
326
+       var hexCode=idx.toString(16);
327
+       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
328
+       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
329
+       hasResultsPage = true;
330
+    }
331
+    else // nothing available for this search term
332
+    {
333
+       resultsPage = this.resultsPath + '/nomatches.html';
334
+       resultsPageWithSearch = resultsPage;
335
+       hasResultsPage = false;
336
+    }
337
+
338
+    window.frames.MSearchResults.location = resultsPageWithSearch;
339
+    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
340
+
341
+    if (domPopupSearchResultsWindow.style.display!='block')
342
+    {
343
+       var domSearchBox = this.DOMSearchBox();
344
+       this.DOMSearchClose().style.display = 'inline';
345
+       if (this.insideFrame)
346
+       {
347
+         var domPopupSearchResults = this.DOMPopupSearchResults();
348
+         domPopupSearchResultsWindow.style.position = 'relative';
349
+         domPopupSearchResultsWindow.style.display  = 'block';
350
+         var width = document.body.clientWidth - 8; // the -8 is for IE :-(
351
+         domPopupSearchResultsWindow.style.width    = width + 'px';
352
+         domPopupSearchResults.style.width          = width + 'px';
353
+       }
354
+       else
355
+       {
356
+         var domPopupSearchResults = this.DOMPopupSearchResults();
357
+         var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
358
+         var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
359
+         domPopupSearchResultsWindow.style.display = 'block';
360
+         left -= domPopupSearchResults.offsetWidth;
361
+         domPopupSearchResultsWindow.style.top     = top  + 'px';
362
+         domPopupSearchResultsWindow.style.left    = left + 'px';
363
+       }
364
+    }
365
+
366
+    this.lastSearchValue = searchValue;
367
+    this.lastResultsPage = resultsPage;
368
+  }
369
+
370
+  // -------- Activation Functions
371
+
372
+  // Activates or deactivates the search panel, resetting things to
373
+  // their default values if necessary.
374
+  this.Activate = function(isActive)
375
+  {
376
+    if (isActive || // open it
377
+        this.DOMPopupSearchResultsWindow().style.display == 'block'
378
+       )
379
+    {
380
+      this.DOMSearchBox().className = 'MSearchBoxActive';
381
+
382
+      var searchField = this.DOMSearchField();
383
+
384
+      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
385
+      {
386
+        searchField.value = '';
387
+        this.searchActive = true;
388
+      }
389
+    }
390
+    else if (!isActive) // directly remove the panel
391
+    {
392
+      this.DOMSearchBox().className = 'MSearchBoxInactive';
393
+      this.DOMSearchField().value   = this.searchLabel;
394
+      this.searchActive             = false;
395
+      this.lastSearchValue          = ''
396
+      this.lastResultsPage          = '';
397
+    }
398
+  }
399
+}
400
+
401
+// -----------------------------------------------------------------------
402
+
403
+// The class that handles everything on the search results page.
404
+function SearchResults(name)
405
+{
406
+    // The number of matches from the last run of <Search()>.
407
+    this.lastMatchCount = 0;
408
+    this.lastKey = 0;
409
+    this.repeatOn = false;
410
+
411
+    // Toggles the visibility of the passed element ID.
412
+    this.FindChildElement = function(id)
413
+    {
414
+      var parentElement = document.getElementById(id);
415
+      var element = parentElement.firstChild;
416
+
417
+      while (element && element!=parentElement)
418
+      {
419
+        if (element.nodeName == 'DIV' && element.className == 'SRChildren')
420
+        {
421
+          return element;
422
+        }
423
+
424
+        if (element.nodeName == 'DIV' && element.hasChildNodes())
425
+        {
426
+           element = element.firstChild;
427
+        }
428
+        else if (element.nextSibling)
429
+        {
430
+           element = element.nextSibling;
431
+        }
432
+        else
433
+        {
434
+          do
435
+          {
436
+            element = element.parentNode;
437
+          }
438
+          while (element && element!=parentElement && !element.nextSibling);
439
+
440
+          if (element && element!=parentElement)
441
+          {
442
+            element = element.nextSibling;
443
+          }
444
+        }
445
+      }
446
+    }
447
+
448
+    this.Toggle = function(id)
449
+    {
450
+      var element = this.FindChildElement(id);
451
+      if (element)
452
+      {
453
+        if (element.style.display == 'block')
454
+        {
455
+          element.style.display = 'none';
456
+        }
457
+        else
458
+        {
459
+          element.style.display = 'block';
460
+        }
461
+      }
462
+    }
463
+
464
+    // Searches for the passed string.  If there is no parameter,
465
+    // it takes it from the URL query.
466
+    //
467
+    // Always returns true, since other documents may try to call it
468
+    // and that may or may not be possible.
469
+    this.Search = function(search)
470
+    {
471
+      if (!search) // get search word from URL
472
+      {
473
+        search = window.location.search;
474
+        search = search.substring(1);  // Remove the leading '?'
475
+        search = unescape(search);
476
+      }
477
+
478
+      search = search.replace(/^ +/, ""); // strip leading spaces
479
+      search = search.replace(/ +$/, ""); // strip trailing spaces
480
+      search = search.toLowerCase();
481
+      search = convertToId(search);
482
+
483
+      var resultRows = document.getElementsByTagName("div");
484
+      var matches = 0;
485
+
486
+      var i = 0;
487
+      while (i < resultRows.length)
488
+      {
489
+        var row = resultRows.item(i);
490
+        if (row.className == "SRResult")
491
+        {
492
+          var rowMatchName = row.id.toLowerCase();
493
+          rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
494
+
495
+          if (search.length<=rowMatchName.length &&
496
+             rowMatchName.substr(0, search.length)==search)
497
+          {
498
+            row.style.display = 'block';
499
+            matches++;
500
+          }
501
+          else
502
+          {
503
+            row.style.display = 'none';
504
+          }
505
+        }
506
+        i++;
507
+      }
508
+      document.getElementById("Searching").style.display='none';
509
+      if (matches == 0) // no results
510
+      {
511
+        document.getElementById("NoMatches").style.display='block';
512
+      }
513
+      else // at least one result
514
+      {
515
+        document.getElementById("NoMatches").style.display='none';
516
+      }
517
+      this.lastMatchCount = matches;
518
+      return true;
519
+    }
520
+
521
+    // return the first item with index index or higher that is visible
522
+    this.NavNext = function(index)
523
+    {
524
+      var focusItem;
525
+      while (1)
526
+      {
527
+        var focusName = 'Item'+index;
528
+        focusItem = document.getElementById(focusName);
529
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
530
+        {
531
+          break;
532
+        }
533
+        else if (!focusItem) // last element
534
+        {
535
+          break;
536
+        }
537
+        focusItem=null;
538
+        index++;
539
+      }
540
+      return focusItem;
541
+    }
542
+
543
+    this.NavPrev = function(index)
544
+    {
545
+      var focusItem;
546
+      while (1)
547
+      {
548
+        var focusName = 'Item'+index;
549
+        focusItem = document.getElementById(focusName);
550
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
551
+        {
552
+          break;
553
+        }
554
+        else if (!focusItem) // last element
555
+        {
556
+          break;
557
+        }
558
+        focusItem=null;
559
+        index--;
560
+      }
561
+      return focusItem;
562
+    }
563
+
564
+    this.ProcessKeys = function(e)
565
+    {
566
+      if (e.type == "keydown")
567
+      {
568
+        this.repeatOn = false;
569
+        this.lastKey = e.keyCode;
570
+      }
571
+      else if (e.type == "keypress")
572
+      {
573
+        if (!this.repeatOn)
574
+        {
575
+          if (this.lastKey) this.repeatOn = true;
576
+          return false; // ignore first keypress after keydown
577
+        }
578
+      }
579
+      else if (e.type == "keyup")
580
+      {
581
+        this.lastKey = 0;
582
+        this.repeatOn = false;
583
+      }
584
+      return this.lastKey!=0;
585
+    }
586
+
587
+    this.Nav = function(evt,itemIndex)
588
+    {
589
+      var e  = (evt) ? evt : window.event; // for IE
590
+      if (e.keyCode==13) return true;
591
+      if (!this.ProcessKeys(e)) return false;
592
+
593
+      if (this.lastKey==38) // Up
594
+      {
595
+        var newIndex = itemIndex-1;
596
+        var focusItem = this.NavPrev(newIndex);
597
+        if (focusItem)
598
+        {
599
+          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
600
+          if (child && child.style.display == 'block') // children visible
601
+          {
602
+            var n=0;
603
+            var tmpElem;
604
+            while (1) // search for last child
605
+            {
606
+              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
607
+              if (tmpElem)
608
+              {
609
+                focusItem = tmpElem;
610
+              }
611
+              else // found it!
612
+              {
613
+                break;
614
+              }
615
+              n++;
616
+            }
617
+          }
618
+        }
619
+        if (focusItem)
620
+        {
621
+          focusItem.focus();
622
+        }
623
+        else // return focus to search field
624
+        {
625
+           parent.document.getElementById("MSearchField").focus();
626
+        }
627
+      }
628
+      else if (this.lastKey==40) // Down
629
+      {
630
+        var newIndex = itemIndex+1;
631
+        var focusItem;
632
+        var item = document.getElementById('Item'+itemIndex);
633
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
634
+        if (elem && elem.style.display == 'block') // children visible
635
+        {
636
+          focusItem = document.getElementById('Item'+itemIndex+'_c0');
637
+        }
638
+        if (!focusItem) focusItem = this.NavNext(newIndex);
639
+        if (focusItem)  focusItem.focus();
640
+      }
641
+      else if (this.lastKey==39) // Right
642
+      {
643
+        var item = document.getElementById('Item'+itemIndex);
644
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
645
+        if (elem) elem.style.display = 'block';
646
+      }
647
+      else if (this.lastKey==37) // Left
648
+      {
649
+        var item = document.getElementById('Item'+itemIndex);
650
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
651
+        if (elem) elem.style.display = 'none';
652
+      }
653
+      else if (this.lastKey==27) // Escape
654
+      {
655
+        parent.searchBox.CloseResultsWindow();
656
+        parent.document.getElementById("MSearchField").focus();
657
+      }
658
+      else if (this.lastKey==13) // Enter
659
+      {
660
+        return true;
661
+      }
662
+      return false;
663
+    }
664
+
665
+    this.NavChild = function(evt,itemIndex,childIndex)
666
+    {
667
+      var e  = (evt) ? evt : window.event; // for IE
668
+      if (e.keyCode==13) return true;
669
+      if (!this.ProcessKeys(e)) return false;
670
+
671
+      if (this.lastKey==38) // Up
672
+      {
673
+        if (childIndex>0)
674
+        {
675
+          var newIndex = childIndex-1;
676
+          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
677
+        }
678
+        else // already at first child, jump to parent
679
+        {
680
+          document.getElementById('Item'+itemIndex).focus();
681
+        }
682
+      }
683
+      else if (this.lastKey==40) // Down
684
+      {
685
+        var newIndex = childIndex+1;
686
+        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
687
+        if (!elem) // last child, jump to parent next parent
688
+        {
689
+          elem = this.NavNext(itemIndex+1);
690
+        }
691
+        if (elem)
692
+        {
693
+          elem.focus();
694
+        }
695
+      }
696
+      else if (this.lastKey==27) // Escape
697
+      {
698
+        parent.searchBox.CloseResultsWindow();
699
+        parent.document.getElementById("MSearchField").focus();
700
+      }
701
+      else if (this.lastKey==13) // Enter
702
+      {
703
+        return true;
704
+      }
705
+      return false;
706
+    }
707
+}
708
+
709
+function setKeyActions(elem,action)
710
+{
711
+  elem.setAttribute('onkeydown',action);
712
+  elem.setAttribute('onkeypress',action);
713
+  elem.setAttribute('onkeyup',action);
714
+}
715
+
716
+function setClassAttr(elem,attr)
717
+{
718
+  elem.setAttribute('class',attr);
719
+  elem.setAttribute('className',attr);
720
+}
721
+
722
+function createResults()
723
+{
724
+  var results = document.getElementById("SRResults");
725
+  for (var e=0; e<searchData.length; e++)
726
+  {
727
+    var id = searchData[e][0];
728
+    var srResult = document.createElement('div');
729
+    srResult.setAttribute('id','SR_'+id);
730
+    setClassAttr(srResult,'SRResult');
731
+    var srEntry = document.createElement('div');
732
+    setClassAttr(srEntry,'SREntry');
733
+    var srLink = document.createElement('a');
734
+    srLink.setAttribute('id','Item'+e);
735
+    setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
736
+    setClassAttr(srLink,'SRSymbol');
737
+    srLink.innerHTML = searchData[e][1][0];
738
+    srEntry.appendChild(srLink);
739
+    if (searchData[e][1].length==2) // single result
740
+    {
741
+      srLink.setAttribute('href',searchData[e][1][1][0]);
742
+      if (searchData[e][1][1][1])
743
+      {
744
+       srLink.setAttribute('target','_parent');
745
+      }
746
+      var srScope = document.createElement('span');
747
+      setClassAttr(srScope,'SRScope');
748
+      srScope.innerHTML = searchData[e][1][1][2];
749
+      srEntry.appendChild(srScope);
750
+    }
751
+    else // multiple results
752
+    {
753
+      srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
754
+      var srChildren = document.createElement('div');
755
+      setClassAttr(srChildren,'SRChildren');
756
+      for (var c=0; c<searchData[e][1].length-1; c++)
757
+      {
758
+        var srChild = document.createElement('a');
759
+        srChild.setAttribute('id','Item'+e+'_c'+c);
760
+        setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
761
+        setClassAttr(srChild,'SRScope');
762
+        srChild.setAttribute('href',searchData[e][1][c+1][0]);
763
+        if (searchData[e][1][c+1][1])
764
+        {
765
+         srChild.setAttribute('target','_parent');
766
+        }
767
+        srChild.innerHTML = searchData[e][1][c+1][2];
768
+        srChildren.appendChild(srChild);
769
+      }
770
+      srEntry.appendChild(srChildren);
771
+    }
772
+    srResult.appendChild(srEntry);
773
+    results.appendChild(srResult);
774
+  }
775
+}
776
+
777
+function init_search()
778
+{
779
+  var results = document.getElementById("MSearchSelectWindow");
780
+  for (var key in indexSectionLabels)
781
+  {
782
+    var link = document.createElement('a');
783
+    link.setAttribute('class','SelectItem');
784
+    link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
785
+    link.href='javascript:void(0)';
786
+    link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
787
+    results.appendChild(link);
788
+  }
789
+  searchBox.OnSelectItem(0);
790
+}
791
+

BIN
doc/en/html/search/search_l.png Datei anzeigen


BIN
doc/en/html/search/search_m.png Datei anzeigen


BIN
doc/en/html/search/search_r.png Datei anzeigen


+ 0
- 0
doc/en/html/search/searchdata.js Datei anzeigen


Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.