cambios desconocidos...:

This commit is contained in:
snt 2023-09-05 17:21:57 +02:00
parent 874a669660
commit d2c3682c23
26 changed files with 541 additions and 32 deletions

0
LICENSE.txt Executable file → Normal file
View file

0
puredata/glsl/gain.ctl.pd Executable file → Normal file
View file

0
puredata/glsl/gain.frag Executable file → Normal file
View file

0
puredata/glsl/gain.vert Executable file → Normal file
View file

View file

@ -1,6 +1,6 @@
#N canvas 548 180 611 438 10; #N canvas -93 562 1280 675 10;
#X declare -path . -path externals; #X declare -path . -path externals;
#N canvas 57 385 240 272 fondo 0; #N canvas 54 425 240 272 fondo 0;
#X obj -452 -118 color 0 0 0; #X obj -452 -118 color 0 0 0;
#X obj -452 -150 alpha; #X obj -452 -150 alpha;
#X text -486 -209 Pantalla fondo Negra; #X text -486 -209 Pantalla fondo Negra;
@ -73,7 +73,7 @@
#X connect 27 7 12 0; #X connect 27 7 12 0;
#X connect 27 8 10 0; #X connect 27 8 10 0;
#X restore -249 -438 pd receive; #X restore -249 -438 pd receive;
#N canvas 814 208 450 333 window 0; #N canvas 1408 248 1280 675 window 1;
#X msg 809 -348 color 0 0 0; #X msg 809 -348 color 0 0 0;
#X msg 620 -350 print; #X msg 620 -350 print;
#X msg 466 -352 border \$1; #X msg 466 -352 border \$1;
@ -103,6 +103,9 @@
#X msg 161 -350 0 \, destroy; #X msg 161 -350 0 \, destroy;
#X msg 93 -265 frame \$1; #X msg 93 -265 frame \$1;
#X obj 55 -290 r fps; #X obj 55 -290 r fps;
#X obj 682 -129 import gem;
#X obj 680 -175 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X connect 0 0 24 0; #X connect 0 0 24 0;
#X connect 1 0 24 0; #X connect 1 0 24 0;
#X connect 2 0 24 0; #X connect 2 0 24 0;
@ -138,6 +141,7 @@
#X connect 26 0 24 0; #X connect 26 0 24 0;
#X connect 27 0 24 0; #X connect 27 0 24 0;
#X connect 28 0 27 0; #X connect 28 0 27 0;
#X connect 30 0 29 0;
#X restore -175 -438 pd window; #X restore -175 -438 pd window;
#N canvas 818 219 450 300 layer_5 0; #N canvas 818 219 450 300 layer_5 0;
#X msg -209 -32 1; #X msg -209 -32 1;
@ -246,7 +250,7 @@
#X connect 13 0 14 1; #X connect 13 0 14 1;
#X connect 14 0 3 0; #X connect 14 0 3 0;
#X restore -28 -379 pd layer_7; #X restore -28 -379 pd layer_7;
#N canvas 889 319 450 300 layer_8 0; #N canvas 830 332 450 300 layer_8 1;
#X msg -124 -41 1; #X msg -124 -41 1;
#X msg -177 -42 0; #X msg -177 -42 0;
#X obj -177 -64 select 0; #X obj -177 -64 select 0;
@ -351,7 +355,7 @@
#X connect 13 0 14 1; #X connect 13 0 14 1;
#X connect 14 0 3 0; #X connect 14 0 3 0;
#X restore -323 -379 pd layer_3; #X restore -323 -379 pd layer_3;
#N canvas 879 237 450 300 layer_2 0; #N canvas 876 250 450 300 layer_2 0;
#X msg -86 -22 1; #X msg -86 -22 1;
#X msg -139 -23 0; #X msg -139 -23 0;
#X obj -139 -45 select 0; #X obj -139 -45 select 0;
@ -386,7 +390,7 @@
#X connect 13 0 14 1; #X connect 13 0 14 1;
#X connect 14 0 3 0; #X connect 14 0 3 0;
#X restore -396 -379 pd layer_2; #X restore -396 -379 pd layer_2;
#N canvas 899 309 450 300 layer_1 0; #N canvas 830 322 450 300 layer_1 1;
#X obj -253 -28 layer; #X obj -253 -28 layer;
#X msg -61 -33 1; #X msg -61 -33 1;
#X msg -114 -34 0; #X msg -114 -34 0;
@ -467,6 +471,8 @@ GPL License;
#X text -474 -219 This patch can not be run alone \, needs the libremediaserver #X text -474 -219 This patch can not be run alone \, needs the libremediaserver
GUI http://libremediaserver.googlecode.com; GUI http://libremediaserver.googlecode.com;
#X obj -388 -164 declare -path . -path externals; #X obj -388 -164 declare -path . -path externals;
#N canvas 0 93 450 300 layer_9 0;
#X restore 420 -224 pd layer_9;
#X connect 4 0 15 0; #X connect 4 0 15 0;
#X connect 4 0 18 0; #X connect 4 0 18 0;
#X connect 13 0 14 0; #X connect 13 0 14 0;

