*******************************************************************************

Libre Media Server - An Open source Media Server.
(c) Santiago Noreña 2012-2013

*******************************************************************************

Developing and support: libremediaserver@gmail.com

Code: http://code.google.com/p/libremediaserver

*******************************************************************************

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

*******************************************************************************
v0.04:

+ PD: Mirar cómo poder incluir la carpeta tcl dentro de directorio libremediaserver --> Cambio en los dir
+ GUI: Añadido contador de Frames Por Segundo.
+ GUI: Selector de tasa de frames.
+ Carpetas para fuentes
+ Video: Live input

Próximas versiones:

- Pure Data Video: Modularidad, sumar ventanas por instancias de LMS
    --> NO SE PUEDE POR USAR LOS MISMOS PUERTOS
    --> Opción de arranque?
    --> Blending entre proyectores. Mirar ejemplo Gem multiprojection
    --> Añadir shaders a la capa?
- Pure Data Video: Cambiar alpha por glgs
    --> Mirar ejemplos en doc de Gem
    --> Mirar requerimientos de tarjetas gráficas --> GLSG en OpenGL 2.0
    --> Parece que se pueden cambiar más cosas aparte de alpha. Ejemplo 1 brillo y contraste. 
- Conectividad: CITP/MSEx 1.1. Thumbs y previews de imágenes
    --> Esperar a 1.2 en MagicQ?
- Pure Data: sincronismo de audio con videos 
    --> Parece que hay que hacer un script para separar el audio del video, y luego ejecutarlos juntos. Un poco chapu, la verdad. La aternativa es volver a pdp mediante pdp2gem (inviable, demasiado proceso) 
    --> De momento separando el .ogg del video, ejecutando en auto, y mandando play a la vez debería de estar sincronizados. Ahora mismo se podría separando el audio en un fichero .ogg y presionando el play a la vez en modo auto
    --> La opción de pdp2gem parece la más factible. Gem no soporta en absoluto el audio, habría que crear un backend para manejarlo y es una movida. ¿Hacerlo sólo en una capa? 
    --> hay que adaptar todo el patch a pdp_player e incluir los externals de pdp y pdp2gem. Adaptar sólo el método auto en esta capa, sin la velocidad ni los modos 
- Documentación en inglés
- Incluir archivos en el ejecutable como recursos Qt 
      --> Podrá leer Pure Data los .pd_linux?
      --> Los externals empiezan a pesar demasiado y sería un ejecutable demasiado grande: Incluir sólo los patches.
- Audio: Theremin, sintetizadores.
- Audio: Música fractal mediante generadores de fx de las mesas
- Audio: Tarjetas con varias salidas y varias mezclas
- Empaquetar en .deb
- Scripts: nuevo script para numerar los media
- Text: Alphas high y low. Mirar si se puede.
    --> Parece que pix_alpha no tiene efecto alguno sobre text3d. Alpha blending tampoco.
- Video: Generación de fractales visuales
    --> Iteración en Gem
- Core: Evitar los loops de reinicio. 
    --> Detectar y mandar mensaje a la terminal
    --> Cortar la lectura DMX o apagar la ventana
    --> Depurar a saco las condiciones del reinicio 
- Scripts: script para formatear archivos de texto  
- GUI: avisar cuando no se pueda leer un archivo de texto
- Audio: Mute check box.
- Scripts: nuevo script para formatear una archivo de texto plano.
    --> Cambiar coll por textfile? textfile no soporta la búsqueda por línea
- Preview texts
    --> No dispara el pix2image?

-----------------

Para considerar/investigar:

- Necesidad de 16 bits en size, rotation, entry-end points, puntos de bezier?
- Más puntos de Bezier?
- Hacer external con reproductor de pix_film 
    --> Merece la pena codificarlo en C una vez hecho en PD? Ahorrará consumo de CPU?
- GUI: PD Watchdog reinicia el proceso Pure Data
    --> Puede que sea mejor que se reproduzca más lento a forzar un reinicio?
    --> Ahora estoy trabajando sin watchdog y no noto la diferencia
- Sustituir PD/Gem por OpenGl?
    --> Pros:
	- Aumenta la estabilidad y el rendimiento al quitar una capa
	- Mejora la detección de errores
	- Quita la limitación de versiones de OpenGl causada por Gem
	- Aligera el programa al integrarse todo en el proceso principal
	- Aumenta las posibilidades de rendering
	- El patch actual sirve como esquema. Básicamente el proceso sería codificar ese patch en C+
	- Aumenta la portabilidad
	- Reduce las conexiones TCP y Unix Local Socket por llamadas a funciones.
     --> Contras:
	- Se pierde la facilidad de uso y modificación que proporciona Pure Data
	- Varios meses de trabajo. El patch de PD/Gem ya está funcionando 		 	
     --> Pasos:
	- Hacer una clase para lectura de DMX
	- Hacer el cargador de medias que cargará en el pipeline el media a reproducir: Phonon
	- Hacer clase QGLWidget renderWindow
		- Una señal por canal DMX
		- FPS conectando un timer a la rutina de renderizado
		- Creación/Destrucción/Tamaño/Posición de la ventana

-----------------

Descartados:

- Separar textos en otra personalidad 
    --> No posible, al iniciar un nuevo proceso inicia una nueva ventana- Malo para textos, bueno para varios proyectores y blending
    

