Merge branch 'v0.04'
Conflicts: scripts/install_precise.sh
This commit is contained in:
commit
c91b183a81
10 changed files with 101 additions and 190 deletions
83
install_fr.txt
Normal file
83
install_fr.txt
Normal 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 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.
|
|
@ -18,7 +18,7 @@ if [ "$output" -eq "0" ]; then
|
||||||
echo "deb http://apt.openlighting.org/ubuntu precise main" >> /etc/apt/sources.list
|
echo "deb http://apt.openlighting.org/ubuntu precise main" >> /etc/apt/sources.list
|
||||||
fi
|
fi
|
||||||
apt-get update
|
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
|
if [ "$?" -eq "0" ]; then
|
||||||
echo "apt-get finish ok"
|
echo "apt-get finish ok"
|
||||||
else echo "apt-get return errors!"
|
else echo "apt-get return errors!"
|
||||||
|
|
|
@ -8,13 +8,19 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Comprobamos root
|
# Comprobamos root
|
||||||
(( EUID )) && echo ‘You need to be root.’ && exit 1
|
(( EUID )) && echo ‘You need to be root.’ && exit 1
|
||||||
#Instalamos el paquete suministrado con el release
|
# Instalamos OLA desde el repositorio del proyecto
|
||||||
dpkg -i ola_0.8.26-1_i386.deb
|
# copia de seguridad de sources.list
|
||||||
# Install Pure Data y OLA
|
cp /etc/apt/sources.list /etc/apt/sources.list.old
|
||||||
# libav para generar thumbs
|
# Comprobamos que el repositorio no está en soucers.list
|
||||||
apt-get -y --force-yes install libav-tools libqtcore4 libqtgui4 libmagick++5
|
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
|
if [ "$?" -eq "0" ]; then
|
||||||
echo "apt-get finish ok"
|
echo "apt-get finish ok"
|
||||||
else "apt-get return errors!"
|
else echo "apt-get return errors!"
|
||||||
fi
|
fi
|
||||||
apt-get -f install
|
|
||||||
|
|
|
@ -164,7 +164,7 @@ libreMediaServer::libreMediaServer(QStringList args, QWidget *parent)
|
||||||
// Load the configuration
|
// Load the configuration
|
||||||
open_start();
|
open_start();
|
||||||
// Connect MSEx Timer
|
// Connect MSEx Timer
|
||||||
connect(m_msex,SIGNAL(frameRequest()), this, SLOT(sendFrame()));
|
connect(m_msex->n_timer, SIGNAL(timeout()), this, SLOT(sendFrame()));
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
#include "MSEXDefines.h"
|
#include "MSEXDefines.h"
|
||||||
#include "ui_libremediaserver.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 COPYRIGHT "(C) 2012-2013 Santi Norena libremediaserver@gmail.com"
|
||||||
#define LICENSE "GPL 3 License. See LICENSE.txt and credits.txt for details"
|
#define LICENSE "GPL 3 License. See LICENSE.txt and credits.txt for details"
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
TARGET = libremediaserver
|
TARGET = libremediaserver
|
||||||
QT += network script webkit
|
QT += network script webkit
|
||||||
CONFIG += debug
|
CONFIG += release
|
||||||
DESTDIR = ./debug
|
DESTDIR = ./debug
|
||||||
|
|
||||||
HEADERS += libremediaserver.h \
|
HEADERS += libremediaserver.h \
|
||||||
|
|
|
@ -78,7 +78,6 @@ msex::~msex()
|
||||||
{
|
{
|
||||||
if (m_tcpServer)
|
if (m_tcpServer)
|
||||||
m_tcpServer->close();
|
m_tcpServer->close();
|
||||||
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
QString msex::peerName() const
|
QString msex::peerName() const
|
||||||
|
@ -475,7 +474,6 @@ void msex::parseRQSTPacket(const QByteArray &byteArray)
|
||||||
if (!n_timer->isActive()) {
|
if (!n_timer->isActive()) {
|
||||||
n_timer->setInterval(1000 * Packet->fps);
|
n_timer->setInterval(1000 * Packet->fps);
|
||||||
n_timer->start();
|
n_timer->start();
|
||||||
connect(n_timer, SIGNAL(timeout()), this, SLOT(sendFrame()));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -607,8 +605,3 @@ void msex::startCitp(quint32 ipadd)
|
||||||
qDebug()<<("CreatePeerInformationSocket failed");
|
qDebug()<<("CreatePeerInformationSocket failed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void msex::sendFrame()
|
|
||||||
{
|
|
||||||
emit frameRequest();
|
|
||||||
}
|
|
||||||
|
|
|
@ -99,10 +99,9 @@ protected slots:
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
bool newPeer();
|
bool newPeer();
|
||||||
void sendFrame(); // Slot temporizado para mandar una señal a libremediaserver::sendframe() para mandar un frame
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void frameRequest(); // Request a frame of the master preview
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MEDIASERVER_H
|
#endif // MEDIASERVER_H
|
||||||
|
|
|
@ -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.
Loading…
Add table
Reference in a new issue