zorldo

Goofing around with Ebiten
git clone git://bsandro.tech/zorldo
Log | Files | Refs | README

mobileinit_ios.go (732B)


      1 // Copyright 2015 The Go Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 package mobileinit
      6 
      7 import (
      8 	"io"
      9 	"log"
     10 	"os"
     11 	"unsafe"
     12 )
     13 
     14 /*
     15 #include <stdlib.h>
     16 #include <os/log.h>
     17 
     18 os_log_t create_os_log() {
     19 	return os_log_create("org.golang.mobile", "os_log");
     20 }
     21 
     22 void os_log_wrap(os_log_t log, const char *str) {
     23 	os_log(log, "%s", str);
     24 }
     25 */
     26 import "C"
     27 
     28 type osWriter struct {
     29 	w C.os_log_t
     30 }
     31 
     32 func (o osWriter) Write(p []byte) (n int, err error) {
     33 	cstr := C.CString(string(p))
     34 	C.os_log_wrap(o.w, cstr)
     35 	C.free(unsafe.Pointer(cstr))
     36 	return len(p), nil
     37 }
     38 
     39 func init() {
     40 	log.SetOutput(io.MultiWriter(os.Stderr, osWriter{C.create_os_log()}))
     41 }