public static void glk_put_string_stream_uni(strid_t str, string s) { IntPtr buf = StrToUTF32(s); try { glk_put_string_stream_uni(str, buf); } finally { Marshal.FreeHGlobal(buf); } }
protected override void Dispose(bool disposing) { if (!gstr.IsNull) { stream_result_t dummy; Glk.glk_stream_close(gstr, out dummy); gstr = strid_t.Null; } }
public GlkStream(strid_t gstr) { if (gstr.IsNull) { throw new ArgumentNullException("gstr"); } this.gstr = gstr; }
public static uint glk_get_line_stream_uni(strid_t str, StringBuilder sb) { int len = sb.Capacity; IntPtr buf = Marshal.AllocHGlobal(len * 4); try { uint result = glk_get_line_stream_uni(str, buf, (uint)len * 4); StrFromUTF32(buf, sb); return(result); } finally { Marshal.FreeHGlobal(buf); } }
private Stream OpenStream(frefid_t fileref, FileMode mode) { if (fileref.IsNull) { return(null); } strid_t gstr = Glk.glk_stream_open_file(fileref, mode, 0); if (gstr.IsNull) { return(null); } return(new GlkStream(gstr)); }
public static extern void glk_put_buffer_stream(strid_t str, [In] byte[] buf, uint len);
private static extern void glk_put_string_stream_uni(strid_t str, IntPtr s);
public static extern uint glk_get_buffer_stream_uni(strid_t str, [Out] uint[] buf, uint len);
public static extern int glk_get_char_stream_uni(strid_t str);
public static extern void glk_stream_set_position(strid_t str, int pos, SeekMode seekmode);
public static extern uint glk_stream_get_rock(strid_t str);
public static extern strid_t glk_stream_iterate(strid_t str, out uint rockptr);
public static extern void glk_stream_close(strid_t str, out stream_result_t result);
public static extern void glk_window_set_echo_stream(winid_t win, strid_t str);
public static extern void glk_put_buffer_stream_uni(strid_t str, [In] uint[] buf, uint len);
public static extern void glk_set_style_stream(strid_t str, Style styl);
public static extern uint glk_stream_get_position(strid_t str);
private static extern uint glk_get_line_stream_uni(strid_t str, IntPtr buf, uint len);
public static extern void glk_stream_set_current(strid_t str);
public static extern uint glk_get_buffer_stream(strid_t str, [Out] byte[] buf, uint len);
public static extern void glk_put_char_stream(strid_t str, byte ch);
public static extern BlorbError giblorb_set_resource_map(strid_t file);
public static extern void glk_put_char_stream_uni(strid_t str, uint ch);