Merge branch 'v0.04'

Conflicts:
	scripts/install_precise.sh
This commit is contained in:
Santi Noreña 2013-05-07 14:32:57 +02:00
commit c91b183a81
10 changed files with 101 additions and 190 deletions

83
install_fr.txt Normal file
View file

@ -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 dengrenage qui doivent tourner. Si ce nest 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 dOLA
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 dinstallation selon votre système dexploitation.
./Install_wheezy.sh
ou
./Install_precise.sh
Confirmez Oui lorsquil 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 lapplication, cliquez sur « setup OLA »
b. Cliquez sur le bouton "Ajouter un univers"
c. Spécifiez le numéro de lunivers 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. Lunivers et le subnet peuvent être ultérieurement modifiés dans le fichier ~ /. Ola / wave-artnet.conf. Lunivers 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 longlet "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 lunivers 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. Larborescence de ce dossier doit respecter un ordre particulier pour fonctionner. Référez-vous à la section correspondante dans le manuel dutilisation. 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.

View file

@ -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!"

View file

@ -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

View file

@ -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()));
}
///////////////////////////////////////////////////////////////////

View file

@ -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"

View file

@ -1,7 +1,7 @@
TEMPLATE = app
TARGET = libremediaserver
QT += network script webkit
CONFIG += debug
CONFIG += release
DESTDIR = ./debug
HEADERS += libremediaserver.h \

View file

@ -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();
}

View file

@ -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

View file

@ -1,170 +0,0 @@
/*
* ola2pd - interface from Open Lighting Arquitecture to Pure Data
* v 0.03
*
* Copyright (c) 2012-2013 Santiago Noreña <belfegor@gmail.com>
*
* 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 <doj@cubic.org>
* and ola_dmxmonitor by Simon Newton (nomis52<AT>gmail.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 <m_pd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ola/BaseTypes.h>
#include <ola/Callback.h>
#include <ola/OlaCallbackClient.h>
#include <ola/OlaClientWrapper.h>
#include <ola/DmxBuffer.h>
#include <ola/io/SelectServer.h>
#include <ola/network/TCPSocket.h>
//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);
}

Binary file not shown.