[Spice-devel] [PATCH spice-gtk 1/4] Rename snappy to spicy-screenshot
Hans de Goede
hdegoede at redhat.com
Wed Apr 10 07:51:43 PDT 2013
Looks good,
Only one remark, do we really want to prefix all the tools with "spicy",
wouldn't just "spice" as prefix be better ?
Regards,
Hans
On 04/10/2013 03:37 PM, Marc-André Lureau wrote:
> Following discussion on the ML:
> http://lists.freedesktop.org/archives/spice-devel/2013-April/012953.html
> ---
> README | 2 +-
> gtk/Makefile.am | 12 ++--
> gtk/snappy.c | 178 -------------------------------------------------
> gtk/spicy-screenshot.c | 178 +++++++++++++++++++++++++++++++++++++++++++++++++
> po/POTFILES.in | 2 +-
> 5 files changed, 186 insertions(+), 186 deletions(-)
> delete mode 100644 gtk/snappy.c
> create mode 100644 gtk/spicy-screenshot.c
>
> diff --git a/README b/README
> index 06d459b..035d95f 100644
> --- a/README
> +++ b/README
> @@ -23,7 +23,7 @@ spicy
> gtk based spice client app. Command line options are simliar
> to the spicec ones.
>
> -snappy
> +spicy-screenshot
> Command line tool, connects to spice server and writes out a
> screen shot.
>
> diff --git a/gtk/Makefile.am b/gtk/Makefile.am
> index eb64b13..2ba27a8 100644
> --- a/gtk/Makefile.am
> +++ b/gtk/Makefile.am
> @@ -42,7 +42,7 @@ EXTRA_DIST = \
> spice-marshal.txt \
> $(NULL)
>
> -bin_PROGRAMS = spicy snappy spicy-stats
> +bin_PROGRAMS = spicy spicy-stats spicy-screenshot
> if WITH_POLKIT
> acldir = $(ACL_HELPER_DIR)
> acl_PROGRAMS = spice-client-glib-usb-acl-helper
> @@ -424,13 +424,13 @@ install-data-hook:
> endif
>
>
> -snappy_SOURCES = \
> - snappy.c \
> - spice-cmdline.h \
> - spice-cmdline.c \
> +spicy_screenshot_SOURCES = \
> + spicy-screenshot.c \
> + spice-cmdline.h \
> + spice-cmdline.c \
> $(NULL)
>
> -snappy_LDADD = \
> +spicy_screenshot_LDADD = \
> libspice-client-glib-2.0.la \
> $(GOBJECT2_LIBS) \
> $(NULL)
> diff --git a/gtk/snappy.c b/gtk/snappy.c
> deleted file mode 100644
> index f7d0f04..0000000
> --- a/gtk/snappy.c
> +++ /dev/null
> @@ -1,178 +0,0 @@
> -/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */
> -/*
> - Copyright (C) 2010 Red Hat, Inc.
> -
> - This library is free software; you can redistribute it and/or
> - modify it under the terms of the GNU Lesser General Public
> - License as published by the Free Software Foundation; either
> - version 2.1 of the License, or (at your option) any later version.
> -
> - This library is distributed in the hope that it will be useful,
> - but WITHOUT ANY WARRANTY; without even the implied warranty of
> - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> - Lesser General Public License for more details.
> -
> - You should have received a copy of the GNU Lesser General Public
> - License along with this library; if not, see <http://www.gnu.org/licenses/>.
> -*/
> -#ifdef HAVE_CONFIG_H
> -# include "config.h"
> -#endif
> -#include <glib/gi18n.h>
> -
> -#include "spice-client.h"
> -#include "spice-common.h"
> -#include "spice-cmdline.h"
> -
> -/* config */
> -static const char *outf = "snappy.ppm";
> -static gboolean version = FALSE;
> -
> -/* state */
> -static SpiceSession *session;
> -static GMainLoop *mainloop;
> -
> -enum SpiceSurfaceFmt d_format;
> -gint d_width, d_height, d_stride;
> -gpointer d_data;
> -
> -/* ------------------------------------------------------------------ */
> -
> -static void primary_create(SpiceChannel *channel, gint format,
> - gint width, gint height, gint stride,
> - gint shmid, gpointer imgdata, gpointer data)
> -{
> - SPICE_DEBUG("%s: %dx%d, format %d", __FUNCTION__, width, height, format);
> - d_format = format;
> - d_width = width;
> - d_height = height;
> - d_stride = stride;
> - d_data = imgdata;
> -}
> -
> -static int write_ppm_32(void)
> -{
> - FILE *fp;
> - uint8_t *p;
> - int n;
> -
> - fp = fopen(outf,"w");
> - if (NULL == fp) {
> - fprintf(stderr, _("snappy: can't open %s: %s\n"), outf, strerror(errno));
> - return -1;
> - }
> - fprintf(fp, "P6\n%d %d\n255\n",
> - d_width, d_height);
> - n = d_width * d_height;
> - p = d_data;
> - while (n > 0) {
> - fputc(p[2], fp);
> - fputc(p[1], fp);
> - fputc(p[0], fp);
> - p += 4;
> - n--;
> - }
> - fclose(fp);
> - return 0;
> -}
> -
> -static void invalidate(SpiceChannel *channel,
> - gint x, gint y, gint w, gint h, gpointer *data)
> -{
> - int rc;
> -
> - switch (d_format) {
> - case SPICE_SURFACE_FMT_32_xRGB:
> - rc = write_ppm_32();
> - break;
> - default:
> - fprintf(stderr, _("unsupported spice surface format %d\n"), d_format);
> - rc = -1;
> - break;
> - }
> - if (rc == 0)
> - fprintf(stderr, _("wrote screen shot to %s\n"), outf);
> - g_main_loop_quit(mainloop);
> -}
> -
> -static void channel_new(SpiceSession *s, SpiceChannel *channel, gpointer *data)
> -{
> - int id;
> -
> - if (!SPICE_IS_DISPLAY_CHANNEL(channel))
> - return;
> -
> - g_object_get(channel, "channel-id", &id, NULL);
> - if (id != 0)
> - return;
> -
> - g_signal_connect(channel, "display-primary-create",
> - G_CALLBACK(primary_create), NULL);
> - g_signal_connect(channel, "display-invalidate",
> - G_CALLBACK(invalidate), NULL);
> - spice_channel_connect(channel);
> -}
> -
> -/* ------------------------------------------------------------------ */
> -
> -static GOptionEntry app_entries[] = {
> - {
> - .long_name = "out-file",
> - .short_name = 'o',
> - .arg = G_OPTION_ARG_FILENAME,
> - .arg_data = &outf,
> - .description = N_("Output file name (default snappy.ppm)"),
> - .arg_description = N_("<filename>"),
> - },
> - {
> - .long_name = "version",
> - .arg = G_OPTION_ARG_NONE,
> - .arg_data = &version,
> - .description = N_("Display version and quit"),
> - },
> - {
> - /* end of list */
> - }
> -};
> -
> -int main(int argc, char *argv[])
> -{
> - GError *error = NULL;
> - GOptionContext *context;
> -
> - bindtextdomain(GETTEXT_PACKAGE, SPICE_GTK_LOCALEDIR);
> - bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
> - textdomain(GETTEXT_PACKAGE);
> -
> - /* parse opts */
> - context = g_option_context_new(_(" - make screen shots"));
> - g_option_context_set_summary(context, _("A Spice server client to take screenshots in ppm format."));
> - g_option_context_set_description(context, _("Report bugs to " PACKAGE_BUGREPORT "."));
> - g_option_context_set_main_group(context, spice_cmdline_get_option_group());
> - g_option_context_add_main_entries(context, app_entries, NULL);
> - if (!g_option_context_parse (context, &argc, &argv, &error)) {
> - g_print(_("option parsing failed: %s\n"), error->message);
> - exit(1);
> - }
> -
> - if (version) {
> - g_print("snappy " PACKAGE_VERSION "\n");
> - exit(0);
> - }
> -
> - g_type_init();
> - mainloop = g_main_loop_new(NULL, false);
> -
> - session = spice_session_new();
> - g_signal_connect(session, "channel-new",
> - G_CALLBACK(channel_new), NULL);
> - spice_cmdline_session_setup(session);
> -
> - if (!spice_session_connect(session)) {
> - fprintf(stderr, _("spice_session_connect failed\n"));
> - exit(1);
> - }
> -
> - g_main_loop_run(mainloop);
> - return 0;
> -}
> diff --git a/gtk/spicy-screenshot.c b/gtk/spicy-screenshot.c
> new file mode 100644
> index 0000000..2595d0c
> --- /dev/null
> +++ b/gtk/spicy-screenshot.c
> @@ -0,0 +1,178 @@
> +/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */
> +/*
> + Copyright (C) 2010 Red Hat, Inc.
> +
> + This library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + This library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with this library; if not, see <http://www.gnu.org/licenses/>.
> +*/
> +#ifdef HAVE_CONFIG_H
> +# include "config.h"
> +#endif
> +#include <glib/gi18n.h>
> +
> +#include "spice-client.h"
> +#include "spice-common.h"
> +#include "spice-cmdline.h"
> +
> +/* config */
> +static const char *outf = "spicy-screenshot.ppm";
> +static gboolean version = FALSE;
> +
> +/* state */
> +static SpiceSession *session;
> +static GMainLoop *mainloop;
> +
> +enum SpiceSurfaceFmt d_format;
> +gint d_width, d_height, d_stride;
> +gpointer d_data;
> +
> +/* ------------------------------------------------------------------ */
> +
> +static void primary_create(SpiceChannel *channel, gint format,
> + gint width, gint height, gint stride,
> + gint shmid, gpointer imgdata, gpointer data)
> +{
> + SPICE_DEBUG("%s: %dx%d, format %d", __FUNCTION__, width, height, format);
> + d_format = format;
> + d_width = width;
> + d_height = height;
> + d_stride = stride;
> + d_data = imgdata;
> +}
> +
> +static int write_ppm_32(void)
> +{
> + FILE *fp;
> + uint8_t *p;
> + int n;
> +
> + fp = fopen(outf,"w");
> + if (NULL == fp) {
> + fprintf(stderr, _("%s: can't open %s: %s\n"), g_get_prgname(), outf, strerror(errno));
> + return -1;
> + }
> + fprintf(fp, "P6\n%d %d\n255\n",
> + d_width, d_height);
> + n = d_width * d_height;
> + p = d_data;
> + while (n > 0) {
> + fputc(p[2], fp);
> + fputc(p[1], fp);
> + fputc(p[0], fp);
> + p += 4;
> + n--;
> + }
> + fclose(fp);
> + return 0;
> +}
> +
> +static void invalidate(SpiceChannel *channel,
> + gint x, gint y, gint w, gint h, gpointer *data)
> +{
> + int rc;
> +
> + switch (d_format) {
> + case SPICE_SURFACE_FMT_32_xRGB:
> + rc = write_ppm_32();
> + break;
> + default:
> + fprintf(stderr, _("unsupported spice surface format %d\n"), d_format);
> + rc = -1;
> + break;
> + }
> + if (rc == 0)
> + fprintf(stderr, _("wrote screen shot to %s\n"), outf);
> + g_main_loop_quit(mainloop);
> +}
> +
> +static void channel_new(SpiceSession *s, SpiceChannel *channel, gpointer *data)
> +{
> + int id;
> +
> + if (!SPICE_IS_DISPLAY_CHANNEL(channel))
> + return;
> +
> + g_object_get(channel, "channel-id", &id, NULL);
> + if (id != 0)
> + return;
> +
> + g_signal_connect(channel, "display-primary-create",
> + G_CALLBACK(primary_create), NULL);
> + g_signal_connect(channel, "display-invalidate",
> + G_CALLBACK(invalidate), NULL);
> + spice_channel_connect(channel);
> +}
> +
> +/* ------------------------------------------------------------------ */
> +
> +static GOptionEntry app_entries[] = {
> + {
> + .long_name = "out-file",
> + .short_name = 'o',
> + .arg = G_OPTION_ARG_FILENAME,
> + .arg_data = &outf,
> + .description = N_("Output file name (default spicy-screenshot.ppm)"),
> + .arg_description = N_("<filename>"),
> + },
> + {
> + .long_name = "version",
> + .arg = G_OPTION_ARG_NONE,
> + .arg_data = &version,
> + .description = N_("Display version and quit"),
> + },
> + {
> + /* end of list */
> + }
> +};
> +
> +int main(int argc, char *argv[])
> +{
> + GError *error = NULL;
> + GOptionContext *context;
> +
> + bindtextdomain(GETTEXT_PACKAGE, SPICE_GTK_LOCALEDIR);
> + bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
> + textdomain(GETTEXT_PACKAGE);
> +
> + /* parse opts */
> + context = g_option_context_new(_(" - make screen shots"));
> + g_option_context_set_summary(context, _("A Spice server client to take screenshots in ppm format."));
> + g_option_context_set_description(context, _("Report bugs to " PACKAGE_BUGREPORT "."));
> + g_option_context_set_main_group(context, spice_cmdline_get_option_group());
> + g_option_context_add_main_entries(context, app_entries, NULL);
> + if (!g_option_context_parse (context, &argc, &argv, &error)) {
> + g_print(_("option parsing failed: %s\n"), error->message);
> + exit(1);
> + }
> +
> + if (version) {
> + g_print("%s " PACKAGE_VERSION "\n", g_get_prgname());
> + exit(0);
> + }
> +
> + g_type_init();
> + mainloop = g_main_loop_new(NULL, false);
> +
> + session = spice_session_new();
> + g_signal_connect(session, "channel-new",
> + G_CALLBACK(channel_new), NULL);
> + spice_cmdline_session_setup(session);
> +
> + if (!spice_session_connect(session)) {
> + fprintf(stderr, _("spice_session_connect failed\n"));
> + exit(1);
> + }
> +
> + g_main_loop_run(mainloop);
> + return 0;
> +}
> diff --git a/po/POTFILES.in b/po/POTFILES.in
> index 8b67632..0d962f0 100644
> --- a/po/POTFILES.in
> +++ b/po/POTFILES.in
> @@ -7,9 +7,9 @@ gtk/display/gnome-rr-config.c
> gtk/display/gnome-rr-generic.c
> gtk/display/gnome-rr-windows.c
> gtk/display/gnome-rr-x11.c
> -gtk/snappy.c
> gtk/spice-cmdline.c
> gtk/spice-option.c
> +gtk/spicy-screenshot.c
> gtk/spicy-stats.c
> gtk/spicy.c
> gtk/usb-device-manager.c
>
More information about the Spice-devel
mailing list