0
puredata/vera.ttf Executable file → Normal file
View file

0
scripts/install_precise.sh Executable file → Normal file
View file

0
scripts/install_wheezy.sh Executable file → Normal file
View file

0
src/Gem/autogen.sh Executable file → Normal file
View file

0
src/Gem/build/osx-dmginstaller/buildinstaller.sh Executable file → Normal file
View file

0
src/Gem/build/osx-dmginstaller/icon2app Executable file → Normal file
View file

0
src/Gem/src/importGLEW.sh Executable file → Normal file
View file

0
src/Gem/src/openGL/fun2object.sh Executable file → Normal file
View file

0
src/Gem/src/pkgversion.sh Executable file → Normal file
View file

0
src/Gem/tests/all/existence.sh Executable file → Normal file
View file

0
src/Gem/tests/runtests.sh Executable file → Normal file
View file

View file

@ -73,6 +73,7 @@ libreMediaServer::libreMediaServer(QStringList args, QWidget *parent)
qDebug() << VERSION; qDebug() << VERSION;
qDebug() << COPYRIGHT; qDebug() << COPYRIGHT;
qDebug() << LICENSE; qDebug() << LICENSE;
// Init Unix Local Sockets // Init Unix Local Sockets
QFile socket(SOCKET); QFile socket(SOCKET);
if (socket.exists()) if (socket.exists())
@ -97,6 +98,7 @@ libreMediaServer::libreMediaServer(QStringList args, QWidget *parent)
connect(ui.actionSave_conf, SIGNAL(triggered()), this, SLOT(saveFile())); connect(ui.actionSave_conf, SIGNAL(triggered()), this, SLOT(saveFile()));
connect(ui.actionChange_Media_Path, SIGNAL(triggered()), this, SLOT(ChangeMediaPath())); connect(ui.actionChange_Media_Path, SIGNAL(triggered()), this, SLOT(ChangeMediaPath()));
connect(ui.actionLaunch_OLA_Setup,SIGNAL(triggered()),this, SLOT(olasetup())); connect(ui.actionLaunch_OLA_Setup,SIGNAL(triggered()),this, SLOT(olasetup()));
connect(ui.actionSettings,SIGNAL(triggered()),this, SLOT(settings()));
// Start PD // Start PD
pdstart(); pdstart();
// Load the configuration // Load the configuration
@ -106,6 +108,13 @@ libreMediaServer::libreMediaServer(QStringList args, QWidget *parent)
connect(m_olaInterface->m_msex->m_timer, SIGNAL(timeout()), this, SLOT(sendFrame())); connect(m_olaInterface->m_msex->m_timer, SIGNAL(timeout()), this, SLOT(sendFrame()));
connect(m_olaInterface, SIGNAL(sendDmx(int,int,int)), this, SLOT(receiveDMX(int,int,int))); connect(m_olaInterface, SIGNAL(sendDmx(int,int,int)), this, SLOT(receiveDMX(int,int,int)));
connect(m_olaInterface, SIGNAL(newFile(QString)), this, SLOT(newFile(QString))); connect(m_olaInterface, SIGNAL(newFile(QString)), this, SLOT(newFile(QString)));
// Load the last configuration
settingswindow = new settingsDialog();
connect(settingswindow, SIGNAL(pathChanged(QString)), m_olaInterface, SLOT(setPath(QString)));
connect(settingswindow, SIGNAL(dmxChanged(int,int,int)), m_olaInterface->worker,SLOT(dmxConf(int,int,int)));
settingswindow->readXML(); // Read the last configuration file
m_olaInterface->open(); // Start the dmx reading
} }
/////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////
@ -197,6 +206,12 @@ void libreMediaServer::ChangeMediaPath()
m_olaInterface->setPath(file); m_olaInterface->setPath(file);
} }
void libreMediaServer::settings(){
settingswindow->show();
settingswindow->exec(); //retorno de error
}
/////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////
// Open/save Subroutines. The real work. // Open/save Subroutines. The real work.
/////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////

