- Added option -gui in comamd line to show the Pure Data GUI's
- Bugfix in initiatializinng the text subpatch
This commit is contained in:
parent
d1c4295692
commit
b877185c0d
8 changed files with 97 additions and 50 deletions
|
@ -244,7 +244,7 @@ En los modos auto el inicio y fin de loop no son aplicables, se reproduce la pel
|
|||
25-49: Video
|
||||
50-75: Imagenes
|
||||
75-99: Texto
|
||||
9 Modos de Reproduccion (Sólo aplicable si canal 5 < 245)/Text File:
|
||||
9 Modos de Reproduccion (Sólo aplicable si canal 5 < 245):
|
||||
00-24 Normal loop
|
||||
25-49 Back loop
|
||||
50-74 Ping-pong loop
|
||||
|
@ -253,7 +253,7 @@ En los modos auto el inicio y fin de loop no son aplicables, se reproduce la pel
|
|||
125-149 Ping-Pong una vez
|
||||
150-174 Stop/pause
|
||||
175-200 Continue/Play
|
||||
10 Inicio loop (0 principio peli- 255 final) (0)
|
||||
10 Inicio loop (0 principio peli- 255 final)/Text File (0)
|
||||
11 Final Loop (0 principio peli - 255 final) (255)
|
||||
12 Rotate X (0)
|
||||
13 Rotate Y (0)
|
||||
|
|
|
@ -1759,7 +1759,7 @@ f f f f f f f f f;
|
|||
#X connect 111 0 108 0;
|
||||
#X connect 113 0 102 0;
|
||||
#X restore 579 -65 pd video_render;
|
||||
#N canvas 66 90 951 649 texto 0;
|
||||
#N canvas 48 90 951 649 texto 0;
|
||||
#X obj 421 -381 gemhead;
|
||||
#X msg 252 -31 font \$1;
|
||||
#X obj 421 -307 rotateXYZ;
|
||||
|
@ -1816,21 +1816,22 @@ f f f f f f f f f;
|
|||
#X obj 659 -115 - 128;
|
||||
#X obj 659 -78 * 0.125;
|
||||
#X obj 776 -29 pack f f 1;
|
||||
#X obj 980 -203 loadbang;
|
||||
#X obj 856 8 coll;
|
||||
#X obj 856 18 coll;
|
||||
#C restore;
|
||||
#X obj 856 34 prepend text;
|
||||
#X msg 932 -70 read \$1;
|
||||
#X obj 856 44 prepend text;
|
||||
#X msg 932 -74 read \$1;
|
||||
#X obj 932 -100 fileselector;
|
||||
#X msg 980 -181 type 257;
|
||||
#X msg 1057 -182 file \$1;
|
||||
#X obj 1057 -205 r \$0-c9;
|
||||
#X obj 921 -202 r path;
|
||||
#X msg 921 -180 set \$1;
|
||||
#X obj 1149 -143 b;
|
||||
#X msg 1017 -157 type 257;
|
||||
#X msg 1128 -160 file \$1;
|
||||
#X obj 932 -219 r path;
|
||||
#X msg 932 -155 set \$1;
|
||||
#X obj 1196 -120 b;
|
||||
#X text 857 -68 Texto;
|
||||
#X obj 856 -20 float;
|
||||
#X obj 946 -48 b;
|
||||
#X obj 969 -48 b;
|
||||
#X obj 1128 -189 float 0;
|
||||
#X obj 1019 -199 t b b;
|
||||
#X obj 856 -10 float 0;
|
||||
#X obj 1128 -222 r \$0-c10;
|
||||
#X connect 0 0 4 0;
|
||||
#X connect 1 0 3 0;
|
||||
#X connect 2 0 5 0;
|
||||
|
@ -1846,7 +1847,7 @@ f f f f f f f f f;
|
|||
#X connect 11 0 8 1;
|
||||
#X connect 12 0 11 0;
|
||||
#X connect 12 1 10 0;
|
||||
#X connect 23 0 68 0;
|
||||
#X connect 23 0 69 0;
|
||||
#X connect 24 0 36 0;
|
||||
#X connect 25 0 37 0;
|
||||
#X connect 26 0 38 0;
|
||||
|
@ -1880,21 +1881,24 @@ f f f f f f f f f;
|
|||
#X connect 53 0 54 0;
|
||||
#X connect 54 0 6 3;
|
||||
#X connect 55 0 51 2;
|
||||
#X connect 56 0 61 0;
|
||||
#X connect 57 0 58 0;
|
||||
#X connect 58 0 3 0;
|
||||
#X connect 59 0 57 0;
|
||||
#X connect 59 0 69 0;
|
||||
#X connect 56 0 57 0;
|
||||
#X connect 57 0 3 0;
|
||||
#X connect 58 0 56 0;
|
||||
#X connect 58 0 66 0;
|
||||
#X connect 59 0 58 0;
|
||||
#X connect 60 0 59 0;
|
||||
#X connect 61 0 60 0;
|
||||
#X connect 62 0 60 0;
|
||||
#X connect 62 0 66 0;
|
||||
#X connect 63 0 62 0;
|
||||
#X connect 64 0 65 0;
|
||||
#X connect 65 0 60 0;
|
||||
#X connect 66 0 60 0;
|
||||
#X connect 68 0 57 0;
|
||||
#X connect 69 0 68 0;
|
||||
#X connect 61 0 59 0;
|
||||
#X connect 61 0 64 0;
|
||||
#X connect 62 0 63 0;
|
||||
#X connect 62 0 68 0;
|
||||
#X connect 63 0 59 0;
|
||||
#X connect 64 0 59 0;
|
||||
#X connect 66 0 69 0;
|
||||
#X connect 67 0 61 0;
|
||||
#X connect 68 0 60 0;
|
||||
#X connect 68 1 67 0;
|
||||
#X connect 69 0 56 0;
|
||||
#X connect 70 0 67 0;
|
||||
#X restore 742 -97 pd texto;
|
||||
#X obj 450 350 t b;
|
||||
#X obj 397 349 t b;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#N canvas 572 196 611 318 10;
|
||||
#N canvas 570 206 611 318 10;
|
||||
#N canvas 315 169 952 599 dmx 0;
|
||||
#X obj -7 437 list split;
|
||||
#X obj 99 444 list split;
|
||||
|
@ -600,7 +600,7 @@
|
|||
#X connect 16 0 13 0;
|
||||
#X connect 16 1 3 0;
|
||||
#X restore -396 -379 pd layer_2;
|
||||
#N canvas 382 150 450 300 layer_1 0;
|
||||
#N canvas 380 160 450 300 layer_1 0;
|
||||
#X obj -253 -28 layer;
|
||||
#X msg -124 -32 1;
|
||||
#X msg -177 -33 0;
|
||||
|
|
|
@ -93,7 +93,7 @@ bool audioCheck;
|
|||
|
||||
|
||||
|
||||
libreMediaServer::libreMediaServer(QWidget *parent)
|
||||
libreMediaServer::libreMediaServer(QStringList args, QWidget *parent)
|
||||
: QMainWindow(parent),
|
||||
m_startvideo(0),
|
||||
m_startaudio(0),
|
||||
|
@ -102,10 +102,17 @@ libreMediaServer::libreMediaServer(QWidget *parent)
|
|||
m_pd_write_video(NULL),
|
||||
m_pd_write_audio(NULL),
|
||||
m_pd_read_audio(NULL),
|
||||
m_tcpsocket_audio(NULL)
|
||||
m_tcpsocket_audio(NULL),
|
||||
m_gui(FALSE)
|
||||
{
|
||||
qDebug() << "******************************************************************************************************";
|
||||
qDebug() << QDate::currentDate() << QTime::currentTime();
|
||||
qDebug() << "Parsing the command line";
|
||||
if (args.contains("-gui"))
|
||||
{
|
||||
qDebug()<< "libremediaserver Constructor option GUI detected";
|
||||
m_gui = true;
|
||||
}
|
||||
// Iniciamos el User Interface
|
||||
ui.setupUi(this);
|
||||
// Unix Local Sockets
|
||||
|
@ -844,7 +851,11 @@ void libreMediaServer::pdstart()
|
|||
Q_CHECK_PTR(m_pd_write_video);
|
||||
connect(m_pd_write_video, SIGNAL(connected()),this, SLOT(newconexion()));
|
||||
// Arrancamos el proceso Pure Data
|
||||
m_pd_video->start("./pd -noaudio -lib Gem -stderr -nostdpath -path ./externals/ ./patches/lms-video.pd");
|
||||
QString arguments;
|
||||
arguments.append("./pd -noaudio -lib Gem -stderr -nostdpath -path ./externals/ -open ./patches/lms-video.pd ");
|
||||
if (!m_gui)
|
||||
arguments.append("-nogui");
|
||||
m_pd_video->start(arguments);
|
||||
if (m_pd_video->waitForStarted(3000)){
|
||||
ui.textEdit->appendPlainText("Video Engine started.");
|
||||
}
|
||||
|
@ -869,7 +880,7 @@ void libreMediaServer::pdrestart()
|
|||
}
|
||||
save_finish();
|
||||
qDebug()<<"**************************************************************************";
|
||||
qDebug()<<"Starting PD Video:" << ++m_startvideo;
|
||||
qDebug()<<"PD Video Restarts:" << ++m_startvideo;
|
||||
ui.textEdit->appendPlainText("PD Video Restarting.");
|
||||
disconnect(m_pd_video, SIGNAL(finished(int)), this, SLOT(pdrestart()));
|
||||
pdstart();
|
||||
|
@ -1363,7 +1374,11 @@ void libreMediaServer::pdstart_audio()
|
|||
qDebug()<<"error listening tcpServer";
|
||||
}
|
||||
// Arrancamos el proceso Pure Data
|
||||
m_pd_audio->start("./pd -alsa -channels 2 -audiodev 1 -stderr -nostdpath -path ./externals/ ./patches/lms-audio.pd");
|
||||
QString arguments;
|
||||
arguments.append("./pd -alsa -channels 2 -audiodev 1 -stderr -nostdpath -path ./externals/ ./patches/lms-audio.pd ");
|
||||
if (!m_gui)
|
||||
arguments.append("-nogui");
|
||||
m_pd_audio->start(arguments);
|
||||
if (m_pd_audio->waitForStarted(3000)){
|
||||
ui.textEdit->appendPlainText("PD Audio started.");
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@ class libreMediaServer : public QMainWindow
|
|||
|
||||
public:
|
||||
|
||||
libreMediaServer (QWidget *parent = 0);
|
||||
libreMediaServer (QStringList args, QWidget *parent = 0);
|
||||
virtual ~libreMediaServer();
|
||||
|
||||
Ui::LibreMediaServer ui;
|
||||
|
@ -72,6 +72,7 @@ protected:
|
|||
QTimer *m_preview; // Timer for the preview screen
|
||||
int m_startvideo; // Counter starts video engine. Debugging purpose
|
||||
int m_startaudio; // Counter starts audio engine. Debugging purpose
|
||||
bool m_gui;
|
||||
|
||||
private:
|
||||
|
||||
|
@ -85,7 +86,7 @@ private:
|
|||
void save_finish();
|
||||
void open(QFile *file);
|
||||
void save(QFile *file);
|
||||
// void MessageHandler(QtMsgType type, const char *msg);
|
||||
// void MessageHandler(QtMsgType type, const char *msg);
|
||||
|
||||
public slots:
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by Qt Creator 2.5.0, 2013-03-01T18:09:52. -->
|
||||
<!-- Written by Qt Creator 2.5.0, 2013-03-01T20:59:13. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments">-gui</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">libremediaserver.pro</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
|
||||
|
|
23
src/main.cpp
23
src/main.cpp
|
@ -19,6 +19,8 @@
|
|||
#include <QApplication>
|
||||
#include "libremediaserver.h"
|
||||
|
||||
#define VERSION "0.03-1";
|
||||
|
||||
// Handler for pipe the stderr to a log file
|
||||
|
||||
bool initMessageHandler = 0;
|
||||
|
@ -73,8 +75,27 @@ void MessageHandler(QtMsgType type, const char *msg)
|
|||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication app(argc, argv);
|
||||
QStringList args = app.arguments();
|
||||
if (args.size() > 1)
|
||||
{
|
||||
if (args.contains("-v") > 0)
|
||||
{
|
||||
qDebug() << "LibreMediaServer Version" << VERSION;
|
||||
app.exit();
|
||||
return 0;
|
||||
}
|
||||
if (args.contains("-h") > 0)
|
||||
{
|
||||
qDebug() << "LibreMediaServer Version" << VERSION;
|
||||
qDebug() << "Help";
|
||||
qDebug() << "-v Show the version and exits";
|
||||
qDebug() << "-gui show the Pure Data GUI's.";
|
||||
app.exit();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
qInstallMsgHandler(MessageHandler);
|
||||
libreMediaServer libreMediaServer;
|
||||
libreMediaServer libreMediaServer(args);
|
||||
libreMediaServer.show();
|
||||
return app.exec();
|
||||
}
|
||||
|
|
22
todo.txt
22
todo.txt
|
@ -21,11 +21,11 @@ You should have received a copy of the GNU General Public License along with thi
|
|||
v 0.03:
|
||||
+ Pure Data: Carpetas para imágenes
|
||||
+ Text: Diferentes ficheros de texto
|
||||
|
||||
+ GUI: Configuración para anular los previews y salvar tiempo de proceso
|
||||
|
||||
Próximas versiones:
|
||||
|
||||
- Pure Data Video: Modularidad, sumar ventanas por instancias de PMS-video.
|
||||
- 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.
|
||||
|
@ -33,7 +33,6 @@ Próximas versiones:
|
|||
- Pure Data Video: Cambiar alpha por glgs.
|
||||
--> Mirar ejemplos en doc de Gem.
|
||||
--> Mirar requerimientos de tarjetas gráficas
|
||||
- GUI: Configuración para anular los previews y salvar tiempo de proceso
|
||||
- Conectividad: CITP/MSEx 1.1. Thumbs y previews de imágenes
|
||||
--> Esperar a 1.2 en MagicQ?
|
||||
- Pure Data: sincronismo de audio con videos
|
||||
|
@ -42,7 +41,6 @@ Próximas versiones:
|
|||
--> 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
|
||||
- Medidor de CPU en el GUI
|
||||
- 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.
|
||||
|
@ -66,15 +64,23 @@ Próximas versiones:
|
|||
|
||||
-----------------
|
||||
|
||||
Para considerar:
|
||||
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 --> Puede que sea mejor que se reproduzca más lento a forzar un reinicio?
|
||||
- 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
|
||||
--> Puede que sea mejor que se reproduzca más lento a forzar un reinicio?
|
||||
--> Ahora estoy trabajando sin watchdog y no noto la diferencia.
|
||||
- Medidor de CPU en el GUI
|
||||
--> Mejor usar cualquier tipo de medidor externo. Lo ideal sería mostrar los fps a los que está trabajando Gem, pero no parece posible en este momento.
|
||||
|
||||
-----------------
|
||||
|
||||
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!. Investigar soft edge.
|
||||
- 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
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue