mirror of
https://github.com/game-stop/veejay.git
synced 2025-12-18 05:40:02 +01:00
Documentation updates, minor bugfixes
git-svn-id: svn://code.dyne.org/veejay/trunk@310 eb8d1916-c9e9-0310-b8de-cf0c9472ead5
This commit is contained in:
@@ -3,7 +3,7 @@ Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8" >
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8" >
|
||||||
<title>veejay HOWTO</title>
|
<title>veejay HOWTO (work in progress)</title>
|
||||||
</head>
|
</head>
|
||||||
<body><div>
|
<body><div>
|
||||||
<h2>Veejay HOWTO</h2>
|
<h2>Veejay HOWTO</h2>
|
||||||
@@ -38,14 +38,15 @@ This document describes how to use <b>veejay</b>, a visual 'music' instrument f
|
|||||||
|
|
||||||
<dt>3. <a href="veejay-HOWTO.html#3">Installation</a></dt>
|
<dt>3. <a href="veejay-HOWTO.html#3">Installation</a></dt>
|
||||||
<dd><dl><dt>3.1 <a href="veejay-HOWTO.html#3.1">Dependencies</a></dt>
|
<dd><dl><dt>3.1 <a href="veejay-HOWTO.html#3.1">Dependencies</a></dt>
|
||||||
<dt>3.2 <a href="veejay-HOWTO.html#3.2">Installing veejay</a></dt>
|
<dt>3.2 <a href="veejay-HOWTO.html#3.2">Installing veejay</a></dt>
|
||||||
<dt>3.3 <a href="veejay-HOWTO.html#3.3">Setting up multicast</a></dt></dl></dd>
|
<dt>3.3 <a href="veejay-HOWTO.html#3.3">Setting up multicast</a></dt></dl></dd>
|
||||||
|
|
||||||
<dt>4. <a href="veejay-HOWTO.html#4">Using Veejay</a></dt>
|
<dt>4. <a href="veejay-HOWTO.html#4">Using Veejay</a></dt>
|
||||||
<dd><dl><dt>4.1 <a href="veejay-HOWTO.html#4.1">Terminology</a></dt>
|
<dd><dl><dt>4.1 <a href="veejay-HOWTO.html#4.1">Terminology and limitations</a></dt>
|
||||||
<dt>4.2 <a href="veejay-HOWTO.html#4.2">VIMS</a></dt>
|
<dt>4.2 <a href="veejay-HOWTO.html#4.2">VIMS</a></dt>
|
||||||
<dt>4.3 <a href="veejay-HOWTO.html#4.3">The keyboard interface</a></dt>
|
<dt>4.3 <a href="veejay-HOWTO.html#4.3">The keyboard interface</a></dt>
|
||||||
<dt>4.4 <a href="veejay-HOWTO.html#4.4">Recording video</a></dt>
|
<dt>4.4 <a href="veejay-HOWTO.html#4.4">Recording video</a></dt>
|
||||||
|
<dt>4.5 <a href="veejay-HOWTO.html#4.5">Streaming video</a></dt>
|
||||||
<dt>4.6 <a href="veejay-HOWTO.html#4.5">Other utilities</a></dt></dt></dl></dd>
|
<dt>4.6 <a href="veejay-HOWTO.html#4.5">Other utilities</a></dt></dt></dl></dd>
|
||||||
|
|
||||||
<dt>5<a href="veejay-HOWTO.html#5">Popular packages</a></dt>
|
<dt>5<a href="veejay-HOWTO.html#5">Popular packages</a></dt>
|
||||||
@@ -157,6 +158,8 @@ As of version 0.8 Veejay comes with a graphical user interface GVeejay.
|
|||||||
As of version 0.8 Veejay comes with a graphical user interface GVeejay.
|
As of version 0.8 Veejay comes with a graphical user interface GVeejay.
|
||||||
You can use GVeejay to connect (and switch) to any Veejay on the network , alternativly
|
You can use GVeejay to connect (and switch) to any Veejay on the network , alternativly
|
||||||
it can launch a veejay locally on your machine.<br>
|
it can launch a veejay locally on your machine.<br>
|
||||||
|
Use GVeejay to customize keyboard mappings and save the configuration file.<br>
|
||||||
|
Gveejay supports hot switching between multiple running instances of veejay,
|
||||||
simply disconnect and connect to another veejay.<br>
|
simply disconnect and connect to another veejay.<br>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -326,7 +329,11 @@ in your kernel configuration.
|
|||||||
in your kernel configuration.
|
in your kernel configuration.
|
||||||
<br><br>
|
<br><br>
|
||||||
Finally you need to add a multicast route :
|
Finally you need to add a multicast route :
|
||||||
<pre>
|
<pre>
|
||||||
|
for 1 ethernet device:
|
||||||
|
# route add -net 224.0.0.0 netmask 255.255.255.0 dev eth0
|
||||||
|
|
||||||
|
for > 1
|
||||||
# route add -net 224.0.0.0 netmask 255.255.255.0 gw 192.168.100.1 dev eth1
|
# route add -net 224.0.0.0 netmask 255.255.255.0 gw 192.168.100.1 dev eth1
|
||||||
</pre>
|
</pre>
|
||||||
<br>
|
<br>
|
||||||
@@ -349,12 +356,14 @@ $ veejay -d
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
</p>
|
</p>
|
||||||
<h2><a name="4.1">4.1 Terminology and limitations</a></h2><p>
|
<h2><a name="4.1">4.1 Terminology and limitations</a></h2><p>
|
||||||
Veejay has a number of playback modes, each playback mode is unique and defines more or less
|
Veejay has a number of playback modes, each playback mode is unique and defines more or less
|
||||||
a different functionality:<br><br>
|
a different functionality:<br><br>
|
||||||
Also, note that veejay runs in only 1 resolution at a time (depending on the video dimensions of
|
Also, note that veejay runs in only 1 resolution at a time (depending on the video dimensions of
|
||||||
the first loaded movie). All movies loaded must have identical properties, otherwise veejay will not start.
|
the first loaded movie). All movies loaded must have identical properties, otherwise veejay will not start.
|
||||||
|
This limitation is also valid when streaming video from veejay to another veejay.<br>
|
||||||
|
|
||||||
<br><br>
|
<br><br>
|
||||||
<table border=0 width=80%>
|
<table border=0 width=80%>
|
||||||
<caption><h4>Playback modes in veejay</h4></caption>
|
<caption><h4>Playback modes in veejay</h4></caption>
|
||||||
@@ -398,7 +407,132 @@ This limitation is also valid when streaming video from veejay to another veejay
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<h2><a name="4.2">4.2 VIMS</a></h2><p>
|
||||||
|
<pre>
|
||||||
|
|
||||||
|
Use the command
|
||||||
|
$ veejay -u -n |less
|
||||||
|
|
||||||
|
to dump all VIMS messages.
|
||||||
|
|
||||||
|
1.1 Message Format
|
||||||
|
==================
|
||||||
|
|
||||||
|
A message is described as:
|
||||||
|
|
||||||
|
<Action Identifer> : <Argument List> ;
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
080:;
|
||||||
|
099:0 0;
|
||||||
|
|
||||||
|
|
||||||
|
<Action Identifier>
|
||||||
|
The action identifier is a 3 digit number describing a Network Event
|
||||||
|
The colon is used to indicate the start of the Argument List and must be given.
|
||||||
|
|
||||||
|
|
||||||
|
<Argument List>
|
||||||
|
The Argument List is described by a printf() style formatted template
|
||||||
|
which describes the number and type of arguments to be used.
|
||||||
|
|
||||||
|
The semicolon must be given to indicate the end of this message
|
||||||
|
|
||||||
|
1.2 Bundled Messages
|
||||||
|
====================
|
||||||
|
|
||||||
|
A message bundle is a special message that contains an ordered list of at least 1 or more messages. Each message is executed from left to right (first in, first out) while parsing the bundle.
|
||||||
|
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
5032|BUN:002{361:0 3 56 230 93 0;361:0 4 1 7;}|
|
||||||
|
5033|BUN:003{361:0 3 56 230 93 0;361:0 4 1 7;361:0 5 1 7;}|
|
||||||
|
5034|BUN:003{361:0 3 56 230 93 0;361:0 4 1 7;361:0 5 1 8;}|
|
||||||
|
|
||||||
|
|
||||||
|
A message bundle is described as:
|
||||||
|
|
||||||
|
BUN: <Number of Messages> {
|
||||||
|
<Action Idenfifier> : <Argument List> ;
|
||||||
|
<Action Identifier> : <Argument List> ;
|
||||||
|
...
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
The token 'BUN:' indicates the start of a messaage bundle, the first 3 digit numeric value represents the total number of messages in the bundle. The '{' symbol indicates the start of a message block and is ended with '};' or just '}'.
|
||||||
|
|
||||||
|
|
||||||
|
1.3 Format of an Action File/Attaching Keys to Bundles
|
||||||
|
======================================================
|
||||||
|
|
||||||
|
<501 - 599> | <message bundle> |
|
||||||
|
|
||||||
|
The contents of some action file can be :
|
||||||
|
|
||||||
|
516|BUN:001{355:;}|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The message bundle BUN sends '355' for clear effect chain.
|
||||||
|
This message bundle is attached to action identifier 516.
|
||||||
|
|
||||||
|
A key is attached to this function trough using the GUI (GVeejay)
|
||||||
|
or by using:
|
||||||
|
|
||||||
|
|
||||||
|
DYNAMIC KEYMAPPING:
|
||||||
|
==================
|
||||||
|
|
||||||
|
"083:516 <sdl symbol> <modifier> <optional arguments>;"
|
||||||
|
|
||||||
|
|
||||||
|
The message bundle can be attached to a key , for example 'SHIFT + A' by sending
|
||||||
|
|
||||||
|
083:516 97 3;
|
||||||
|
|
||||||
|
Which attaches bundle '516' to SDL key '97' using a modifier '3', which is SHIFT.
|
||||||
|
|
||||||
|
Modifiers: 0 = none, 1 = alt , 2 = ctrl, 3 = shift
|
||||||
|
Keys : see SDLkeysym.h somewhere in include/SDL/
|
||||||
|
|
||||||
|
If the number 0 is used for an event number, a given key combination can be
|
||||||
|
unset (wiped) :
|
||||||
|
|
||||||
|
083:0 97 3;
|
||||||
|
|
||||||
|
Alternativly, you can bind keys to any action identifier. The complete
|
||||||
|
list can be viewd by typing veejay -u |less or with Gveejay.
|
||||||
|
|
||||||
|
083:20 97 0 4;
|
||||||
|
|
||||||
|
The example above sets key 'a' to 'change video speed to 4'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
General description of VIMS messages
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
|
||||||
|
Some reserved numbers:
|
||||||
|
|
||||||
|
clip id 0 : select currently playing clip
|
||||||
|
clip id -1 : select highest clip number
|
||||||
|
chain entry -1 : select current chain entry
|
||||||
|
stream id 0 : select currently playing stream
|
||||||
|
stream id -1 : select highest stream number
|
||||||
|
key modifier : 0 = normal, 1= alt , 2 = ctrl, 3 = shift
|
||||||
|
frame -1 : use highest possible frame number (usually num video frames)
|
||||||
|
playback mode : 0 = clip, 1 = stream, 2 = plain
|
||||||
|
data format : yv16 (yuv 4:2:2 raw) , mpeg4, divx, msmpeg4v3,
|
||||||
|
div3, dvvideo, dvsd, mjpeg, i420 and yv12 (yuv 4:2:0 raw)
|
||||||
|
loop type : 0 = no looping, 1 = normal loop, 2 = pingpong (bounce) loop
|
||||||
|
</pre>
|
||||||
|
<br><br>
|
||||||
|
<h2><a name="#4.2"></a>sayVIMS</h2>
|
||||||
<br><br>
|
<br><br>
|
||||||
sayVIMS is a commandline utility distributed with the veejay package,
|
sayVIMS is a commandline utility distributed with the veejay package,
|
||||||
it allows you to give short commands in interactive mode<br><br>
|
it allows you to give short commands in interactive mode<br><br>
|
||||||
@@ -438,7 +572,6 @@ scripts that output a VIMS script.<br>
|
|||||||
scripts that output a VIMS script.<br>
|
scripts that output a VIMS script.<br>
|
||||||
<pre>
|
<pre>
|
||||||
sayVIMS -f advocate.vims -h localhost -p 3490
|
sayVIMS -f advocate.vims -h localhost -p 3490
|
||||||
</pre>
|
|
||||||
</pre>
|
</pre>
|
||||||
<br>
|
<br>
|
||||||
Alternativly, you can start a secundary veejay and stream from peer to peer in uncompressed video:
|
Alternativly, you can start a secundary veejay and stream from peer to peer in uncompressed video:
|
||||||
@@ -575,7 +708,59 @@ It is possible to start veejay headless and have it write all video data to
|
|||||||
It is possible to start veejay headless and have it write all video data to
|
It is possible to start veejay headless and have it write all video data to
|
||||||
a (special) file for further processing.<br><br>
|
a (special) file for further processing.<br><br>
|
||||||
Refer to chapter <a href="veejay-HOWTO.html#5.3">5.3</a> for some examples.<br><br>
|
Refer to chapter <a href="veejay-HOWTO.html#5.3">5.3</a> for some examples.<br><br>
|
||||||
|
|
||||||
|
<h2><a name="4.5">4.5 Streaming video</a></h2><p>
|
||||||
|
You can create an input stream to read video coming from a video4linux device, from a pipe
|
||||||
|
or from a network socket (both unicast and multicast).<br>
|
||||||
|
<h3><a name="4.5.1">4.5.1 video4linux</a></h3>
|
||||||
|
To open a video4linux device use gveejay or type the command:<br>
|
||||||
|
<br>
|
||||||
|
<pre>
|
||||||
|
$ sayVIMS 240:0 1;
|
||||||
|
</pre>
|
||||||
|
The selector '240' tells veejay to open a video4linux device, the first argument '0' indicates
|
||||||
|
the device number (i.e. /dev/video0) and the last argument '1' indicates the video in port
|
||||||
|
of your capture card (in this case composite).<br>
|
||||||
|
Veejay will create a new stream see <a href="#4.4">chapter 4.4</a> for activating the stream.<br>
|
||||||
|
</p>
|
||||||
|
<h3><a name="4.5.2">4.5.2 pipe</a></h3>
|
||||||
|
Veejay supports reading video data from a pipe (FIFO) by means of an input stream.<br>
|
||||||
|
The only supported transport format is yuv4mpeg (yuv 4:2:0). When playing YUV 4:2:2
|
||||||
|
the video stream will be sampled to YUV 4:2:0 and vice versa<br>
|
||||||
|
You can create the input stream by typing the command
|
||||||
|
<pre>
|
||||||
|
$ sayVIMS 243:/tmp/stream.yuv;
|
||||||
|
</pre>
|
||||||
|
<h3><a name="4.5.3">4.5.3 network</a></h3>
|
||||||
|
To get frames from another running veejay, use the command:
|
||||||
|
<br>
|
||||||
|
<pre>
|
||||||
|
$ sayVIMS 245:<hostname> <portnum>;
|
||||||
|
</pre>
|
||||||
|
For example, sayVIMS 245:localhost 5000;<br>
|
||||||
|
<br>
|
||||||
|
If you want to send the same video to multiple running veejays accross the network,
|
||||||
|
you can save bandwith by starting the veejay you wish to use as server with the -V option.
|
||||||
|
<br>
|
||||||
|
You can use the -V <multicast address> option to start an optional multicast frame sender.<br>
|
||||||
|
First, you need a multicast route in your routing table. See chapter <a href="#3.3">3.3</a> for
|
||||||
|
a short introduction
|
||||||
|
or consult a howto that disuccess setting up multicast for your operating system.
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
$ veejay -V 224.0.0.50 -p 5000
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
Start another veejay, and use this command:
|
||||||
|
<br>
|
||||||
|
<pre>
|
||||||
|
$ sayVIMS "246:5000 224.0.0.50;"
|
||||||
|
</pre>
|
||||||
|
To create a new input stream. Start more veejays and use sayVIMS with the -p option to give
|
||||||
|
it a port offset number. <br>
|
||||||
|
</p>
|
||||||
<h2><a name="4.6">4.6 Other utilities</a></h2><p>
|
<h2><a name="4.6">4.6 Other utilities</a></h2><p>
|
||||||
|
|
||||||
Currently there are 4 extra utilities <b>yuv2rawdv</b> , <b>rawdv2yuv</b> , <b>sayVIMS</b> and <b>any2yuv</b> included in the veejay package for encoding
|
Currently there are 4 extra utilities <b>yuv2rawdv</b> , <b>rawdv2yuv</b> , <b>sayVIMS</b> and <b>any2yuv</b> included in the veejay package for encoding
|
||||||
|
|||||||
@@ -5,16 +5,18 @@ veejay - a visual (video) instrument and video sampler for GNU/Linux
|
|||||||
.B veejay [options] Videofile1 [Videofile2 ... VideofileN]
|
.B veejay [options] Videofile1 [Videofile2 ... VideofileN]
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.B veejay
|
.B veejay
|
||||||
can be used to manipulate video in a realtime environment i.e. 'VJ'
|
Veejay is a visual instrument and realtime video sampler. It allos you
|
||||||
for visual performances or for (automated) interactive video installations.
|
to "play" the video like you would play a Piano and it allows you to
|
||||||
It provides mechanisms for simple non-desctructive editing, loop-based
|
record the resulting video directly to disk for immediate playback (video sampling).
|
||||||
clip editing (video sampling) ,capturing from multiple streams, direct-to-disk
|
|
||||||
recording in various formats , mixing from multiple sources to one
|
Thus, Veejay can be operated live by using the keyboard (which is 100% user definable)
|
||||||
and network streaming (both unicast and multicast in uncompressed video)
|
and remotely over network (both unicast and multicast) using an inhouse message
|
||||||
Also, it can communicate with other sound and/or video applications
|
system that allows mapping of various protocols on top of it, including OSC.
|
||||||
using the Open Sound Control (or through an inhouse protocol called 'VIMS')
|
|
||||||
Veejay uses Jack for transporting Audio (currently only output) but its support
|
Veejay is beeing developed in the hope it will be usefull for VJ's , media artists
|
||||||
is currently limited.
|
theathers and other interested users that want to use Free Software for their
|
||||||
|
performances and/or video installations.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.SH Supported video codecs
|
.SH Supported video codecs
|
||||||
.TP
|
.TP
|
||||||
|
|||||||
@@ -55,6 +55,10 @@ static void vj_flush(int frames) {
|
|||||||
{
|
{
|
||||||
frames -- ;
|
frames -- ;
|
||||||
}
|
}
|
||||||
|
if(n == -1)
|
||||||
|
{
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -213,6 +217,8 @@ int main(int argc, char *argv[])
|
|||||||
bzero( buf, 65535 );
|
bzero( buf, 65535 );
|
||||||
|
|
||||||
client = vj_client_alloc( 0,0,0 );
|
client = vj_client_alloc( 0,0,0 );
|
||||||
|
if(host_name == NULL)
|
||||||
|
host_name = strdup( "localhost" );
|
||||||
|
|
||||||
if(!vj_client_connect( client, host_name,group_name, port_num ))
|
if(!vj_client_connect( client, host_name,group_name, port_num ))
|
||||||
{
|
{
|
||||||
@@ -258,11 +264,14 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(buf[0]!='#') {
|
if(buf[0]!='#')
|
||||||
int len = strlen(buf)-1;
|
{
|
||||||
if(len>0){
|
int len = strlen(buf);
|
||||||
buf[len] = '\0';
|
if(len>0)
|
||||||
vj_client_send(client,V_CMD,buf);}
|
{
|
||||||
|
buf[len] = '\0';
|
||||||
|
vj_client_send(client,V_CMD,buf);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1115,7 +1115,7 @@ int vj_event_parse_msg(veejay_t *v, char *msg)
|
|||||||
|
|
||||||
|
|
||||||
char *tmp = NULL;
|
char *tmp = NULL;
|
||||||
int msg_len = strlen(msg)-1;
|
int msg_len = strlen(msg);
|
||||||
int id = 0;
|
int id = 0;
|
||||||
bzero(args,150);
|
bzero(args,150);
|
||||||
/* message is at least 5 bytes in length */
|
/* message is at least 5 bytes in length */
|
||||||
@@ -1126,6 +1126,18 @@ int vj_event_parse_msg(veejay_t *v, char *msg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Sometimes, messages can have a trailing sequence of characters (like newline or spaces)*/
|
||||||
|
while( msg[msg_len] != ';' )
|
||||||
|
{
|
||||||
|
msg[msg_len] = '\0';
|
||||||
|
msg_len --;
|
||||||
|
if(msg_len < MSG_MIN_LEN)
|
||||||
|
{
|
||||||
|
veejay_msg(VEEJAY_MSG_ERROR, "(VIMS) Syntax error: Message does not end with ';'");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
tmp = strndup( msg, 3 );
|
tmp = strndup( msg, 3 );
|
||||||
if( strncasecmp( tmp, "bun", 3) == 0 )
|
if( strncasecmp( tmp, "bun", 3) == 0 )
|
||||||
{
|
{
|
||||||
@@ -1150,6 +1162,8 @@ int vj_event_parse_msg(veejay_t *v, char *msg)
|
|||||||
if( msg[3] != 0x3a || msg[msg_len] != ';' )
|
if( msg[3] != 0x3a || msg[msg_len] != ';' )
|
||||||
{
|
{
|
||||||
veejay_msg(VEEJAY_MSG_ERROR,"(VIMS) Syntax error, use \"<VIMS selector>:<arguments>;\" ");
|
veejay_msg(VEEJAY_MSG_ERROR,"(VIMS) Syntax error, use \"<VIMS selector>:<arguments>;\" ");
|
||||||
|
veejay_msg(VEEJAY_MSG_ERROR,"(VIMS) [%s] : '%c' , '%c' ", msg,
|
||||||
|
msg[3], msg[msg_len] );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1195,7 +1209,6 @@ int vj_event_parse_msg(veejay_t *v, char *msg)
|
|||||||
{
|
{
|
||||||
const char *fmt = vj_event_list[id].format;
|
const char *fmt = vj_event_list[id].format;
|
||||||
const int np = vj_event_list[id].num_params;
|
const int np = vj_event_list[id].num_params;
|
||||||
int offlen = ((msg_len-4) > 0 ? 4 : msg_len );
|
|
||||||
int fmt_offset = 1; // fmt offset
|
int fmt_offset = 1; // fmt offset
|
||||||
int i;
|
int i;
|
||||||
int offset = 0; // arguments offset
|
int offset = 0; // arguments offset
|
||||||
@@ -2062,8 +2075,7 @@ int vj_event_register_keyb_event(int event_id, int symbol, int modifier, const
|
|||||||
void vj_event_init_network_events()
|
void vj_event_init_network_events()
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
int net_id = 0;
|
||||||
int net_id;
|
|
||||||
for( i = 1; vj_event_list[i].event_id != 0; i ++ )
|
for( i = 1; vj_event_list[i].event_id != 0; i ++ )
|
||||||
{
|
{
|
||||||
net_id = vj_event_list[i].event_id;
|
net_id = vj_event_list[i].event_id;
|
||||||
@@ -2341,7 +2353,7 @@ void vj_event_send_bundles(void *ptr, const char format[], va_list ap)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const char *buf = "0000";
|
char *buf = "0000";
|
||||||
SEND_MSG(v,buf);
|
SEND_MSG(v,buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2401,7 +2413,7 @@ void vj_event_send_vimslist(void *ptr, const char format[], va_list ap)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const char *buf = "0000";
|
char *buf = "0000";
|
||||||
SEND_MSG(v,buf);
|
SEND_MSG(v,buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6040,7 +6052,7 @@ void vj_event_tag_rec_offline_start(void *ptr, const char format[], va_list ap)
|
|||||||
if( vj_tag_exists(args[0]))
|
if( vj_tag_exists(args[0]))
|
||||||
{
|
{
|
||||||
char tmp[255];
|
char tmp[255];
|
||||||
char time[20];
|
|
||||||
int format = _recorder_format;
|
int format = _recorder_format;
|
||||||
char prefix[40];
|
char prefix[40];
|
||||||
sprintf(prefix, "stream-%02d", args[0]);
|
sprintf(prefix, "stream-%02d", args[0]);
|
||||||
@@ -6710,7 +6722,7 @@ void vj_event_send_tag_list ( void *ptr, const char format[], va_list ap )
|
|||||||
if( ((vj_tag_size()-1) <= 0) || (args[0] >= vj_tag_size()-1))
|
if( ((vj_tag_size()-1) <= 0) || (args[0] >= vj_tag_size()-1))
|
||||||
{
|
{
|
||||||
/* there are no tags */
|
/* there are no tags */
|
||||||
const char *empty = "00000";
|
char *empty = "00000";
|
||||||
veejay_msg(VEEJAY_MSG_ERROR, "No Streams (%d) or asking for non existing (%d)",
|
veejay_msg(VEEJAY_MSG_ERROR, "No Streams (%d) or asking for non existing (%d)",
|
||||||
vj_tag_size()-1,args[0]);
|
vj_tag_size()-1,args[0]);
|
||||||
SEND_MSG(v, empty);
|
SEND_MSG(v, empty);
|
||||||
@@ -7061,7 +7073,7 @@ void vj_event_send_clip_history_list ( void *ptr, const char format[], va_list a
|
|||||||
for( entry = 0; entry < CLIP_MAX_RENDER; entry ++ )
|
for( entry = 0; entry < CLIP_MAX_RENDER; entry ++ )
|
||||||
{
|
{
|
||||||
// check if entry is playable
|
// check if entry is playable
|
||||||
void *data = clip_get_user_data( id );
|
//void *data = clip_get_user_data( id );
|
||||||
editlist **el = (editlist**) clip_get_user_data( id );
|
editlist **el = (editlist**) clip_get_user_data( id );
|
||||||
bzero(hisline,25);
|
bzero(hisline,25);
|
||||||
if(el && el[entry])
|
if(el && el[entry])
|
||||||
|
|||||||
Reference in New Issue
Block a user