View file

@ -39,6 +39,7 @@
#include "MSEXDefines.h" #include "MSEXDefines.h"
#include "ui_libremediaserver.h" #include "ui_libremediaserver.h"
#include "olainterface.h" #include "olainterface.h"
#include "settingsdialog.h"
#define VERSION "LibreMediaServer Version 0.05-1" #define VERSION "LibreMediaServer Version 0.05-1"
#define COPYRIGHT "(C) 2012-2013 Santi Norena libremediaserver@gmail.com" #define COPYRIGHT "(C) 2012-2013 Santi Norena libremediaserver@gmail.com"
@ -77,8 +78,9 @@ protected:
int m_startvideo; // Counter starts video engine. Debugging purpose int m_startvideo; // Counter starts video engine. Debugging purpose
bool m_gui; bool m_gui;
private: settingsDialog *settingswindow; // The settings dialog
private:
void errorsending(); void errorsending();
void pdstart(); void pdstart();
@ -118,6 +120,7 @@ private slots:
void openFile(); void openFile();
void saveFile(); void saveFile();
void ChangeMediaPath();// Change the path to medias void ChangeMediaPath();// Change the path to medias
void settings(); // Open the settings window
}; };
#endif // LIBREMEDIASERVER_H #endif // LIBREMEDIASERVER_H

View file

@ -11,7 +11,8 @@ HEADERS += libremediaserver.h \
msex.h \ msex.h \
CITPDefines.h \ CITPDefines.h \
MSEXDefines.h \ MSEXDefines.h \
olainterface.h olainterface.h \
settingsdialog.h
SOURCES += main.cpp \ SOURCES += main.cpp \
libremediaserver.cpp \ libremediaserver.cpp \
@ -19,10 +20,12 @@ SOURCES += main.cpp \
PacketCreator.cpp \ PacketCreator.cpp \
PeerInformationSocket.cpp \ PeerInformationSocket.cpp \
msex.cpp \ msex.cpp \
olainterface.cpp olainterface.cpp \
settingsdialog.cpp
FORMS += \ FORMS += \
libremediaserver.ui libremediaserver.ui \
settingsdialog.ui
#INCLUDEPATH += ./ #INCLUDEPATH += ./

View file

@ -451,6 +451,7 @@
<addaction name="actionSave_conf"/> <addaction name="actionSave_conf"/>
<addaction name="actionChange_Media_Path"/> <addaction name="actionChange_Media_Path"/>
<addaction name="actionLaunch_OLA_Setup"/> <addaction name="actionLaunch_OLA_Setup"/>
<addaction name="actionSettings"/>
</widget> </widget>
<addaction name="menuFile"/> <addaction name="menuFile"/>
</widget> </widget>
@ -497,6 +498,11 @@
<string>OLA Setup</string> <string>OLA Setup</string>
</property> </property>
</action> </action>
<action name="actionSettings">
<property name="text">
<string>Settings</string>
</property>
</action>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>

