Changeset fd11144 in mainline


Ignore:
Timestamp:
2020-07-04T21:52:35Z (4 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
fc4abca
Parents:
e79a025
Message:

Make display service argument optional

Location:
uspace/app
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/barber/barber.c

    re79a025 rfd11144  
    4040#include <loc.h>
    4141#include <stats.h>
     42#include <str.h>
    4243#include <fibril_synch.h>
    4344#include <io/pixel.h>
     
    247248}
    248249
     250static void print_syntax(void)
     251{
     252        printf("Syntax: %s [-d <display>]\n", NAME);
     253}
     254
    249255int main(int argc, char *argv[])
    250256{
    251         if (argc < 2) {
    252                 printf("Compositor server not specified.\n");
    253                 return 1;
     257        const char *display_svc = DISPLAY_DEFAULT;
     258        int i;
     259
     260        i = 1;
     261        while (i < argc) {
     262                if (str_cmp(argv[i], "-d") == 0) {
     263                        ++i;
     264                        if (i >= argc) {
     265                                printf("Argument missing.\n");
     266                                print_syntax();
     267                                return 1;
     268                        }
     269
     270                        display_svc = argv[i++];
     271                } else {
     272                        printf("Invalid option '%s'.\n", argv[i]);
     273                        print_syntax();
     274                        return 1;
     275                }
    254276        }
    255277
     
    277299
    278300        winreg = argv[1];
    279         window_t *main_window = window_open(argv[1], NULL,
     301        window_t *main_window = window_open(display_svc, NULL,
    280302            WINDOW_MAIN | WINDOW_DECORATED, "barber");
    281303        if (!main_window) {
  • uspace/app/fontviewer/fontviewer.c

    re79a025 rfd11144  
    3838#include <stdlib.h>
    3939#include <stdbool.h>
     40#include <str.h>
    4041#include <str_error.h>
    4142#include <window.h>
     
    245246}
    246247
     248static void print_syntax(void)
     249{
     250        printf("Syntax: %s [-d <display>]\n", NAME);
     251}
     252
    247253int main(int argc, char *argv[])
    248254{
    249         if (argc < 2) {
    250                 printf("Compositor server not specified.\n");
    251                 return 1;
    252         }
    253 
    254         if (argc < 3) {
     255        const char *display_svc = DISPLAY_DEFAULT;
     256        int i;
     257
     258        i = 1;
     259        while (i < argc) {
     260                if (str_cmp(argv[i], "-d") == 0) {
     261                        ++i;
     262                        if (i >= argc) {
     263                                printf("Argument missing.\n");
     264                                print_syntax();
     265                                return 1;
     266                        }
     267
     268                        display_svc = argv[i++];
     269                } else {
     270                        printf("Invalid option '%s'.\n", argv[i]);
     271                        print_syntax();
     272                        return 1;
     273                }
     274        }
     275
     276        if (i < argc) {
    255277                font_path = NULL;
    256278        } else {
    257                 font_path = argv[2];
    258         }
    259 
    260         main_window = window_open(argv[1], NULL, WINDOW_MAIN, "fontviewer");
     279                font_path = argv[i];
     280        }
     281
     282        main_window = window_open(display_svc, NULL, WINDOW_MAIN, "fontviewer");
    261283        if (!main_window) {
    262284                printf("Cannot open main window.\n");
  • uspace/app/gfxdemo/gfxdemo.c

    re79a025 rfd11144  
    11/*
    2  * Copyright (c) 2019 Jiri Svoboda
     2 * Copyright (c) 2020 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    487487
    488488/** Run demo on canvas. */
    489 static errno_t demo_canvas(void)
     489static errno_t demo_canvas(const char *display_svc)
    490490{
    491491        canvas_gc_t *cgc = NULL;
     
    500500        printf("Init canvas..\n");
    501501
    502         window = window_open(DISPLAY_DEFAULT, NULL,
     502        window = window_open(display_svc, NULL,
    503503            WINDOW_MAIN | WINDOW_DECORATED, "GFX Demo");
    504504        if (window == NULL) {
     
    553553
    554554/** Run demo on display server. */
    555 static errno_t demo_display(void)
     555static errno_t demo_display(const char *display_svc)
    556556{
    557557        display_t *display = NULL;
     
    563563        printf("Init display..\n");
    564564
    565         rc = display_open(DISPLAY_DEFAULT, &display);
     565        rc = display_open(display_svc, &display);
    566566        if (rc != EOK) {
    567567                printf("Error opening display.\n");
     
    618618static void print_syntax(void)
    619619{
    620         printf("syntax: gfxdemo {canvas|console|display}\n");
     620        printf("Syntax: gfxdemo [-d <display>] {canvas|console|display}\n");
    621621}
    622622
     
    624624{
    625625        errno_t rc;
    626 
    627         if (argc < 2 || str_cmp(argv[1], "display") == 0) {
    628                 rc = demo_display();
    629                 if (rc != EOK)
     626        const char *display_svc = DISPLAY_DEFAULT;
     627        int i;
     628
     629        i = 1;
     630        while (i < argc && argv[i][0] == '-') {
     631                if (str_cmp(argv[i], "-d") == 0) {
     632                        ++i;
     633                        if (i >= argc) {
     634                                printf("Argument missing.\n");
     635                                print_syntax();
     636                                return 1;
     637                        }
     638
     639                        display_svc = argv[i++];
     640                } else {
     641                        printf("Invalid option '%s'.\n", argv[i]);
     642                        print_syntax();
    630643                        return 1;
    631         } else if (str_cmp(argv[1], "console") == 0) {
     644                }
     645        }
     646
     647        if (i >= argc || str_cmp(argv[i], "display") == 0) {
     648                rc = demo_display(display_svc);
     649                if (rc != EOK)
     650                        return 1;
     651        } else if (str_cmp(argv[i], "console") == 0) {
    632652                rc = demo_console();
    633653                if (rc != EOK)
    634654                        return 1;
    635         } else if (str_cmp(argv[1], "canvas") == 0) {
    636                 rc = demo_canvas();
     655        } else if (str_cmp(argv[i], "canvas") == 0) {
     656                rc = demo_canvas(display_svc);
    637657                if (rc != EOK)
    638658                        return 1;
  • uspace/app/init/init.c

    re79a025 rfd11144  
    6969
    7070#define SRV_DISPLAY  "/srv/hid/display"
    71 #define DISPLAY_SVC  "hid/display"
    7271
    7372#define HID_INPUT              "hid/input"
     
    278277}
    279278
    280 static int gui_start(const char *app, const char *display_svc)
     279static int app_start(const char *app)
    281280{
    282281        printf("%s: Spawning %s\n", NAME, app);
     
    284283        task_id_t id;
    285284        task_wait_t wait;
    286         errno_t rc = task_spawnl(&id, &wait, app, app, display_svc, NULL);
     285        errno_t rc = task_spawnl(&id, &wait, app, app, NULL);
    287286        if (rc != EOK) {
    288287                oom_check(rc, app);
     
    472471                rc = display_server();
    473472                if (rc == EOK) {
    474                         gui_start("/app/barber", DISPLAY_SVC);
    475                         gui_start("/app/vlaunch", DISPLAY_SVC);
    476                         gui_start("/app/vterm", DISPLAY_SVC);
     473                        app_start("/app/barber");
     474                        app_start("/app/vlaunch");
     475                        app_start("/app/vterm");
    477476                }
    478477        }
  • uspace/app/vcalc/vcalc.c

    re79a025 rfd11144  
    468468}
    469469
     470static void print_syntax(void)
     471{
     472        printf("Syntax: %s [-d <display>]\n", NAME);
     473}
     474
    470475int main(int argc, char *argv[])
    471476{
    472         if (argc < 2) {
    473                 printf("%s: Compositor server not specified.\n", NAME);
    474                 return 1;
    475         }
    476 
    477         window_t *main_window = window_open(argv[1], NULL,
     477        const char *display_svc = DISPLAY_DEFAULT;
     478        int i;
     479
     480        i = 1;
     481        while (i < argc) {
     482                if (str_cmp(argv[i], "-d") == 0) {
     483                        ++i;
     484                        if (i >= argc) {
     485                                printf("Argument missing.\n");
     486                                print_syntax();
     487                                return 1;
     488                        }
     489
     490                        display_svc = argv[i++];
     491                } else {
     492                        printf("Invalid option '%s'.\n", argv[i]);
     493                        print_syntax();
     494                        return 1;
     495                }
     496        }
     497
     498        window_t *main_window = window_open(display_svc, NULL,
    478499            WINDOW_MAIN | WINDOW_DECORATED | WINDOW_RESIZEABLE, NAME);
    479500        if (!main_window) {
  • uspace/app/vdemo/vdemo.c

    re79a025 rfd11144  
    11/*
     2 * Copyright (c) 2020 Jiri Svoboda
    23 * Copyright (c) 2012 Petr Koupy
    34 * All rights reserved.
     
    3637#include <stdio.h>
    3738#include <stdlib.h>
     39#include <str.h>
    3840#include <io/pixel.h>
    3941#include <task.h>
     
    107109}
    108110
     111static void print_syntax(void)
     112{
     113        printf("Syntax: %s [-d <display>]\n", NAME);
     114}
     115
    109116int main(int argc, char *argv[])
    110117{
    111         if (argc >= 2) {
    112                 window_t *main_window = window_open(argv[1], NULL,
    113                     WINDOW_MAIN | WINDOW_DECORATED | WINDOW_RESIZEABLE, "vdemo");
    114                 if (!main_window) {
    115                         printf("Cannot open main window.\n");
     118        const char *disp_svc = DISPLAY_DEFAULT;
     119        int i;
     120
     121        i = 1;
     122        while (i < argc) {
     123                if (str_cmp(argv[i], "-d") == 0) {
     124                        ++i;
     125                        if (i >= argc) {
     126                                printf("Argument missing.\n");
     127                                print_syntax();
     128                                return 1;
     129                        }
     130
     131                        disp_svc = argv[i++];
     132                } else {
     133                        printf("Invalid option '%s'.\n", argv[i]);
     134                        print_syntax();
    116135                        return 1;
    117136                }
     137        }
    118138
    119                 pixel_t grd_bg = PIXEL(255, 240, 240, 240);
    120 
    121                 pixel_t btn_bg = PIXEL(255, 240, 240, 240);
    122                 pixel_t btn_fg = PIXEL(255, 186, 186, 186);
    123                 pixel_t btn_text = PIXEL(255, 0, 0, 0);
    124 
    125                 pixel_t lbl_bg = PIXEL(255, 240, 240, 240);
    126                 pixel_t lbl_text = PIXEL(255, 0, 0, 0);
    127 
    128                 my_label_t *lbl_action = create_my_label(NULL, "Hello there!", 16,
    129                     lbl_bg, lbl_text);
    130                 button_t *btn_confirm = create_button(NULL, NULL, "Confirm", 16,
    131                     btn_bg, btn_fg, btn_text);
    132                 button_t *btn_cancel = create_button(NULL, NULL, "Cancel", 16,
    133                     btn_bg, btn_fg, btn_text);
    134                 grid_t *grid = create_grid(window_root(main_window), NULL, 2, 2,
    135                     grd_bg);
    136                 if (!lbl_action || !btn_confirm || !btn_cancel || !grid) {
    137                         window_close(main_window);
    138                         printf("Cannot create widgets.\n");
    139                         return 1;
    140                 }
    141 
    142                 sig_connect(
    143                     &btn_confirm->clicked,
    144                     &lbl_action->label.widget,
    145                     lbl_action->confirm);
    146                 sig_connect(
    147                     &btn_cancel->clicked,
    148                     &lbl_action->label.widget,
    149                     lbl_action->cancel);
    150 
    151                 grid->add(grid, &lbl_action->label.widget, 0, 0, 2, 1);
    152                 grid->add(grid, &btn_confirm->widget, 0, 1, 1, 1);
    153                 grid->add(grid, &btn_cancel->widget, 1, 1, 1, 1);
    154                 window_resize(main_window, 0, 0, 200, 76,
    155                     WINDOW_PLACEMENT_CENTER);
    156 
    157                 window_exec(main_window);
    158                 task_retval(0);
    159                 async_manager();
    160                 return 1;
    161         } else {
    162                 printf("Compositor server not specified.\n");
     139        window_t *main_window = window_open(disp_svc, NULL,
     140            WINDOW_MAIN | WINDOW_DECORATED | WINDOW_RESIZEABLE, "vdemo");
     141        if (!main_window) {
     142                printf("Cannot open main window.\n");
    163143                return 1;
    164144        }
     145
     146        pixel_t grd_bg = PIXEL(255, 240, 240, 240);
     147
     148        pixel_t btn_bg = PIXEL(255, 240, 240, 240);
     149        pixel_t btn_fg = PIXEL(255, 186, 186, 186);
     150        pixel_t btn_text = PIXEL(255, 0, 0, 0);
     151
     152        pixel_t lbl_bg = PIXEL(255, 240, 240, 240);
     153        pixel_t lbl_text = PIXEL(255, 0, 0, 0);
     154
     155        my_label_t *lbl_action = create_my_label(NULL, "Hello there!", 16,
     156            lbl_bg, lbl_text);
     157        button_t *btn_confirm = create_button(NULL, NULL, "Confirm", 16,
     158            btn_bg, btn_fg, btn_text);
     159        button_t *btn_cancel = create_button(NULL, NULL, "Cancel", 16,
     160            btn_bg, btn_fg, btn_text);
     161        grid_t *grid = create_grid(window_root(main_window), NULL, 2, 2,
     162            grd_bg);
     163        if (!lbl_action || !btn_confirm || !btn_cancel || !grid) {
     164                window_close(main_window);
     165                printf("Cannot create widgets.\n");
     166                return 1;
     167        }
     168
     169        sig_connect(
     170            &btn_confirm->clicked,
     171            &lbl_action->label.widget,
     172            lbl_action->confirm);
     173        sig_connect(
     174            &btn_cancel->clicked,
     175            &lbl_action->label.widget,
     176            lbl_action->cancel);
     177
     178        grid->add(grid, &lbl_action->label.widget, 0, 0, 2, 1);
     179        grid->add(grid, &btn_confirm->widget, 0, 1, 1, 1);
     180        grid->add(grid, &btn_cancel->widget, 1, 1, 1, 1);
     181        window_resize(main_window, 0, 0, 200, 76,
     182            WINDOW_PLACEMENT_CENTER);
     183
     184        window_exec(main_window);
     185        task_retval(0);
     186        async_manager();
     187        return 0;
    165188}
    166189
  • uspace/app/viewer/viewer.c

    re79a025 rfd11144  
    176176}
    177177
     178static void print_syntax(void)
     179{
     180        printf("Syntax: %s [-d <display>] <image-file>...\n", NAME);
     181}
     182
    178183int main(int argc, char *argv[])
    179184{
     185        const char *display_svc = DISPLAY_DEFAULT;
    180186        window_flags_t flags;
    181187        surface_t *lsface;
     
    183189        sysarg_t dwidth;
    184190        sysarg_t dheight;
    185 
    186         if (argc < 2) {
    187                 printf("Compositor server not specified.\n");
     191        int i;
     192
     193        i = 1;
     194        while (i < argc && argv[i][0] == '-') {
     195                if (str_cmp(argv[i], "-d") == 0) {
     196                        ++i;
     197                        if (i >= argc) {
     198                                printf("Argument missing.\n");
     199                                print_syntax();
     200                                return 1;
     201                        }
     202
     203                        display_svc = argv[i++];
     204                } else {
     205                        printf("Invalid option '%s'.\n", argv[i]);
     206                        print_syntax();
     207                        return 1;
     208                }
     209        }
     210
     211        if (i >= argc) {
     212                printf("No image files specified.\n");
     213                print_syntax();
    188214                return 1;
    189215        }
    190216
    191         if (argc < 3) {
    192                 printf("No image files specified.\n");
    193                 return 1;
    194         }
    195 
    196         imgs_count = argc - 2;
     217        imgs_count = argc - i;
    197218        imgs = calloc(imgs_count, sizeof(char *));
    198219        if (imgs == NULL) {
     
    201222        }
    202223
    203         for (int i = 0; i < argc - 2; i++) {
    204                 imgs[i] = str_dup(argv[i + 2]);
    205                 if (imgs[i] == NULL) {
     224        for (int j = 0; j < argc - i; j++) {
     225                imgs[j] = str_dup(argv[i + j]);
     226                if (imgs[j] == NULL) {
    206227                        printf("Out of memory.\n");
    207228                        return 3;
     
    221242                flags |= WINDOW_DECORATED;
    222243
    223         main_window = window_open(argv[1], NULL, flags, "viewer");
     244        main_window = window_open(display_svc, NULL, flags, "viewer");
    224245        if (!main_window) {
    225246                printf("Cannot open main window.\n");
  • uspace/app/vlaunch/vlaunch.c

    re79a025 rfd11144  
    3737#include <stdio.h>
    3838#include <stdlib.h>
     39#include <str.h>
    3940#include <task.h>
    4041#include <str_error.h>
     
    5859#define LOGO_HEIGHT  66
    5960
    60 static char *winreg = NULL;
     61static char *display_svc = DISPLAY_DEFAULT;
    6162
    6263static int app_launch(const char *app)
    6364{
    64         printf("%s: Spawning %s %s \n", NAME, app, winreg);
    65 
     65        errno_t rc;
    6666        task_id_t id;
    6767        task_wait_t wait;
    68         errno_t rc = task_spawnl(&id, &wait, app, app, winreg, NULL);
     68
     69        if (display_svc != DISPLAY_DEFAULT) {
     70                printf("%s: Spawning %s -d %s\n", NAME, app, display_svc);
     71                rc = task_spawnl(&id, &wait, app, app, "-d", display_svc, NULL);
     72        } else {
     73                printf("%s: Spawning %s\n", NAME, app);
     74                rc = task_spawnl(&id, &wait, app, app, NULL);
     75        }
     76
    6977        if (rc != EOK) {
    7078                printf("%s: Error spawning %s %s (%s)\n", NAME, app,
    71                     winreg, str_error(rc));
     79                    display_svc != DISPLAY_DEFAULT ? display_svc :
     80                    "<default>", str_error(rc));
    7281                return -1;
    7382        }
     
    91100}
    92101
     102static void print_syntax(void)
     103{
     104        printf("Syntax: %s [-d <display>]\n", NAME);
     105}
     106
    93107int main(int argc, char *argv[])
    94108{
    95         if (argc < 2) {
    96                 printf("Compositor server not specified.\n");
    97                 return 1;
     109        int i;
     110
     111        i = 1;
     112        while (i < argc) {
     113                if (str_cmp(argv[i], "-d") == 0) {
     114                        ++i;
     115                        if (i >= argc) {
     116                                printf("Argument missing.\n");
     117                                print_syntax();
     118                                return 1;
     119                        }
     120
     121                        display_svc = argv[i++];
     122                } else {
     123                        printf("Invalid option '%s'.\n", argv[i]);
     124                        print_syntax();
     125                        return 1;
     126                }
    98127        }
    99128
     
    104133        }
    105134
    106         winreg = argv[1];
    107         window_t *main_window = window_open(argv[1], NULL,
     135        window_t *main_window = window_open(display_svc, NULL,
    108136            WINDOW_MAIN | WINDOW_DECORATED | WINDOW_RESIZEABLE, "vlaunch");
    109137        if (!main_window) {
  • uspace/app/vterm/vterm.c

    re79a025 rfd11144  
    11/*
     2 * Copyright (c) 2020 Jiri Svoboda
    23 * Copyright (c) 2012 Petr Koupy
    34 * All rights reserved.
     
    4243#define NAME  "vterm"
    4344
     45static void print_syntax(void)
     46{
     47        printf("Syntax: %s [-d <display>]\n", NAME);
     48}
     49
    4450int main(int argc, char *argv[])
    4551{
    46         if (argc < 2) {
    47                 printf("%s: Compositor server not specified.\n", NAME);
    48                 return 1;
     52        const char *display_svc = DISPLAY_DEFAULT;
     53        int i;
     54
     55        i = 1;
     56        while (i < argc) {
     57                if (str_cmp(argv[i], "-d") == 0) {
     58                        ++i;
     59                        if (i >= argc) {
     60                                printf("Argument missing.\n");
     61                                print_syntax();
     62                                return 1;
     63                        }
     64
     65                        display_svc = argv[i++];
     66                } else {
     67                        printf("Invalid option '%s'.\n", argv[i]);
     68                        print_syntax();
     69                        return 1;
     70                }
    4971        }
    5072
    51         window_t *main_window = window_open(argv[1], NULL,
     73        window_t *main_window = window_open(display_svc, NULL,
    5274            WINDOW_MAIN | WINDOW_DECORATED, "vterm");
    5375        if (!main_window) {
Note: See TracChangeset for help on using the changeset viewer.