Example #1
0
int main(int argc, char **argv)
{		
	int check_busy = 0;
	if (argc < 3)
		usage();

	//init spi oled
	init_spi_oled(argv[1]);

	argc-=2;
	argv+=2;

	while (argc >= 1) {
		const char *cmd = argv[0];
		int args = 0;
		if (strcmp(cmd, "-B") == 0) {
			check_busy = 0;
			args = 1;
			check_busy_flag3(atoi(argv[1]));
		}
		if (strcmp(cmd, "-b") == 0)
			check_busy = 1;
		if (check_busy)
			check_busy_flag();
		if (strcmp(cmd, "-f") == 0) {
			select_font(atoi(argv[1]));
			args = 1;
		}
		if (strcmp(cmd, "-e") == 0) {
			entry_mode_set(atoi(argv[1]), atoi(argv[2]));
			args = 2;
		}
		if (strcmp(cmd, "-m") == 0) {
			display_mode(atoi(argv[1]), atoi(argv[2]), atoi(argv[3]));
			args = 3;
		}
		if (strcmp(cmd, "-c") == 0)
			clear_display();
		if (strcmp(cmd, "-g") == 0) {
			set_ddram_address(atoi(argv[1]) * 0x40 + atoi(argv[2]));
			args = 2;
		}
		if (strcmp(cmd, "-a") == 0) {
			set_ddram_address(strtoul(argv[1], NULL, 0));
			args = 1;
		}
		if (strcmp(cmd, "-A") == 0) {
			set_cgram_address(strtoul(argv[1], NULL, 0));
			args = 1;
		}
		if (strcmp(cmd, "-w") == 0) {
			write_data(strtoul(argv[1], NULL, 0));
			args = 1;
		}
		if (strcmp(cmd, "-h") == 0)
			return_home();
		if (strcmp(cmd, "-C") == 0) {
			shift_cursor(*argv[1] == 'r');
			args = 1;
		}
		if (strcmp(cmd, "-S") == 0) {
			shift_display(*argv[1] == 'r');
			args = 1;
		}
		if (strcmp(cmd, "-t") == 0) {
			write_str(argv[1]);
			args = 1;
		}
		if (*cmd != '-')
			write_str(cmd);
		check_busy = 1;
		argc -= 1 + args;
		argv += 1 + args;
	}
}
Example #2
0
bool_t mainloop_lessui(lessui_t *ui, fbparser_t *fbp) {
  bool_t done = FALSE;
  ui->dirty = TRUE;
  while(!done) {

    if( ui->dirty ) {
/*       debug_cursor(&ui->cursor); */
      if( redraw_cursor_display(&ui->display, &ui->cursor, fbp) ) {
	if( ui->display.pivot > 0 ) {
	  /* when pivot is being cycled, it's easy to get confused,
	   so we need something to represent the cursor. For now
	  I'm drawing the cursor itself, but it's not user friendly */
	  show_cursor_lessui(ui, &ui->cursor, fbp);
	}
      }
      ui->dirty = FALSE;
    }

    switch(getcommand_display(&ui->display)) {
    case quit:
      done = 1;
      break;
    case forward:
      forward_lessui(ui, fbp, 1);
      break;
    case backward:
      back_lessui(ui, fbp, 1);
      break;
    case indent:
      pivot_display(&ui->display, -1);
      break;
    case backindent:
      pivot_display(&ui->display, +1);
      break;
    case right:
      shift_display(&ui->display, +5);
      break;
    case left:
      shift_display(&ui->display, -5);
      break;
    case pgdown:
      forward_lessui(ui, fbp, 10);
      break;
    case pgup:
      back_lessui(ui, fbp, 10);
      break;
    case home:
      home_lessui(ui, fbp);
      break;
    case end:
      end_lessui(ui, fbp);
      break;
    case attributes:
      toggle_display(&ui->display, DISPLAY_ATTRIBUTES);
      break;
    case wordwrap:
      toggle_display(&ui->display, DISPLAY_WRAP);
      break;
    case next_sibling:
      next_sibling_lessui(ui, fbp);
      break;
    case prev_sibling:
      break;
    case help:
      help_lessui(ui);
      break;
    case colours:
      colour_cycle_lessui(ui);
      break;
    case refresh:
      refresh_fileblockparser(fbp);
      break;
    default:
      break;
    }
    ui->dirty = TRUE;
  }
  return done;
}