Hi, On Mon, Feb 06, 2017 at 05:52:02PM +0100, Pavel Grunt wrote: > On Mon, 2017-02-06 at 12:06 +0100, Victor Toso wrote: > > +static const GtkRadioActionEntry video_codec_type_entries[] = { > > + { > > + .name = "mjpeg", > > + .label = "mjpeg", > > + .value = SPICE_VIDEO_CODEC_TYPE_MJPEG, > if we had some structure like Frediano suggested, we could reuse it > here If I understood correctly, Frediano suggested to reusing the array introduced by you. That would means a smart way to share the array at src/channel-display.* with tools/spicy.c It could be in a followup patch. > > + },{ > > + .name = "vp8", > > + .label = "vp8", > > + .value = SPICE_VIDEO_CODEC_TYPE_VP8, > > + },{ > > + .name = "vp9", > > + .label = "vp9", > > + .value = SPICE_VIDEO_CODEC_TYPE_VP9, > > + },{ > > + .name = "h264", > > + .label = "h264", > > + .value = SPICE_VIDEO_CODEC_TYPE_H264, > > + } > > +}; > > + > > static char ui_xml[] = > > "<ui>\n" > > " <menubar action='MainMenu'>\n" > > @@ -864,6 +887,12 @@ static char ui_xml[] = > > #endif > > " <menuitem action='off'/>\n" > > " </menu>\n" > > +" <menu action='VideoCodecTypeMenu'>\n" > > +" <menuitem action='mjpeg'/>\n" > > +" <menuitem action='vp8'/>\n" > > +" <menuitem action='vp9'/>\n" > > +" <menuitem action='h264'/>\n" > > +" </menu>\n" > > " </menu>\n" > > " <menu action='HelpMenu'>\n" > > " <menuitem action='About'/>\n" > > @@ -916,6 +945,14 @@ static void compression_cb(GtkRadioAction > > *action G_GNUC_UNUSED, > > gtk_radio_action_get > > _current_value(current)); > > } > > > > +static void video_codec_type_cb(GtkRadioAction *action > > G_GNUC_UNUSED, > > + GtkRadioAction *current, > > + gpointer user_data) > > +{ > > + spice_display_change_preferred_video_codec_type(SPICE_CHANNEL(u > > ser_data), > > + gtk_radio_actio > > n_get_current_value(current)); > > +} > > + > > static void > > spice_window_class_init (SpiceWindowClass *klass) > > { > > @@ -970,6 +1007,33 @@ static SpiceWindow > > *create_spice_window(spice_connection *conn, SpiceChannel *ch > > GtkAction *compression_menu_action = > > gtk_action_group_get_action(win->ag, "CompressionMenu"); > > gtk_action_set_sensitive(compression_menu_action, FALSE); > > } > > + gtk_action_group_add_radio_actions(win->ag, > > video_codec_type_entries, > > + G_N_ELEMENTS(video_codec_typ > > e_entries), -1, > > + G_CALLBACK(video_codec_type_ > > cb), win->display_channel); > > + if (!spice_channel_test_capability(win->display_channel, > > + SPICE_DISPLAY_CAP_PREF_VIDEO > > _CODEC_TYPE)) { > > + GtkAction *video_codec_type_menu_action = > > + gtk_action_group_get_action(win->ag, > > "VideoCodecTypeMenu"); > > + gtk_action_set_sensitive(video_codec_type_menu_action, > > FALSE); > > + } else { > > + gint i; > it should be unsigne Fixed locally. Do you set extra flags for warnings to catch that? > > + static const struct { > > + gint cap; > > + const gchar name[8]; > > + } display_codecs[] = { > > + {SPICE_DISPLAY_CAP_CODEC_MJPEG, "mjpeg"}, > > + {SPICE_DISPLAY_CAP_CODEC_VP8, "vp8"}, > > + {SPICE_DISPLAY_CAP_CODEC_H264, "h264"}, > > + {SPICE_DISPLAY_CAP_CODEC_VP9, "vp9"}, > > + }; > > + for (i = 0; i < G_N_ELEMENTS(display_codecs); i++) { > > + if (!spice_channel_test_capability(win- > > >display_channel, display_codecs[i].cap)) { > isn't the condition wrong ? > > The menu is gray all the time for me... > > Pavel > > > + GtkAction *action = > > gtk_action_group_get_action(win->ag, display_codecs[i].name); > > + gtk_action_set_sensitive(action, TRUE); > > + } > > + } > > + } > > + > > gtk_ui_manager_insert_action_group(win->ui, win->ag, 0); > > gtk_window_add_accel_group(GTK_WINDOW(win->toplevel), > > gtk_ui_manager_get_accel_group(win- > > >ui)); > >
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel