Changeset a047aaa in mainline
- Timestamp:
- 2014-11-13T00:27:06Z (10 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 9696b01
- Parents:
- 7e3581e
- Files:
-
- 32 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
boot/Makefile.common
r7e3581e ra047aaa 168 168 169 169 RD_APPS_NON_ESSENTIAL = \ 170 $(USPACE_PATH)/app/barber/barber \ 170 171 $(USPACE_PATH)/app/bithenge/bithenge \ 171 172 $(USPACE_PATH)/app/blkdump/blkdump \ -
uspace/Makefile
r7e3581e ra047aaa 34 34 35 35 DIRS = \ 36 app/barber \ 36 37 app/bdsh \ 37 38 app/bithenge \ … … 212 213 lib/fmtutil \ 213 214 lib/scsi \ 215 lib/compress \ 214 216 lib/softint \ 215 217 lib/softfloat \ -
uspace/Makefile.common
r7e3581e ra047aaa 144 144 LIBNIC_PREFIX = $(LIB_PREFIX)/nic 145 145 LIBMINIX_PREFIX = $(LIB_PREFIX)/minix 146 LIBCOMPRESS_PREFIX = $(LIB_PREFIX)/compress 146 147 147 148 LIBSCSI_PREFIX = $(LIB_PREFIX)/scsi -
uspace/app/init/init.c
r7e3581e ra047aaa 355 355 int rc = compositor(HID_INPUT, HID_COMPOSITOR_SERVER); 356 356 if (rc == EOK) { 357 gui_start("/app/barber", HID_COMPOSITOR_SERVER); 357 358 gui_start("/app/vlaunch", HID_COMPOSITOR_SERVER); 358 359 gui_start("/app/vterm", HID_COMPOSITOR_SERVER); -
uspace/app/vlaunch/vlaunch.c
r7e3581e ra047aaa 37 37 #include <stdio.h> 38 38 #include <malloc.h> 39 #include <io/pixel.h>40 39 #include <task.h> 41 #include <str.h>42 40 #include <str_error.h> 43 #include <loc.h>44 #include <fibril_synch.h>45 #include <io/pixel.h>46 #include <device/led_dev.h>47 41 48 42 #include <window.h> … … 64 58 #define LOGO_HEIGHT 66 65 59 66 #define PERIOD 100000067 #define COLORS 768 69 60 static char *winreg = NULL; 70 static fibril_timer_t *timer = NULL;71 static list_t led_devs;72 73 static pixel_t colors[COLORS] = {74 PIXEL(0xff, 0xff, 0x00, 0x00),75 PIXEL(0xff, 0x00, 0xff, 0x00),76 PIXEL(0xff, 0x00, 0x00, 0xff),77 PIXEL(0xff, 0xff, 0xff, 0x00),78 PIXEL(0xff, 0xff, 0x00, 0xff),79 PIXEL(0xff, 0x00, 0xff, 0xff),80 PIXEL(0xff, 0xff, 0xff, 0xff)81 };82 83 static unsigned int color = 0;84 85 typedef struct {86 link_t link;87 service_id_t svc_id;88 async_sess_t *sess;89 } led_dev_t;90 61 91 62 static int app_launch(const char *app) … … 129 100 } 130 101 131 static void timer_callback(void *data)132 {133 pixel_t next_color = colors[color];134 135 color++;136 if (color >= COLORS)137 color = 0;138 139 list_foreach(led_devs, link, led_dev_t, dev) {140 if (dev->sess)141 led_dev_color_set(dev->sess, next_color);142 }143 144 fibril_timer_set(timer, PERIOD, timer_callback, NULL);145 }146 147 static void loc_callback(void)148 {149 category_id_t led_cat;150 int rc = loc_category_get_id("led", &led_cat, IPC_FLAG_BLOCKING);151 if (rc != EOK)152 return;153 154 service_id_t *svcs;155 size_t count;156 rc = loc_category_get_svcs(led_cat, &svcs, &count);157 if (rc != EOK)158 return;159 160 for (size_t i = 0; i < count; i++) {161 bool known = false;162 163 /* Determine whether we already know this device. */164 list_foreach(led_devs, link, led_dev_t, dev) {165 if (dev->svc_id == svcs[i]) {166 known = true;167 break;168 }169 }170 171 if (!known) {172 led_dev_t *dev = (led_dev_t *) calloc(1, sizeof(led_dev_t));173 if (!dev)174 continue;175 176 link_initialize(&dev->link);177 dev->svc_id = svcs[i];178 dev->sess = loc_service_connect(EXCHANGE_SERIALIZE, svcs[i], 0);179 180 list_append(&dev->link, &led_devs);181 }182 }183 184 // FIXME: Handle LED device removal185 186 free(svcs);187 }188 189 102 int main(int argc, char *argv[]) 190 103 { 191 104 if (argc < 2) { 192 105 printf("Compositor server not specified.\n"); 193 return 1;194 }195 196 list_initialize(&led_devs);197 int rc = loc_register_cat_change_cb(loc_callback);198 if (rc != EOK) {199 printf("Unable to register callback for device discovery.\n");200 return 1;201 }202 203 timer = fibril_timer_create(NULL);204 if (!timer) {205 printf("Unable to create timer.\n");206 106 return 1; 207 107 } … … 262 162 window_exec(main_window); 263 163 264 fibril_timer_set(timer, PERIOD, timer_callback, NULL);265 266 164 task_retval(0); 267 165 async_manager();
Note:
See TracChangeset
for help on using the changeset viewer.