X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=src%2Fmodel.c;h=b89dbc958bcf8f40f93da00bdf26712f64d6e76e;hb=5292406311d31682a850baf059cab01a6f0262b2;hp=ce844bcb63e72ff1d911e5789b4563a093ec35a4;hpb=3bcfb092671765e3ece0c4225c4e69ad960b31cc;p=rodin%2Fchimara.git diff --git a/src/model.c b/src/model.c index ce844bc..b89dbc9 100644 --- a/src/model.c +++ b/src/model.c @@ -2,6 +2,11 @@ static winid_t mainwin = NULL; +void sayit(void) +{ + g_printerr("I'm the interrupt handler!\n"); +} + void glk_main(void) { /* Open the main window. */ @@ -12,18 +17,19 @@ void glk_main(void) return; } + /* char buffer[256]; int i; for(i = 0; i < 256; i++) buffer[i] = (char)glk_char_to_upper(i); - /*frefid_t f = glk_fileref_create_temp(fileusage_BinaryMode, 0); + */ + /* + frefid_t f = glk_fileref_create_by_prompt(fileusage_BinaryMode, filemode_ReadWrite, 0); if(f) - {*/ - - char memorybuffer[100]; + { - strid_t s = glk_stream_open_memory(memorybuffer, 100, + strid_t s = glk_stream_open_file(f, filemode_ReadWrite, 0); glk_stream_set_current(s); glk_put_char('X'); @@ -45,9 +51,29 @@ void glk_main(void) g_printerr("Read count: %d\nWrite count: %d\n", result.readcount, result.writecount); -/* glk_fileref_destroy(f); - }*/ + } + */ + + glk_set_window(mainwin); + + glk_set_interrupt_handler(&sayit); + + gchar buffer[256]; + event_t ev; + while(1) { + glk_put_string("prompt> "); + glk_request_line_event(mainwin, buffer, 256, 0); + glk_select(&ev); + switch(ev.type) { + default: + printf("Received event:\n"); + printf("Type: %d\n", ev.type); + printf("Win: %d\n", glk_window_get_rock(ev.win)); + printf("Var1: %d\n", ev.val1); + printf("Var2: %d\n", ev.val2); + } + } /* Bye bye */ glk_exit();