diff --git a/veejay-current/veejay-client/share/gveejay.reloaded.glade b/veejay-current/veejay-client/share/gveejay.reloaded.glade
index e9a7be0a..4c15ae31 100644
--- a/veejay-current/veejay-client/share/gveejay.reloaded.glade
+++ b/veejay-current/veejay-client/share/gveejay.reloaded.glade
@@ -17355,6 +17355,97 @@ YUV (current)
+
+
+
+ True
+ False
+ 0
+
+
+
+ True
+ Loop:
+ False
+ False
+ GTK_JUSTIFY_LEFT
+ False
+ False
+ 0.5
+ 0.5
+ 0
+ 0
+ PANGO_ELLIPSIZE_NONE
+ -1
+ False
+ 0
+
+
+ 0
+ False
+ False
+
+
+
+
+
+ True
+ 0
+ False
+ False
+ GTK_JUSTIFY_LEFT
+ False
+ False
+ 0.5
+ 0.5
+ 0
+ 0
+ PANGO_ELLIPSIZE_NONE
+ -1
+ False
+ 0
+
+
+ 4
+ False
+ False
+
+
+
+
+
+ True
+ 1
+ False
+ False
+ GTK_JUSTIFY_LEFT
+ False
+ False
+ 0.5
+ 0.5
+ 0
+ 0
+ PANGO_ELLIPSIZE_NONE
+ -1
+ False
+ 0
+
+
+ 8
+ False
+ False
+
+
+
+
+ 4
+ 5
+ 1
+ 2
+ fill
+ fill
+
+
0
diff --git a/veejay-current/veejay-client/src/common.h b/veejay-current/veejay-client/src/common.h
index 9f64afd7..8e96b720 100644
--- a/veejay-current/veejay-client/src/common.h
+++ b/veejay-current/veejay-client/src/common.h
@@ -19,7 +19,7 @@
#ifndef GVRCOMMON_H
#define GVRCOMMON_H
#define STATUS_BYTES 150
-#define STATUS_TOKENS 32
+#define STATUS_TOKENS 34
#define STATUS_LENGTH 512
#define VEEJAY_CODENAME VERSION
/* Status bytes */
@@ -52,7 +52,9 @@
#define FADE_METHOD 27
#define FADE_ENTRY 28
#define FADE_ALPHA 29
-#define SAMPLE_INV_COUNT 30
+#define SAMPLE_LOOP_STAT 30
+#define SAMPLE_LOOP_STAT_STOP 31
+#define SAMPLE_INV_COUNT 32
#define CURRENT_ENTRY 15
#define MODE_PLAIN 2
#define MODE_SAMPLE 0
diff --git a/veejay-current/veejay-client/src/sequence.c b/veejay-current/veejay-client/src/sequence.c
index a104e74d..2f8ab7fa 100644
--- a/veejay-current/veejay-client/src/sequence.c
+++ b/veejay-current/veejay-client/src/sequence.c
@@ -357,7 +357,7 @@ static int veejay_process_status( veejay_preview_t *vp, veejay_track_t *v )
if( k == -1 && v->is_master )
reloaded_schedule_restart();
- veejay_memset( v->status_tokens,0, sizeof(sizeof(int) * STATUS_TOKENS));
+ veejay_memset( v->status_tokens,0, sizeof(int) * STATUS_TOKENS);
status_to_arr( (char*) v->status_buffer, v->status_tokens );
return 1;
}
diff --git a/veejay-current/veejay-client/src/utils.c b/veejay-current/veejay-client/src/utils.c
index 827cd030..584f3459 100644
--- a/veejay-current/veejay-client/src/utils.c
+++ b/veejay-current/veejay-client/src/utils.c
@@ -28,7 +28,7 @@
int status_to_arr( char *status, int *array )
{
- int n = sscanf(status, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
+ int n = sscanf(status, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
array + 0,
array + 1,
array + 2,
@@ -59,7 +59,9 @@ int status_to_arr( char *status, int *array )
array + 27,
array + 28,
array + 29,
- array + 30 );
+ array + 30,
+ array + 31,
+ array + 32 );
return n;
}
diff --git a/veejay-current/veejay-client/src/vj-api.c b/veejay-current/veejay-client/src/vj-api.c
index 6ede1dcc..52d8c7fd 100644
--- a/veejay-current/veejay-client/src/vj-api.c
+++ b/veejay-current/veejay-client/src/vj-api.c
@@ -540,6 +540,7 @@ enum {
MACRO_LOOP = 2,
MACRO_MSG_SEQ = 3,
MACRO_VIMS = 4,
+ MACRO_VIMS_DESCR = 5,
};
enum
@@ -1237,7 +1238,7 @@ gboolean vims_macro_selection_func( GtkTreeSelection *sel, GtkTreeModel *model,
gtk_tree_model_get( model, &iter, MACRO_MSG_SEQ, &seq_no, -1);
gtk_tree_model_get( model, &iter, MACRO_LOOP, &loop_num, -1);
gtk_tree_model_get( model, &iter, MACRO_VIMS, &message, -1 );
-
+
macro_line[0] = frame_num;
macro_line[1] = dup_num;
macro_line[2] = loop_num;
@@ -1256,7 +1257,7 @@ gboolean vims_macro_selection_func( GtkTreeSelection *sel, GtkTreeModel *model,
static void setup_macros()
{
GtkWidget *tree = glade_xml_get_widget_( info->main_window, "macro_macros" );
- GtkListStore *store = gtk_list_store_new( 5, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING );
+ GtkListStore *store = gtk_list_store_new( 6, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING );
gtk_tree_view_set_model( GTK_TREE_VIEW(tree), GTK_TREE_MODEL(store) );
GtkTreeSelection *sel = gtk_tree_view_get_selection( GTK_TREE_VIEW(tree) );
@@ -1270,6 +1271,7 @@ static void setup_macros()
setup_tree_text_column( "macro_macros", MACRO_LOOP, "Loop",0);
setup_tree_text_column( "macro_macros", MACRO_MSG_SEQ, "#",0);
setup_tree_text_column( "macro_macros", MACRO_VIMS, "VIMS Message",0);
+ setup_tree_text_column( "macro_macros", MACRO_VIMS_DESCR, "Description",0);
}
#define SAMPLE_MAX_PARAMETERS 32
@@ -2988,9 +2990,9 @@ static void update_label_i(const char *name, int num, int prefix)
}
char str[20];
if(prefix)
- g_snprintf( str,20, "%09d", num );
+ g_snprintf( str,sizeof(str), "%09d", num );
else
- g_snprintf( str,20, "%d", num );
+ g_snprintf( str,sizeof(str), "%d", num );
gchar *utf8_value = _utf8str( str );
gtk_label_set_text( GTK_LABEL(label), utf8_value);
g_free( utf8_value );
@@ -5908,7 +5910,7 @@ void reload_macros()
return;
GtkTreeModel *model = gtk_tree_view_get_model( GTK_TREE_VIEW(tree ));
- store = GTK_LIST_STORE(model);
+ store = GTK_LIST_STORE(model);
gchar *ptr = answer;
@@ -5931,14 +5933,20 @@ void reload_macros()
ptr += (8 + 2 + 8 + 2 + 3);
char *msg = strndup( ptr, msg_len );
-
+ int vims_id = -1;
+ n = sscanf(msg,"%03d:", &vims_id);
+ char *descr = NULL;
+ if( vims_id >= 0 && vims_id < VIMS_QUIT )
+ descr = vj_event_list[vims_id].descr;
+
gtk_list_store_append( store, &iter );
- gtk_list_store_set(store, &iter,
+ gtk_list_store_set(store, &iter,
MACRO_FRAME, (guint) frame_num,
MACRO_DUP, (guint) at_dup,
MACRO_LOOP, (guint) at_loop,
MACRO_MSG_SEQ, (guint) at_seq,
MACRO_VIMS, msg,
+ MACRO_VIMS_DESCR, (descr == NULL ? "Unknown": descr),
-1 );
ptr += msg_len;
@@ -6872,6 +6880,7 @@ static void update_globalinfo(int *history, int pm, int last_pm)
{
info->uc.reload_hint[HINT_ENTRY] = 1;
info->uc.reload_hint[HINT_CHAIN] = 1;
+ info->uc.reload_hint[HINT_MACRO] = 1;
if( pm != MODE_STREAM )
info->uc.reload_hint[HINT_EL] = 1;
@@ -6919,6 +6928,14 @@ static void update_globalinfo(int *history, int pm, int last_pm)
info->uc.real_num_streams = n_streams;
}
+ if( info->status_tokens[SAMPLE_LOOP_STAT_STOP] != history[SAMPLE_LOOP_STAT_STOP] ) {
+ update_label_i( "label_loop_stat_stop", info->status_tokens[SAMPLE_LOOP_STAT_STOP],0);
+ }
+ if( info->status_tokens[SAMPLE_LOOP_STAT ] != history[SAMPLE_LOOP_STAT] ) {
+ update_label_i( "label_loop_stats", info->status_tokens[SAMPLE_LOOP_STAT], 0);
+ }
+
+
if( info->status_tokens[SEQ_ACT] != history[SEQ_ACT] )
{
info->uc.reload_hint[HINT_SEQ_ACT] = 1;
@@ -8227,7 +8244,6 @@ int vj_gui_reconnect(char *hostname,char *group_name, int port_num)
reload_vimslist();
reload_editlist_contents();
reload_bundles();
- reload_macros();
set_feedback_status();