diff --git a/veejay-current/ChangeLog b/veejay-current/ChangeLog index 7da999d4..1994b181 100644 --- a/veejay-current/ChangeLog +++ b/veejay-current/ChangeLog @@ -1,3 +1,5 @@ +0.7.2 + 0.7.1 + fixed color corruption in fib + removed veejay.spec from configure.in @@ -13,6 +15,10 @@ + added new effect 'Nervous' + added new effect 'Video Blobs' + fixed ticket #3 (editlist load bug) + + added new effect 'Video Boids' + + refurbished status line (all modi have 13 status bytes now) + + fixed minor bug in 'video boids' + + bumped version to 0.7.2 - render to history list mismatches frames in clip (too many) diff --git a/veejay-current/configure.in b/veejay-current/configure.in index 9260e333..27469489 100644 --- a/veejay-current/configure.in +++ b/veejay-current/configure.in @@ -4,7 +4,7 @@ dnl AC_CONFIG_SRCDIR([veejay/lav_io.c]) AC_INIT(veejay/veejay.c) VEEJAY_MAJOR_VERSION=0 VEEJAY_MINOR_VERSION=7 -VEEJAY_MICRO_VERSION=1 +VEEJAY_MICRO_VERSION=2 VEEJAY_VERSION=$VEEJAY_MAJOR_VERSION.$VEEJAY_MINOR_VERSION.$VEEJAY_MICRO_VERSION PACKAGE_VERSION=VEEJAY_VERSION diff --git a/veejay-current/libsample/sampleadm.c b/veejay-current/libsample/sampleadm.c index 8eabfd06..92ea7222 100644 --- a/veejay-current/libsample/sampleadm.c +++ b/veejay-current/libsample/sampleadm.c @@ -1761,8 +1761,9 @@ int clip_apply_loop_dec(int s1, double fps) { /* print clip status information into an allocated string str*/ -int clip_chain_sprint_status(int s1, int entry, int changed, int r_changed,char *str, - int frame) +//int clip_chain_sprint_status(int s1, int entry, int changed, int r_changed,char *str, +// int frame) +int clip_chain_sprint_status( int s1,int pfps, int frame, int mode, char *str ) { clip_info *clip; clip = clip_get(s1); @@ -1797,21 +1798,21 @@ int clip_chain_sprint_status(int s1, int entry, int changed, int r_changed,char clip->effect_chain[entry]->channel, this_clip_id - 1); */ - +/* sprintf(str, "%d %d %d %d %d %d %ld %ld %d %d %d %d %d %d %d %d %d %d %d %d %d %ld %ld %d %d %d %d %d %d %d %d %d %d %d", -/* 1 */ frame, +/ frame, clip->active_render_entry, r_changed, clip->selected_entry, -/* 5 */ clip->effect_toggle, + clip->effect_toggle, s1, clip->first_frame[clip->active_render_entry], clip->last_frame[clip->active_render_entry], clip->speed, clip->looptype, -/* 11 */ clip->max_loops, + clip->max_loops, clip->max_loops2, clip->next_clip_id, clip->depth, @@ -1820,7 +1821,7 @@ int clip_chain_sprint_status(int s1, int entry, int changed, int r_changed,char clip->audio_volume, 0, 0, -/*20 */ 0, + 0, clip->encoder_active, clip->encoder_duration, clip->encoder_succes_frames, @@ -1836,6 +1837,25 @@ int clip_chain_sprint_status(int s1, int entry, int changed, int r_changed,char clip->effect_chain[entry]->a_flag, clip->effect_chain[entry]->volume, this_clip_id ); + */ + + sprintf(str, + "%d %d %d %d %d %d %d %d %d %d %d %d %d", + pfps, + frame, + mode, + s1, + clip->effect_toggle, + clip->first_frame[ clip->active_render_entry ], + clip->last_frame[ clip->active_render_entry ], + clip->speed, + clip->looptype, + clip->encoder_active, + clip->encoder_duration, + clip->encoder_succes_frames, + clip_size()); + + return 0; } diff --git a/veejay-current/libsample/sampleadm.h b/veejay-current/libsample/sampleadm.h index fc5105ee..4b7655d6 100644 --- a/veejay-current/libsample/sampleadm.h +++ b/veejay-current/libsample/sampleadm.h @@ -226,8 +226,7 @@ extern int clip_set_chain_channel(int s1, int position, int channel); //int clip_chain_replace(int s1, int position, int effect_id); -extern int clip_chain_sprint_status(int s1, int entry, int changed, int r_changed, char *str, - int frame); +extern int clip_chain_sprint_status(int s1, int r, int f, int m, char *s ); extern int clip_set_render_entry(int s1, int entry); extern int clip_get_render_entry(int s1); diff --git a/veejay-current/libvje/vje.h b/veejay-current/libvje/vje.h index a68b835b..b356e7a5 100644 --- a/veejay-current/libvje/vje.h +++ b/veejay-current/libvje/vje.h @@ -27,6 +27,9 @@ #define MAX_EFFECTS 103 +#define PARAM_WIDTH (1<<0x2) +#define PARAM_HEIGHT (1<<0x3) +#define PARAM_FADER (1<<0x1) // keyframe-able parameter sets typedef struct @@ -67,6 +70,7 @@ typedef struct vj_effect_t { char **param_description; // unused. int *defaults; + int *flags; // parameter flags int *limits[2]; // [0] = min, [1] = max int extra_frame; // effect requires a secundary frame diff --git a/veejay-current/veejay/liblavplayvj.c b/veejay-current/veejay/liblavplayvj.c index 0d5e9e72..20c647fc 100644 --- a/veejay-current/veejay/liblavplayvj.c +++ b/veejay-current/veejay/liblavplayvj.c @@ -1159,7 +1159,7 @@ static void veejay_put_to_screen(veejay_t * info) { } -static char status_who[5]; +//static char status_who[5]; static char status_what[MESSAGE_SIZE]; static char status_msg[MESSAGE_SIZE+5]; //static int status_first =0; @@ -1171,11 +1171,11 @@ static void veejay_pipe_write_status(veejay_t * info) int d_len = 0; int res = 0; - sprintf(status_who, "%d %d %d", info->uc->playback_mode, info->audio, info->real_fps ); + // sprintf(status_who, "%d %d %d", info->uc->playback_mode, info->audio, info->real_fps ); switch (info->uc->playback_mode) { case VJ_PLAYBACK_MODE_CLIP: - /* get all current clip info (all buttons we can press in SDL) */ + /* get all current clip info if (clip_chain_sprint_status (info->uc->clip_id, clip_get_selected_entry(info->uc->clip_id), info->uc->chain_changed, info->uc->render_changed, status_what, @@ -1184,10 +1184,15 @@ static void veejay_pipe_write_status(veejay_t * info) "Status of clip %d is invalid", info->uc->clip_id); info->uc->playback_mode = VJ_PLAYBACK_MODE_PLAIN; - } + }*/ + if( clip_chain_sprint_status + (info->uc->clip_id, info->real_fps,settings->current_frame_num, info->uc->playback_mode, status_what ) != 0) + { + veejay_msg(VEEJAY_MSG_ERROR, "Invalid status!"); + } break; case VJ_PLAYBACK_MODE_PLAIN: - +/* sprintf(status_what, "%d %d %d %d %ld %f %ld %d %d %d", settings->min_frame_num, settings->current_frame_num, @@ -1200,21 +1205,41 @@ static void veejay_pipe_write_status(veejay_t * info) clip_size() - 1, vj_tag_size()-1 ); +*/ + sprintf(status_what, "%d %d %d %d %d %d %d %d %d %d %d %d %d", + (int) info->real_fps, + settings->current_frame_num, + info->uc->playback_mode, + 0, + 0, + settings->min_frame_num, + settings->max_frame_num, + settings->current_playback_speed, + 0, + 0, + 0, + 0, + 0 ); break; case VJ_PLAYBACK_MODE_TAG: - if (vj_tag_sprint_status(info->uc->clip_id, +/* if (vj_tag_sprint_status(info->uc->clip_id, vj_tag_get_selected_entry(info->uc->clip_id), info->uc->chain_changed, status_what) != 0) { veejay_msg(VEEJAY_MSG_DEBUG, "Status of stream is invalid"); info->uc->playback_mode = VJ_PLAYBACK_MODE_PLAIN; - } + }*/ + if( vj_tag_sprint_status( info->uc->clip_id, (int) info->real_fps, + settings->current_frame_num, info->uc->playback_mode, status_what ) != 0 ) + { + veejay_msg(VEEJAY_MSG_ERROR, "Invalid status!"); + } break; } - d_len = strlen(status_who) + strlen(status_what) + 1; + d_len = strlen(status_what); - snprintf(status_msg,MESSAGE_SIZE, "V%03dS%s %s", d_len, status_who, status_what); + snprintf(status_msg,MESSAGE_SIZE, "V%03dS%s", d_len, status_what); res = vj_server_status_send(info->status, status_msg, strlen(status_msg)); if( res < 0) { /* close command socket */ diff --git a/veejay-current/veejay/vj-tag.c b/veejay-current/veejay/vj-tag.c index bb42d2fe..02060f96 100644 --- a/veejay-current/veejay/vj-tag.c +++ b/veejay-current/veejay/vj-tag.c @@ -1817,14 +1817,15 @@ int vj_tag_get_frame(int t1, uint8_t *buffer[3], uint8_t * abuffer) } -int vj_tag_sprint_status(int tag_id, int entry, int changed, char *str) +//int vj_tag_sprint_status(int tag_id, int entry, int changed, char *str) +int vj_tag_sprint_status( int tag_id, int pfps,int frame, int mode, char *str ) { vj_tag *tag; tag = vj_tag_get(tag_id); if (!tag) return -1; - + /* sprintf(str, "%d %d %d %d %d %d %d %d %d %d %d %ld %ld %d %d %d %d %d %d %d %d %d %d %d", tag->id, @@ -1852,6 +1853,24 @@ int vj_tag_sprint_status(int tag_id, int entry, int changed, char *str) tag->effect_chain[entry]->a_flag, tag->effect_chain[entry]->volume, this_tag_id-1); + */ + + sprintf(str, + "%d %d %d %d %d %d %d %d %d %d %d %d %d", + pfps, + frame, + mode, + tag_id, + tag->effect_toggle, + 0, // no start, + 0, // no end, + 0, // no speed, + 0, // no looping + tag->encoder_active, + tag->encoder_duration, + tag->encoder_succes_frames, + vj_tag_size()-1); + return 0; } diff --git a/veejay-current/veejay/vj-tag.h b/veejay-current/veejay/vj-tag.h index e31e4c70..d3d1b67e 100644 --- a/veejay-current/veejay/vj-tag.h +++ b/veejay-current/veejay/vj-tag.h @@ -209,8 +209,7 @@ int vj_tag_enable(int t1); int vj_tag_disable(int t1); -int vj_tag_sprint_status(int tag_id, int entry, int changed, char *str); - +int vj_tag_sprint_status(int tag_id, int r, int f, int m, char *str ); //int vj_tag_init_encoder(int t1, char *filename, int format, // int w, int h, double fps, long seconds, int autoplay);