37
src/olainterface.cpp Executable file → Normal file
View file

@ -4,6 +4,7 @@
olaWorker is the threading class that reads raw DMX from ola daemon and save it into a buffer ordered in layers olaWorker is the threading class that reads raw DMX from ola daemon and save it into a buffer ordered in layers
olaInterface controls olaWorker and translates DMX values received from olaWorker into orders to RenderingManager and Source olaInterface controls olaWorker and translates DMX values received from olaWorker into orders to RenderingManager and Source
*/ */
#include "olainterface.h" #include "olainterface.h"
olaInterface::olaInterface() olaInterface::olaInterface()
@ -12,12 +13,12 @@ olaInterface::olaInterface()
m_thread = NULL; m_thread = NULL;
worker = new olaWorker(); worker = new olaWorker();
Q_CHECK_PTR(worker); Q_CHECK_PTR(worker);
readDataFromXML(); // Read the dmx setting from dmx.xml // readDataFromXML(); // Read the dmx setting from dmx.xml
connect (worker, SIGNAL(dmx(int,int,int)), this, SLOT(dmx(int,int,int)), Qt::QueuedConnection); // The DMX values. connect (worker, SIGNAL(dmx(int,int,int)), this, SLOT(dmx(int,int,int)), Qt::QueuedConnection); // The DMX values.
initMediaLibrary(); // Init the media library reading the files in m_pathmedia initMediaLibrary(); // Init the media library reading the files in m_pathmedia
m_msex = new msex(this); // Init the CITP/MSEx protocol m_msex = new msex(this); // Init the CITP/MSEx protocol
Q_CHECK_PTR(m_msex); Q_CHECK_PTR(m_msex);
open(); // open();
} }
olaInterface::~olaInterface() olaInterface::~olaInterface()
@ -49,6 +50,7 @@ void olaInterface::close()
// - The number of sources/layers controlled by DMX // - The number of sources/layers controlled by DMX
// - The first DMX channel of each source/layer // - The first DMX channel of each source/layer
// - The universe to bind in OLA // - The universe to bind in OLA
// All this is being moved to settingsDialog Class
void olaInterface::readDataFromXML() { void olaInterface::readDataFromXML() {
QFile* xmlFile = new QFile("dmx.xlm"); QFile* xmlFile = new QFile("dmx.xlm");
@ -319,6 +321,7 @@ olaWorker::olaWorker() {
m_dmx[i][j] = 0; m_dmx[i][j] = 0;
} }
} }
m_layersNumber = 8; // hardcoded at the moment. This should be variable --> the gui must be dynamic...
} }
// --- DECONSTRUCTOR --- // --- DECONSTRUCTOR ---
@ -407,21 +410,19 @@ void olaWorker::RegisterComplete(const string &error) {
qWarning() << "olaWorker|" << "Register command failed" << QString::fromStdString(error); qWarning() << "olaWorker|" << "Register command failed" << QString::fromStdString(error);
} }
} }
/*
* Slot for change the dmx configuration
*/
void olaWorker::dmxConf(int layer, int address, int universe) {
dmxSettings temp;
temp.address = address;
temp.universe = universe;
m_settings.replace(layer, temp);
// If the universe is not in the list, append it.
if(!m_universe.contains(universe)) {
m_universe.append(universe);
}
}
//////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////
/* We will need some GUI interaction from the user for settings. We will need:
* - Change the path to the medias
* - Change the DMX address of each layer
* - Change the universe to bind in ola
* - Write and read different xml configuration files for different setups
* - Start and stop the dmx reading
void savesetttingtoxml{
// Habrá que salvar las settings en algún sitio
}
void opensettings{
Posibilidad de abrir otro archivo de configuración
}
*/

6
src/olainterface.h Executable file → Normal file
View file

