status line is extended to 33 items, display loop count and loop stop in new labels a top of timeline. added new column in macros list view that displays VIMS descriptions

This commit is contained in:
c0ntrol
2019-01-16 00:01:42 +01:00
parent 021e98395d
commit c23bec2393
5 changed files with 124 additions and 13 deletions

View File

@@ -17355,6 +17355,97 @@ YUV (current)</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="hbox940">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkLabel" id="label981">
<property name="visible">True</property>
<property name="label" translatable="yes">Loop:</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label_loop_stats">
<property name="visible">True</property>
<property name="label" translatable="yes">0</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">4</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label_loop_stat_stop">
<property name="visible">True</property>
<property name="label" translatable="yes">1</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">8</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="left_attach">4</property>
<property name="right_attach">5</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>

View File

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

View File

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

View File

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

View File

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