mirror of
https://github.com/game-stop/veejay.git
synced 2025-12-21 15:20:02 +01:00
GVeejay Reloaded, fixed videobar, fixed enabling/disabling of widgets when switching playback modes, ...
git-svn-id: svn://code.dyne.org/veejay/trunk@378 eb8d1916-c9e9-0310-b8de-cf0c9472ead5
This commit is contained in:
@@ -75,21 +75,20 @@ void on_videobar_value_changed(GtkWidget *widget, gpointer user_data)
|
|||||||
{
|
{
|
||||||
if(!info->status_lock)
|
if(!info->status_lock)
|
||||||
{
|
{
|
||||||
// gint slider_val = get_slider_val( "videobar" );
|
|
||||||
gdouble slider_val = GTK_ADJUSTMENT(GTK_RANGE(widget)->adjustment)->value;
|
gdouble slider_val = GTK_ADJUSTMENT(GTK_RANGE(widget)->adjustment)->value;
|
||||||
gint val = 0;
|
gint val = 0;
|
||||||
switch(info->status_tokens[PLAY_MODE])
|
switch(info->status_tokens[PLAY_MODE])
|
||||||
{
|
{
|
||||||
case MODE_PLAIN:
|
case MODE_PLAIN:
|
||||||
val = (gint) (slider_val * info->status_tokens[TOTAL_FRAMES] );
|
val = slider_val * info->status_tokens[TOTAL_FRAMES];
|
||||||
break;
|
break;
|
||||||
case MODE_SAMPLE:
|
case MODE_SAMPLE:
|
||||||
val = (gint) (slider_val * (info->status_tokens[SAMPLE_END] - info->status_tokens[SAMPLE_END]));
|
val = slider_val * (info->status_tokens[SAMPLE_END] - info->status_tokens[SAMPLE_START]);
|
||||||
|
val += info->status_tokens[SAMPLE_START];
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
fprintf(stderr, "Set frame %d\n", val );
|
|
||||||
multi_vims( VIMS_VIDEO_SET_FRAME, "%d", val );
|
multi_vims( VIMS_VIDEO_SET_FRAME, "%d", val );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -224,25 +224,6 @@ typedef struct
|
|||||||
int height;
|
int height;
|
||||||
} veejay_el_t;
|
} veejay_el_t;
|
||||||
|
|
||||||
// test renew
|
|
||||||
// modified because this is handled now by the options-dialog-routine
|
|
||||||
static struct
|
|
||||||
{
|
|
||||||
int pm;
|
|
||||||
const char *name;
|
|
||||||
} notepad_widgets[] =
|
|
||||||
{
|
|
||||||
// {MODE_SAMPLE, "frame_sampleproperties"},
|
|
||||||
// {MODE_SAMPLE, "frame_samplerecord"},
|
|
||||||
{MODE_SAMPLE, "tree_history"},
|
|
||||||
{MODE_SAMPLE, "button_historymove"},
|
|
||||||
{MODE_SAMPLE, "button_historyrec"},
|
|
||||||
//{MODE_STREAM, "frame_streamproperties"},
|
|
||||||
//{MODE_STREAM, "frame_streamrecord"},
|
|
||||||
{-1 , "vbox_fxtree" },
|
|
||||||
{ 0, NULL },
|
|
||||||
};
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
RUN_STATE_LOCAL = 1,
|
RUN_STATE_LOCAL = 1,
|
||||||
@@ -349,6 +330,7 @@ typedef struct
|
|||||||
sample_gui_slot_t *selected_gui_slot;
|
sample_gui_slot_t *selected_gui_slot;
|
||||||
int image_dimensions[2];
|
int image_dimensions[2];
|
||||||
guchar *rawdata;
|
guchar *rawdata;
|
||||||
|
int prev_mode;
|
||||||
} vj_gui_t;
|
} vj_gui_t;
|
||||||
|
|
||||||
enum
|
enum
|
||||||
@@ -491,6 +473,73 @@ static struct
|
|||||||
{ "v4l_color" },
|
{ "v4l_color" },
|
||||||
{ "v4l_white" }
|
{ "v4l_white" }
|
||||||
};
|
};
|
||||||
|
static struct
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
} gwidgets[] = {
|
||||||
|
{"button_sendvims"},
|
||||||
|
{"button_087"},
|
||||||
|
{"button_086"},
|
||||||
|
{"button_081"},
|
||||||
|
{"button_082"},
|
||||||
|
{"button_080"},
|
||||||
|
{"button_085"},
|
||||||
|
// {"button_036"},
|
||||||
|
{"button_084"},
|
||||||
|
{"button_083"},
|
||||||
|
{"button_084"},
|
||||||
|
{"button_088"},
|
||||||
|
{"videobar"},
|
||||||
|
{"button_samplestart"},
|
||||||
|
{"button_sampleend"},
|
||||||
|
{"button_fadeout"},
|
||||||
|
{"button_fadein"},
|
||||||
|
{"button_5_4"},
|
||||||
|
{"button_200"},
|
||||||
|
{"button_001"},
|
||||||
|
{"button_252"},
|
||||||
|
{"button_251"},
|
||||||
|
{"button_054"},
|
||||||
|
{"speedslider"},
|
||||||
|
{"new_colorstream"},
|
||||||
|
{"audiovolume"},
|
||||||
|
{"manualopacity"},
|
||||||
|
{"button_fadedur"},
|
||||||
|
{"vimsmessage"},
|
||||||
|
{NULL}
|
||||||
|
};
|
||||||
|
static struct
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
} videowidgets[] = {
|
||||||
|
{"button_sendvims"},
|
||||||
|
{"button_087"},
|
||||||
|
{"button_086"},
|
||||||
|
{"button_081"},
|
||||||
|
{"button_082"},
|
||||||
|
{"button_080"},
|
||||||
|
{"button_085"},
|
||||||
|
{"button_084"},
|
||||||
|
{"button_083"},
|
||||||
|
{"button_084"},
|
||||||
|
{"button_088"},
|
||||||
|
{"videobar"},
|
||||||
|
{"button_samplestart"},
|
||||||
|
{"button_sampleend"},
|
||||||
|
{"speedslider"},
|
||||||
|
{NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
} plainwidgets[] =
|
||||||
|
{
|
||||||
|
{"manualopacity"},
|
||||||
|
{"loglinear"},
|
||||||
|
{"vbox_fxtree"},
|
||||||
|
{NULL}
|
||||||
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@@ -1823,7 +1872,7 @@ static void update_slider_value(const char *name, gint value, gint scale)
|
|||||||
if(scale)
|
if(scale)
|
||||||
{
|
{
|
||||||
GtkAdjustment *adj = GTK_ADJUSTMENT(GTK_RANGE(w)->adjustment );
|
GtkAdjustment *adj = GTK_ADJUSTMENT(GTK_RANGE(w)->adjustment );
|
||||||
gvalue = (gdouble) value / (adj->upper);
|
gvalue = (gdouble) value / (gdouble) scale;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
gvalue = (gdouble) value;
|
gvalue = (gdouble) value;
|
||||||
@@ -2052,34 +2101,12 @@ chain_update_row(GtkTreeModel * model, GtkTreePath * path, GtkTreeIter * iter,
|
|||||||
|
|
||||||
static void update_status_accessibility(int pm)
|
static void update_status_accessibility(int pm)
|
||||||
{
|
{
|
||||||
int *history = info->history_tokens[pm];
|
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
if(info->status_tokens[PLAY_MODE] != history[PLAY_MODE] )
|
|
||||||
{
|
|
||||||
if( pm != MODE_SAMPLE )
|
|
||||||
{
|
|
||||||
disable_widget( "samplerand" );
|
|
||||||
disable_widget( "freestyle" );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
enable_widget( "samplerand" );
|
|
||||||
enable_widget( "freestyle" );
|
|
||||||
|
|
||||||
}
|
if( pm != info->prev_mode )
|
||||||
if( pm == MODE_PLAIN )
|
|
||||||
{
|
|
||||||
for(i =0; notepad_widgets[i].name != NULL; i ++ )
|
|
||||||
disable_widget( notepad_widgets[i].name );
|
|
||||||
enable_widget ("speedslider");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(selected_is_playing())
|
|
||||||
{
|
{
|
||||||
/* If mode changed, enable/disable widgets etc first */
|
/* If mode changed, enable/disable widgets etc first */
|
||||||
if( history[PLAY_MODE] != pm )
|
if( info->status_tokens[PLAY_MODE] != info->prev_mode )
|
||||||
{
|
{
|
||||||
if( pm == MODE_STREAM )
|
if( pm == MODE_STREAM )
|
||||||
{
|
{
|
||||||
@@ -2090,8 +2117,16 @@ static void update_status_accessibility(int pm)
|
|||||||
disable_widget("button_historymove");
|
disable_widget("button_historymove");
|
||||||
disable_widget("frame_samplerecord");
|
disable_widget("frame_samplerecord");
|
||||||
disable_widget("frame_sampleproperties");
|
disable_widget("frame_sampleproperties");
|
||||||
disable_widget("speedslider");
|
for(i=0; videowidgets[i].name != NULL; i++)
|
||||||
|
disable_widget( videowidgets[i].name);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for(i=0; videowidgets[i].name != NULL; i++)
|
||||||
|
enable_widget( videowidgets[i].name);
|
||||||
|
}
|
||||||
|
|
||||||
if( pm == MODE_SAMPLE )
|
if( pm == MODE_SAMPLE )
|
||||||
{
|
{
|
||||||
enable_widget("frame_samplerecord");
|
enable_widget("frame_samplerecord");
|
||||||
@@ -2101,9 +2136,21 @@ static void update_status_accessibility(int pm)
|
|||||||
enable_widget("button_historymove");
|
enable_widget("button_historymove");
|
||||||
disable_widget("frame_streamproperties");
|
disable_widget("frame_streamproperties");
|
||||||
disable_widget("frame_streamrecord");
|
disable_widget("frame_streamrecord");
|
||||||
enable_widget("speedslider");
|
enable_widget( "samplerand" );
|
||||||
|
enable_widget( "freestyle" );
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
disable_widget( "samplerand" );
|
||||||
|
disable_widget( "freestyle" );
|
||||||
|
}
|
||||||
|
|
||||||
|
if( pm == MODE_PLAIN)
|
||||||
|
for( i = 0; plainwidgets[i].name != NULL ;i++ )
|
||||||
|
disable_widget( plainwidgets[i].name );
|
||||||
|
else
|
||||||
|
for( i = 0; plainwidgets[i].name != NULL ; i ++ )
|
||||||
|
enable_widget( plainwidgets[i].name );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2124,7 +2171,7 @@ static void update_current_slot(int pm)
|
|||||||
|
|
||||||
/* Mode changed or ID changed,
|
/* Mode changed or ID changed,
|
||||||
Reload FX Chain, Reload current entry and disable widgets based on stream type */
|
Reload FX Chain, Reload current entry and disable widgets based on stream type */
|
||||||
if( pm != history[PLAY_MODE] || info->status_tokens[CURRENT_ID] != history[CURRENT_ID] )
|
if( pm != info->prev_mode || info->status_tokens[CURRENT_ID] != history[CURRENT_ID] )
|
||||||
{
|
{
|
||||||
int k;
|
int k;
|
||||||
info->uc.reload_hint[HINT_ENTRY] = 1;
|
info->uc.reload_hint[HINT_ENTRY] = 1;
|
||||||
@@ -2326,13 +2373,12 @@ static void update_globalinfo()
|
|||||||
|
|
||||||
info->uc.playmode = pm;
|
info->uc.playmode = pm;
|
||||||
|
|
||||||
|
update_status_accessibility(pm);
|
||||||
if( info->status_tokens[CURRENT_ID] != history[CURRENT_ID] ||
|
if( info->status_tokens[CURRENT_ID] != history[CURRENT_ID] ||
|
||||||
info->status_tokens[PLAY_MODE] != history[PLAY_MODE] )
|
info->status_tokens[PLAY_MODE] != info->prev_mode )
|
||||||
{
|
{
|
||||||
if( pm == MODE_PLAIN )
|
|
||||||
disable_widget("vbox_fxtree");
|
|
||||||
if( pm == MODE_SAMPLE || MODE_STREAM )
|
if( pm == MODE_SAMPLE || MODE_STREAM )
|
||||||
{ enable_widget("vbox_fxtree");
|
{
|
||||||
info->uc.reload_hint[HINT_ENTRY] = 1;
|
info->uc.reload_hint[HINT_ENTRY] = 1;
|
||||||
info->uc.reload_hint[HINT_CHAIN] = 1;
|
info->uc.reload_hint[HINT_CHAIN] = 1;
|
||||||
}
|
}
|
||||||
@@ -2344,8 +2390,6 @@ static void update_globalinfo()
|
|||||||
info->uc.reload_hint[HINT_SLIST] = 1;
|
info->uc.reload_hint[HINT_SLIST] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
update_status_accessibility(pm);
|
|
||||||
|
|
||||||
if( history[TOTAL_FRAMES] != info->status_tokens[TOTAL_FRAMES])
|
if( history[TOTAL_FRAMES] != info->status_tokens[TOTAL_FRAMES])
|
||||||
{
|
{
|
||||||
gint tf = info->status_tokens[TOTAL_FRAMES];
|
gint tf = info->status_tokens[TOTAL_FRAMES];
|
||||||
@@ -2381,14 +2425,14 @@ static void update_globalinfo()
|
|||||||
}
|
}
|
||||||
if(pm == MODE_PLAIN )
|
if(pm == MODE_PLAIN )
|
||||||
{
|
{
|
||||||
update_slider_value( "videobar", info->status_tokens[FRAME_NUM], 1 );
|
update_slider_value( "videobar", info->status_tokens[FRAME_NUM],
|
||||||
|
info->status_tokens[TOTAL_FRAMES] );
|
||||||
}
|
}
|
||||||
if(pm == MODE_SAMPLE)
|
if(pm == MODE_SAMPLE)
|
||||||
{
|
{
|
||||||
gint f = info->status_tokens[FRAME_NUM] - info->status_tokens[SAMPLE_START];
|
gint f = info->status_tokens[FRAME_NUM] - info->status_tokens[SAMPLE_START];
|
||||||
gint m = info->status_tokens[SAMPLE_END] - info->status_tokens[SAMPLE_START];
|
gint m = info->status_tokens[SAMPLE_END] - info->status_tokens[SAMPLE_START];
|
||||||
gdouble v = (f / (gdouble)m) * 100.0;
|
update_slider_value( "videobar",f,m);
|
||||||
update_slider_gvalue( "videobar",v);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -4732,6 +4776,7 @@ static void update_gui()
|
|||||||
{
|
{
|
||||||
|
|
||||||
int pm = info->status_tokens[PLAY_MODE];
|
int pm = info->status_tokens[PLAY_MODE];
|
||||||
|
|
||||||
if( pm == MODE_SAMPLE && info->uc.randplayer )
|
if( pm == MODE_SAMPLE && info->uc.randplayer )
|
||||||
{
|
{
|
||||||
info->uc.randplayer = 0;
|
info->uc.randplayer = 0;
|
||||||
@@ -4772,6 +4817,7 @@ static void update_gui()
|
|||||||
entry_history[i] = entry_tokens[i];
|
entry_history[i] = entry_tokens[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
info->prev_mode = pm;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5380,39 +5426,6 @@ gboolean is_alive(gpointer data)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct
|
|
||||||
{
|
|
||||||
const char *name;
|
|
||||||
} gwidgets[] = {
|
|
||||||
{"button_sendvims"},
|
|
||||||
{"button_087"},
|
|
||||||
{"button_086"},
|
|
||||||
{"button_081"},
|
|
||||||
{"button_082"},
|
|
||||||
{"button_080"},
|
|
||||||
{"button_085"},
|
|
||||||
// {"button_036"},
|
|
||||||
{"button_084"},
|
|
||||||
{"button_083"},
|
|
||||||
{"button_084"},
|
|
||||||
{"button_samplestart"},
|
|
||||||
{"button_sampleend"},
|
|
||||||
{"button_fadeout"},
|
|
||||||
{"button_fadein"},
|
|
||||||
{"button_5_4"},
|
|
||||||
{"button_200"},
|
|
||||||
{"button_001"},
|
|
||||||
{"button_252"},
|
|
||||||
{"button_251"},
|
|
||||||
{"button_054"},
|
|
||||||
{"speedslider"},
|
|
||||||
{"new_colorstream"},
|
|
||||||
{"audiovolume"},
|
|
||||||
{"manualopacity"},
|
|
||||||
{"button_fadedur"},
|
|
||||||
{"vimsmessage"},
|
|
||||||
{NULL}
|
|
||||||
};
|
|
||||||
|
|
||||||
void vj_gui_disconnect()
|
void vj_gui_disconnect()
|
||||||
{
|
{
|
||||||
@@ -5858,16 +5871,9 @@ image_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* this function creates a new GUI slot. At initialization, all possible slots are initialized
|
// TODO:
|
||||||
* so we add to the table of GUI slots directly.
|
|
||||||
* FIXME: return new malloced gui_slot_slot_t
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void open_sample_edit_dialog( GtkWidget *widget, gpointer data )
|
static void open_sample_edit_dialog( GtkWidget *widget, gpointer data )
|
||||||
{
|
{
|
||||||
multi_vims( VIMS_SET_MODE_AND_GO, "%d %d", info->selected_slot->sample_id,
|
|
||||||
info->selected_slot->sample_type );
|
|
||||||
|
|
||||||
if(!GTK_WIDGET_VISIBLE(glade_xml_get_widget(info->main_window, "sample_options")))
|
if(!GTK_WIDGET_VISIBLE(glade_xml_get_widget(info->main_window, "sample_options")))
|
||||||
{GtkWidget *w = glade_xml_get_widget_( info->main_window, "sample_options" );
|
{GtkWidget *w = glade_xml_get_widget_( info->main_window, "sample_options" );
|
||||||
gtk_widget_show(w); }
|
gtk_widget_show(w); }
|
||||||
@@ -5952,6 +5958,9 @@ static void create_slot(gint bank_nr, gint slot_nr, gint w, gint h)
|
|||||||
// gtk_box_pack_start( GTK_BOX(gui_slot->upper_hbox), GTK_WIDGET(label), TRUE, TRUE, 0 );
|
// gtk_box_pack_start( GTK_BOX(gui_slot->upper_hbox), GTK_WIDGET(label), TRUE, TRUE, 0 );
|
||||||
// gtk_widget_show(label);
|
// gtk_widget_show(label);
|
||||||
/* the edit button */
|
/* the edit button */
|
||||||
|
|
||||||
|
/* Todo: add pointer to sample slot to callback function.
|
||||||
|
edit mode needs ID and type */
|
||||||
gui_slot->edit_button = GTK_BUTTON( gtk_button_new_with_label("edit"));
|
gui_slot->edit_button = GTK_BUTTON( gtk_button_new_with_label("edit"));
|
||||||
gtk_box_pack_start( GTK_BOX(gui_slot->upper_hbox), GTK_WIDGET(gui_slot->edit_button), FALSE, FALSE, 0 );
|
gtk_box_pack_start( GTK_BOX(gui_slot->upper_hbox), GTK_WIDGET(gui_slot->edit_button), FALSE, FALSE, 0 );
|
||||||
g_signal_connect( gui_slot->edit_button, "clicked",
|
g_signal_connect( gui_slot->edit_button, "clicked",
|
||||||
|
|||||||
@@ -4386,7 +4386,7 @@
|
|||||||
<property name="digits">4</property>
|
<property name="digits">4</property>
|
||||||
<property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
|
<property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
|
||||||
<property name="inverted">False</property>
|
<property name="inverted">False</property>
|
||||||
<property name="adjustment">0 0 100 0.0010000000475 0.00999999977648 0</property>
|
<property name="adjustment">0.00999999977648 0 1 0.0010000000475 0.00999999977648 0</property>
|
||||||
<signal name="value_changed" handler="on_videobar_value_changed" last_modification_time="Sun, 28 Aug 2005 18:06:02 GMT"/>
|
<signal name="value_changed" handler="on_videobar_value_changed" last_modification_time="Sun, 28 Aug 2005 18:06:02 GMT"/>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
|
|||||||
Reference in New Issue
Block a user