@ -75,6 +75,9 @@ private:
bool CheckDataLoss(); bool CheckDataLoss();
void RegisterComplete(const string &error); // Called after completing the register void RegisterComplete(const string &error); // Called after completing the register
public slots:
void dmxConf(int layer, int address, int universe);
protected slots: protected slots:
void olastart(); // Starts the conexion with olad. olad must be running before this void olastart(); // Starts the conexion with olad. olad must be running before this
@ -100,7 +103,7 @@ public:
olaWorker *worker; // The thread of connection with ola. olaWorker *worker; // The thread of connection with ola.
inline void setPath(QString path) {m_pathmedia = path;} // Set the path to the root media path. The media files are inside this folder tree.
inline QString getPath () {return m_pathmedia;} // Get the path to the medias folder tree. inline QString getPath () {return m_pathmedia;} // Get the path to the medias folder tree.
msex *m_msex; msex *m_msex;
@ -124,6 +127,7 @@ public slots:
void dmx(int layer, int channel, int value); // Connected with signal dmx from olaWorker. This is the horsepower of all this. Converts DMX orders void dmx(int layer, int channel, int value); // Connected with signal dmx from olaWorker. This is the horsepower of all this. Converts DMX orders
// into orders to RenderingManager and Source. Mantains updated the videolayer struct. // into orders to RenderingManager and Source. Mantains updated the videolayer struct.
inline void setPath(QString path) {m_pathmedia = path;} // Set the path to the root media path. The media files are inside this folder tree.
signals: signals:
void sendDmx(int layer,int channel, int value); void sendDmx(int layer,int channel, int value);

98
src/settingsdialog.cpp Normal file
View file

@ -0,0 +1,98 @@
#include <QFileDialog>
#include <QFile>
#include <QXmlStreamReader>
#include <QMessageBox>
#include "settingsdialog.h"
#include "ui_settingsdialog.h"
settingsDialog::settingsDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::settingsDialog)
{
ui->setupUi(this);
readXML();
connect(ui->choosePathButton,SIGNAL(clicked(QAbstractButton*)), this, SLOT(changeMediaPath()));
}
settingsDialog::~settingsDialog()
{
delete ui;
}
void settingsDialog::readXML() {
// QFile xmlFile("conf.xml");
QFile* xmlFile = new QFile("conf.xlm");
Q_CHECK_PTR(xmlFile);
if (!xmlFile->open(QIODevice::ReadOnly | QIODevice::Text)) {
QMessageBox::critical(NULL,"Load XML File Problem",
"Couldn't open configuration file",
QMessageBox::Ok);
//return;
}
QXmlStreamReader* xmlReader = new QXmlStreamReader(xmlFile);
//Parse the XML until we reach end of it
while(!xmlReader->atEnd() && !xmlReader->hasError()) {
// Read next element
QXmlStreamReader::TokenType token = xmlReader->readNext();
//If token is just StartDocument - go to next
if(token == QXmlStreamReader::StartDocument) {
continue;
}
//If token is StartElement - read it
if(token == QXmlStreamReader::StartElement) {
if(xmlReader->name() == "windowSettings") {
int version = xmlReader->attributes().value("fileVersion").toLocal8Bit().toInt();
if(version == 1) {
ui->winpositionx->setValue(xmlReader->attributes().value("XPos").toLocal8Bit().toInt());
ui->winpositiony->setValue(xmlReader->attributes().value("YPos").toLocal8Bit().toInt());
ui->winsizex->setValue(xmlReader->attributes().value("XSize").toLocal8Bit().toInt());
ui->winsizey->setValue(xmlReader->attributes().value("YSize").toLocal8Bit().toInt());
ui->fps->setValue(xmlReader->attributes().value("FPS").toLocal8Bit().toInt());
continue;
}
}
int counter = 0;
if(xmlReader->name() == "dmxSettings") {
int version = xmlReader->attributes().value("fileVersion").toLocal8Bit().toInt();
if(version == 1) {
// worker->m_layersNumber = xmlReader->attributes().value("layersNumber").toLocal8Bit().toInt();
emit pathChanged(xmlReader->attributes().value("path").toLocal8Bit());
continue;
}
}
// if (worker->m_layersNumber > MAX_SOURCE_DMX) {
// worker->m_layersNumber = MAX_SOURCE_DMX;
// }
QString add = "layer";
add.append(QString("%1").arg(counter));
if((xmlReader->name() == add)/* && (counter < worker->m_layersNumber)*/) {
emit dmxChanged(counter, (xmlReader->attributes().value("dmx").toLocal8Bit().toInt() - 1),xmlReader->attributes().value("universe").toLocal8Bit().toInt());
}
counter++;
}
}
if(xmlReader->hasError()) {
QMessageBox::critical(NULL,"xmlFile.xml Parse Error",xmlReader->errorString(), QMessageBox::Ok);
}
//close reader and flush file
xmlReader->clear();
xmlFile->close();
delete xmlReader;
delete xmlFile;
}
void settingsDialog::changeMediaPath(){
QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::Directory);
QStringList fileNames;
if (!dialog.exec())
return;
fileNames = dialog.selectedFiles();
QString file = fileNames.at(0);
ui->currentPath->clear();
ui->currentPath->setText(file);
emit pathChanged(file);
// m_olaInterface->setPath(file); //Setear en olaInterface
}

