summaryrefslogtreecommitdiff
path: root/apps/plugins/rocklife.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/rocklife.c')
-rw-r--r--apps/plugins/rocklife.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/apps/plugins/rocklife.c b/apps/plugins/rocklife.c
index 5258121ea3..35c848de1d 100644
--- a/apps/plugins/rocklife.c
+++ b/apps/plugins/rocklife.c
@@ -131,7 +131,7 @@ static bool load_cellfile(const char *file, char *pgrid){
131 fd = rb->open(file, O_RDONLY); 131 fd = rb->open(file, O_RDONLY);
132 if (fd<0) 132 if (fd<0)
133 return false; 133 return false;
134 134
135 init_grid(pgrid); 135 init_grid(pgrid);
136 136
137 char c; 137 char c;
@@ -143,7 +143,7 @@ static bool load_cellfile(const char *file, char *pgrid){
143 ymid = (GRID_H>>1) - 2; 143 ymid = (GRID_H>>1) - 2;
144 comment = false; 144 comment = false;
145 145
146 while (true) { 146 while (true) {
147 nc = rb->read(fd, &c, 1); 147 nc = rb->read(fd, &c, 1);
148 if (nc <= 0) 148 if (nc <= 0)
149 break; 149 break;
@@ -343,7 +343,7 @@ static inline bool check_cell(unsigned char *n)
343 343
344 /* now we build the number of non-zero neighbours :-P */ 344 /* now we build the number of non-zero neighbours :-P */
345 alive_cells = 8 - empty_cells; 345 alive_cells = 8 - empty_cells;
346 346
347 if (n[4]) { 347 if (n[4]) {
348 /* If the cell is alive, it stays alive iff it has 2 or 3 alive neighbours */ 348 /* If the cell is alive, it stays alive iff it has 2 or 3 alive neighbours */
349 result = (alive_cells==2 || alive_cells==3); 349 result = (alive_cells==2 || alive_cells==3);
@@ -468,6 +468,7 @@ enum plugin_status plugin_start(const void* parameter)
468 int button = 0; 468 int button = 0;
469 int quit = 0; 469 int quit = 0;
470 int stop = 0; 470 int stop = 0;
471 int usb = 0;
471 int pattern = 0; 472 int pattern = 0;
472 char *pgrid; 473 char *pgrid;
473 char *pnext_grid; 474 char *pnext_grid;
@@ -488,8 +489,7 @@ enum plugin_status plugin_start(const void* parameter)
488 pgrid = (char *)grid_a; 489 pgrid = (char *)grid_a;
489 pnext_grid = (char *)grid_b; 490 pnext_grid = (char *)grid_b;
490 491
491 init_grid(pgrid); 492 init_grid(pgrid);
492
493 493
494 if( parameter == NULL ) 494 if( parameter == NULL )
495 { 495 {
@@ -544,6 +544,11 @@ enum plugin_status plugin_start(const void* parameter)
544 stop = 1; 544 stop = 1;
545 break; 545 break;
546 default: 546 default:
547 if (rb->default_event_handler(button) == SYS_USB_CONNECTED) {
548 stop = 1;
549 quit = 1;
550 usb = 1;
551 }
547 break; 552 break;
548 } 553 }
549 rb->yield(); 554 rb->yield();
@@ -562,12 +567,12 @@ enum plugin_status plugin_start(const void* parameter)
562 break; 567 break;
563 case ROCKLIFE_QUIT: 568 case ROCKLIFE_QUIT:
564 /* quit plugin */ 569 /* quit plugin */
565 quit=true; 570 quit = 1;
566 return PLUGIN_OK;
567 break; 571 break;
568 default: 572 default:
569 if (rb->default_event_handler(button) == SYS_USB_CONNECTED) { 573 if (rb->default_event_handler(button) == SYS_USB_CONNECTED) {
570 return PLUGIN_USB_CONNECTED; 574 quit = 1;
575 usb = 1;
571 } 576 }
572 break; 577 break;
573 } 578 }
@@ -575,5 +580,5 @@ enum plugin_status plugin_start(const void* parameter)
575 } 580 }
576 581
577 backlight_use_settings(); /* backlight control in lib/helper.c */ 582 backlight_use_settings(); /* backlight control in lib/helper.c */
578 return PLUGIN_OK; 583 return usb? PLUGIN_USB_CONNECTED: PLUGIN_OK;
579} 584}