diff --git a/install_fr.txt b/install_fr.txt new file mode 100644 index 0000000..adcb983 --- /dev/null +++ b/install_fr.txt @@ -0,0 +1,83 @@ +************************************************** ***************************** + +Libre Media Server – Un Média serveur open-source. +(C) 2012-2013 James Noren + +************************************************** ***************************** + +Développement et support: libremediaserver@gmail.com + +Page du projet: http://code.google.com/p/libremediaserver + +************************************************** ***************************** + +Ce programme est un logiciel libre. Vous pouvez le redistribuer et / ou le modifier selon les termes de la Licence Publique Générale GNU, telle que publiée par la Free Software Foundation, soit la version 3 de la Licence, ou (à votre choix) toute version ultérieure. + +Ce programme est distribué avec l'espoir qu'il puisse être utile, mais SANS AUCUNE GARANTIE, sans même la garantie implicite de COMMERCIALISATION ou D'ADAPTATION À UN USAGE PARTICULIER. Voir la Licence Publique Générale GNU pour plus de détails. + +Vous devriez avoir reçu une copie de la Licence Publique Générale GNU avec ce programme, sinon, écrivez à la Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +************************************************** ***************************** + +I. Conditions requises + +LMS est développé et testé sur Debian Wheezy et dérivés. + +Le logiciel nécessite une carte graphique OpenGL avec des pilotes Xorg et l'accélération matérielle correctement installés. Entrer "glxgears" dans un terminal devrait ouvrir une fenêtre avec trois roues d’engrenage qui doivent tourner. Si ce n’est pas le cas, consultez la documentation de votre distribution. + +Pour résoudre les dépendances, vous devez avoir une connexion Internet sur l'ordinateur pendant le processus d'installation. + +LMS communique avec Pure Data via le port TCP de 9195 à 9198. Open Lighting Architecture utilise le port 9090 de votre serveur web. Il est primordial que ces ports ne soient pas utilisés par d'autres applications. + +Vous n'avez pas besoin de deux ordinateurs pour gérer LibreMediaServer, mais le CTIP / MSEX ne fonctionnera pas sur localhost. +Au moment où le programme commence, vous devez disposer d'une interface réseau active, après avoir démarré. Si vous voulez contrôler le media serveur à partir d'un autre ordinateur, vous devez configurer la carte réseau du système d'exploitation selon le protocole que vous utilisez. Pour artnet utiliser une adresse IP de type 2.x.x.x avec un masque de sous réseau 255.0.0.0. + +II. Installation d’OLA +Ouvrez un terminal en tant que root et éditez le fichier source.list +sudo gedit /etc/apt/sources.list + +Ajoutez la ligne suivante : +Sous debian > deb http://apt.openlighting.org/debian/ wheezy main +Sous ubuntu > deb http://apt.openlighting.org/debian/ precise main + +Enregistrez et fermez l’éditeur de texte. +Exécutez la commande « apt-get update » pour mettre à jour la liste des dépôts. +Installez le logiciel OLA avec la commande apt-get +apt-get install ola +Lancer OLA +/etc/init.d/olad start + +III. Installation de libremediaserver. + +Ouvrez un terminal en tant que root et allez dans le répertoire des scripts avec la commande +cd /répertoire racine/scripts +Exécutez le fichier d’installation selon votre système d’exploitation. +./Install_wheezy.sh + +ou + +./Install_precise.sh + +Confirmez Oui lorsqu’il vous est demandé confirmation pour télécharger les fichiers et assurez-vous que vous êtes connecté à Internet. Ensuite, cliquez sur Non lorsque vous êtes invité à démarrer OLA daemon au démarrage du système. + +Lancer libremediaserver +cd/repertoire LMS +puis +./libremediaserver +IV. Configuration + +Cette étape n'est nécessaire qu’à la première exécution de LMS + +a. Dans le menu fichier de l’application, cliquez sur « setup OLA » + +b. Cliquez sur le bouton "Ajouter un univers" + +c. Spécifiez le numéro de l’univers concerné (ID) et donnez-lui un nom. Cochez dans la liste le ou les protocoles que vous souhaitez utilisez en vous assurant de faire attention au sens (input ou output) des données. +Si vous choisissez le protocole Artnet, entrez dans "Univers Id" le numéro de l'univers ArtNet pour lesquels vous souhaitez recevoir les signaux dmx. L’univers et le subnet peuvent être ultérieurement modifiés dans le fichier ~ /. Ola / wave-artnet.conf. L’univers par défaut est 0 et le subnet 0. + +Vous pouvez vérifier que l'information dmx circule en cliquant sur l'univers dans le menu de gauche, puis sur l’onglet "DMX Monitor". +Une fois la configuration terminée, fermez la fenêtre du logiciel OLA. +d. Configurez la réception dmx du logiciel en cochant la case « Read DMX » et en spécifiant le numéro de l’univers dmx précédemment configuré dans OLA (OLA universe). +e. Dans le logiciel LMS, cliquez sur le menu Fichier puis « Changer le répertoire de média » et sélectionnez le répertoire où sont vos médias. L’arborescence de ce dossier doit respecter un ordre particulier pour fonctionner. Référez-vous à la section correspondante dans le manuel d’utilisation. Définissez ensuite l'adresse DMX de chaque couche selon le patch de la table via les boites de dialogue sous chaque couche. + +Si vous utilisez le CITP / MSEX afin de générer les vignettes de vos couches, allez dans le menu CITP / MSEX et cliquez sur « créer des vignettes ». Les vignettes sont générées automatiquement. diff --git a/scripts/install_precise.sh b/scripts/install_precise.sh index b256fd4..7838ac4 100755 --- a/scripts/install_precise.sh +++ b/scripts/install_precise.sh @@ -18,7 +18,7 @@ if [ "$output" -eq "0" ]; then echo "deb http://apt.openlighting.org/ubuntu precise main" >> /etc/apt/sources.list fi apt-get update -apt-get -y --force-yes install ola libqtcore4 libqtgui4 libmagick++4 libav-tools +apt-get -y --force-yes install ola libqtcore4 libqtgui4 libmagick++4 libav-tools libftgl2 libavifile-0.7c2 libgmerlin-avdec1 libmpeg3-1 if [ "$?" -eq "0" ]; then echo "apt-get finish ok" else echo "apt-get return errors!" diff --git a/scripts/install_wheezy.sh b/scripts/install_wheezy.sh index 499ce6c..49304f1 100755 --- a/scripts/install_wheezy.sh +++ b/scripts/install_wheezy.sh @@ -8,13 +8,19 @@ ############################################################################### # Comprobamos root (( EUID )) && echo ‘You need to be root.’ && exit 1 -#Instalamos el paquete suministrado con el release -dpkg -i ola_0.8.26-1_i386.deb -# Install Pure Data y OLA -# libav para generar thumbs -apt-get -y --force-yes install libav-tools libqtcore4 libqtgui4 libmagick++5 +# Instalamos OLA desde el repositorio del proyecto +# copia de seguridad de sources.list +cp /etc/apt/sources.list /etc/apt/sources.list.old +# Comprobamos que el repositorio no está en soucers.list +output=`grep apt.openlighting.org /etc/apt/sources.list | wc -l` +if [ "$output" -eq "0" ]; then + #Añadimos el repositorio ola a sources.list + echo "deb http://apt.openlighting.org/debian/ wheezy main" >> /etc/apt/sources.list +fi +apt-get update +apt-get -y --force-yes install ola libav-tools libqtcore4 libqtgui4 libqt4-script libqtwebkit4 libftgl2 libmagick++5 tcl tk if [ "$?" -eq "0" ]; then echo "apt-get finish ok" - else "apt-get return errors!" + else echo "apt-get return errors!" fi -apt-get -f install + diff --git a/src/libremediaserver.cpp b/src/libremediaserver.cpp index 6d86e75..5f2f702 100644 --- a/src/libremediaserver.cpp +++ b/src/libremediaserver.cpp @@ -164,7 +164,7 @@ libreMediaServer::libreMediaServer(QStringList args, QWidget *parent) // Load the configuration open_start(); // Connect MSEx Timer - connect(m_msex,SIGNAL(frameRequest()), this, SLOT(sendFrame())); + connect(m_msex->n_timer, SIGNAL(timeout()), this, SLOT(sendFrame())); } /////////////////////////////////////////////////////////////////// diff --git a/src/libremediaserver.h b/src/libremediaserver.h index 54f27be..110fd4e 100644 --- a/src/libremediaserver.h +++ b/src/libremediaserver.h @@ -39,7 +39,7 @@ #include "MSEXDefines.h" #include "ui_libremediaserver.h" -#define VERSION "LibreMediaServer Version 0.04-2" +#define VERSION "LibreMediaServer Version 0.04-4-DebianWheezy" #define COPYRIGHT "(C) 2012-2013 Santi Norena libremediaserver@gmail.com" #define LICENSE "GPL 3 License. See LICENSE.txt and credits.txt for details" diff --git a/src/libremediaserver.pro b/src/libremediaserver.pro index b90147d..7d7b599 100644 --- a/src/libremediaserver.pro +++ b/src/libremediaserver.pro @@ -1,7 +1,7 @@ TEMPLATE = app TARGET = libremediaserver QT += network script webkit -CONFIG += debug +CONFIG += release DESTDIR = ./debug HEADERS += libremediaserver.h \ diff --git a/src/msex.cpp b/src/msex.cpp index 760ef76..54565e0 100644 --- a/src/msex.cpp +++ b/src/msex.cpp @@ -78,7 +78,6 @@ msex::~msex() { if (m_tcpServer) m_tcpServer->close(); - } /* QString msex::peerName() const @@ -475,7 +474,6 @@ void msex::parseRQSTPacket(const QByteArray &byteArray) if (!n_timer->isActive()) { n_timer->setInterval(1000 * Packet->fps); n_timer->start(); - connect(n_timer, SIGNAL(timeout()), this, SLOT(sendFrame())); } } @@ -607,8 +605,3 @@ void msex::startCitp(quint32 ipadd) qDebug()<<("CreatePeerInformationSocket failed"); } } - -void msex::sendFrame() -{ - emit frameRequest(); -} diff --git a/src/msex.h b/src/msex.h index 92853f5..e854a0a 100644 --- a/src/msex.h +++ b/src/msex.h @@ -99,10 +99,9 @@ protected slots: private slots: bool newPeer(); - void sendFrame(); // Slot temporizado para mandar una señal a libremediaserver::sendframe() para mandar un frame signals: - void frameRequest(); // Request a frame of the master preview + }; #endif // MEDIASERVER_H diff --git a/src/ola2pd/ola2pd.c b/src/ola2pd/ola2pd.c deleted file mode 100644 index 86c8ebb..0000000 --- a/src/ola2pd/ola2pd.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - * ola2pd - interface from Open Lighting Arquitecture to Pure Data - * v 0.03 - * - * Copyright (c) 2012-2013 Santiago Noreña - * - * ola2pd is an external for Pure Data and Max that reads one DMX512 - * universe from the Open Lighting Arquitecture and output it like a list - * of 512 channels. - * - * Based on dmxmonitor Copyright (C) 2001 Dirk Jagdmann - * and ola_dmxmonitor by Simon Newton (nomis52gmail.com) - * - * 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 2 - * 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. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -//static char *version = "$Revision: 0.01 $"; - -//#define DEBUG(x) - - -/*------------------------------------------------------------------------------ - * CLASS DEF - */ -static t_class *ola2pd_class; - -typedef struct _ola2pd { - t_object x_obj; - t_outlet *x_out; - unsigned int x_universe; - unsigned int x_counter; - OlaCallbackClient *x_clientpointer; -} t_ola2pd; - -struct timeval m_last_data; -OlaCallbackClientWrapper m_client; - - - -/*------------------------------------------------------------------------------ - * IMPLEMENTATION - */ - -static void ola2pd_open(t_ola2pd* x) -{ - if (x->x_clientpointer == NULL) - { - // set up ola connection - if (!m_client.Setup()) {post("%s: %s",thisName(), strerror(errno));} - x->x_clientpointer = m_client.GetClient(); - x->x_clientpointer->SetDmxCallback(ola::NewCallback(this, &ola2pd::NewDmx)); - x->xclientpointer->RegisterUniverse(m_universe,ola::REGISTER,ola::NewSingleCallback(this, &ola2pd::RegisterComplete)); - x->xclient.GetSelectServer()->RegisterRepeatingTimeout(5000,ola::NewCallback(this, &ola2pd::CheckDataLoss)); - post("ola2pd: Init complete. Start listening..."); - x->x_client.GetSelectServer()->Run(); - } -} - -static void ola2pd_close(t_ola2pd* x) -{ - if (x->x_clientpointer != NULL) - { - x->x_clientpointer->RegisterUniverse(x->x_universe,ola::UNREGISTER,ola::NewSingleCallback(this, &ola2pd::RegisterComplete)); - m_client.GetSelectServer()->Terminate(); - m_clientpointer = NULL; - post("ola2pd: Close complete"); - } -} - -static void ola2pd_universe(t_ola2pd* x, t_floatarg f) -{ - x->x_universe = f; -} - -static void ola2pd_bang(t_ola2pd* x) -{ - if (x->x_clientpointer != NULL) {post("%s listening on universe %d",thisName(),x->x_universe);} - else {post("%s configured on universe %d. Send open to start listening",thisName(),x->x_universe);} -} - -/* - * Called when there is new DMX data - */ - -void NewDmx(unsigned int universe,const DmxBuffer &buffer,const string &error) { - m_counter++; - gettimeofday(&m_last_data, NULL); - int z; - AtomList dmxlist; - dmxlist(512); - for(z=0; z < 512; z++){SetFloat(dmxlist[z],(buffer.Get(z)));} - ToOutList(0, dmxlist); -} - -/* - * Check for data loss. - */ - -bool CheckDataLoss() { - struct timeval now, diff; - if (timerisset(&m_last_data)) { - gettimeofday(&now, NULL); - timersub(&now, &m_last_data, &diff); - if (diff.tv_sec > 4 || (diff.tv_sec == 4 && diff.tv_usec > 4000000)) { - // loss of data - post("ola2pd: Can not read DMX!"); - } - } - return true; -} - -/* - * Control de errores en el registro de Universos en OLA - */ -void ola2pd::RegisterComplete(const string &error) { - if (!error.empty()) { - post("ola2pd:Register command failed"); - m_client.GetSelectServer()->Terminate(); - } -} - -static void *ola2pd_new() -{ - t_ola2pd *x = (t_ola2pd *)pd_new(ola2pd_class); - x->x_out = outlet_new((t_object *)x, &s_symbol); - x->x_pattern = gensym("empty"); - x->x_universe = 0; - x->x_counter = 0; - return (x); -} - -void ola2pd_setup(void) -{ - ola2pd_class = class_new(gensym("ola2pd"),(t_newmethod)ola2pd_new,0,sizeof(t_ola2pd),0,A_DEFFLOAT, 0); - /* add inlet datatype methods */ - class_addbang(ola2pd_class,(t_method) ola2pd_output); - class_addmethod(ola2pd_class,(t_method)ola2pd_file,gensym("open"),0); - class_addmethod(ola2pd_class,(t_method)ola2pd_type,gensym("close"),0); - class_addmethod(ola2pd_class,(t_method)ola2pd_type,gensym("universe"),A_FLOAT, 0); -} - - - - - diff --git a/src/ola2pd/ola2pd.pd_linux b/src/ola2pd/ola2pd.pd_linux deleted file mode 100755 index 0c95a32..0000000 Binary files a/src/ola2pd/ola2pd.pd_linux and /dev/null differ