32
src/settingsdialog.h Normal file
View file

@ -0,0 +1,32 @@
#ifndef SETTINGSDIALOG_H
#define SETTINGSDIALOG_H
#include <QDialog>
#define LMS_CONF_FILE "lmsconf.xml"
namespace Ui {
class settingsDialog;
}
class settingsDialog : public QDialog
{
Q_OBJECT
public:
explicit settingsDialog(QWidget *parent = 0);
~settingsDialog();
void readXML();
private:
Ui::settingsDialog *ui;
signals:
void pathChanged(QString);
void dmxChanged(int layer, int address, int universe);
private slots:
void changeMediaPath();
};
#endif // SETTINGSDIALOG_H

340
src/settingsdialog.ui Normal file
View file

@ -0,0 +1,340 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>settingsDialog</class>
<widget class="QDialog" name="settingsDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>615</width>
<height>341</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>260</x>
<y>300</y>
<width>341</width>
<height>32</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
<property name="centerButtons">
<bool>true</bool>
</property>
</widget>
<widget class="QTabWidget" name="tabWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>591</width>
<height>281</height>
</rect>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>General</string>
</attribute>
<widget class="QLineEdit" name="currentPath">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>371</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>Path to medias</string>
</property>
</widget>
<widget class="QDialogButtonBox" name="choosePathButton">
<property name="geometry">
<rect>
<x>390</x>
<y>20</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Open</set>
</property>
</widget>
<widget class="QTextEdit" name="textEdit">
<property name="geometry">
<rect>
<x>10</x>
<y>60</y>
<width>561</width>
<height>121</height>
</rect>
</property>
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Cantarell'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Warning! &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Changing this will reload the library and will make the thumbnails for all the medias. This will take a while.&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Do not use in live!&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;You are warned.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</widget>
<widget class="QWidget" name="Video">
<property name="enabled">
<bool>true</bool>
</property>
<property name="accessibleName">
<string>Video</string>
</property>
<attribute name="title">
<string>Video</string>
</attribute>
<widget class="QLabel" name="winposLabel">
<property name="geometry">
<rect>
<x>30</x>
<y>130</y>
<width>121</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Window Position</string>
</property>
</widget>
<widget class="QSpinBox" name="winpositionx">
<property name="geometry">
<rect>
<x>20</x>
<y>90</y>
<width>55</width>
<height>27</height>
</rect>
</property>
<property name="maximum">
<number>5000</number>
</property>
</widget>
<widget class="QSpinBox" name="winsizex">
<property name="geometry">
<rect>
<x>20</x>
<y>40</y>
<width>55</width>
<height>27</height>
</rect>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::UpDownArrows</enum>
</property>
<property name="maximum">
<number>5000</number>
</property>
</widget>
<widget class="QSpinBox" name="winpositiony">
<property name="geometry">
<rect>
<x>80</x>
<y>90</y>
<width>55</width>
<height>27</height>
</rect>
</property>
<property name="maximum">
<number>5000</number>
</property>
</widget>
<widget class="QSpinBox" name="winsizey">
<property name="geometry">
<rect>
<x>80</x>
<y>40</y>
<width>55</width>
<height>27</height>
</rect>
</property>
<property name="maximum">
<number>5000</number>
</property>
</widget>
<widget class="QLabel" name="winsizeLabel">
<property name="geometry">
<rect>
<x>30</x>
<y>70</y>
<width>101</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Window Size</string>
</property>
</widget>
<widget class="QDialogButtonBox" name="restartButton">
<property name="geometry">
<rect>
<x>340</x>
<y>40</y>
<width>81</width>
<height>31</height>
</rect>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Reset</set>
</property>
</widget>
<widget class="QSpinBox" name="fps">
<property name="geometry">
<rect>
<x>20</x>
<y>180</y>
<width>59</width>
<height>31</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="fpsLabel">
<property name="geometry">
<rect>
<x>90</x>
<y>180</y>
<width>121</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>FPS</string>
</property>
</widget>
</widget>
<widget class="QWidget" name="DMX">
<attribute name="title">
<string>DMX</string>
</attribute>
<widget class="QSpinBox" name="universe">
<property name="geometry">
<rect>
<x>30</x>
<y>20</y>
<width>59</width>
<height>31</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="labelUniverse">
<property name="geometry">
<rect>
<x>100</x>
<y>20</y>
<width>101</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>OLA Universe</string>
</property>
</widget>
<widget class="QWidget" name="horizontalLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>90</y>
<width>516</width>
<height>131</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QSpinBox" name="dmx1"/>
</item>
<item>
<widget class="QSpinBox" name="dmx2"/>
</item>
<item>
<widget class="QSpinBox" name="dmx3"/>
</item>
<item>
<widget class="QSpinBox" name="dmx4"/>
</item>
<item>
<widget class="QSpinBox" name="dmx5"/>
</item>
<item>
<widget class="QSpinBox" name="dmx6"/>
</item>
<item>
<widget class="QSpinBox" name="dmx7"/>
</item>
<item>
<widget class="QSpinBox" name="dmx8"/>
</item>
</layout>
</widget>
<widget class="QLabel" name="labeDMXaddress">
<property name="geometry">
<rect>
<x>170</x>
<y>60</y>
<width>101</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>DMX Address</string>
</property>
</widget>
</widget>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>settingsDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>settingsDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View file

@ -16,10 +16,11 @@ v0.05 video:
Necesarios: Necesarios:
+ ¿Cómo transmitir el dmx a Pure Data? --> Unix Domain Socket parece lo mejor. Habría que hacer external en PD? + ¿Cómo transmitir el dmx a Pure Data? --> Unix Domain Socket parece lo mejor. Habría que hacer external en PD?
+ Mover ola2pd a la parte C++ (importar de glmixer-dmx) + Mover ola2pd a la parte C++
+ Mover fileselector a la parte C++ (importar de glmixer-dmx) + Mover fileselector a la parte C++
+ Crear base de datos al inicio en vez de leer ficheros del disco. Generar thumbs --> Importar de glmixer-dmx + Crear base de datos al inicio en vez de leer ficheros del disco.
+ Cambiar archivo de configuracion a xml (importar de glmixer-dmx) + Cambiar archivo de configuracion a xml (importar de glmixer-dmx)
- Añadir shaders, cambiar objetos Gem por uniform glsl. Alpha, chroma, ... - Añadir shaders, cambiar objetos Gem por uniform glsl. Alpha, chroma, ...
- Añadir la configuración de la ventana al archivo de configuración xlm - Añadir la configuración de la ventana al archivo de configuración xlm
- Documentación en inglés - Documentación en inglés