Skip to content

Instantly share code, notes, and snippets.

@tshirtman
Created August 11, 2012 16:32
Show Gist options
  • Select an option

  • Save tshirtman/3325614 to your computer and use it in GitHub Desktop.

Select an option

Save tshirtman/3325614 to your computer and use it in GitHub Desktop.
# -------------------------------------------------------------------
# Bluetooth
class class Bluetooth(object):
"""
Bluetooth service class, used to manage global state of bluetooth
device and create connections
"""
cdef JNIEnv *j_env
cdef jclass j_class
cdef jobject j_self
cdef jclass adapter
cdef __cinit__(self):
self.j_env = SDL_ANDROID_GetJNIEnv()
self.adapter = self.j_env.FindClass(self.j_env, "android/bluetooth/BluetoothAdapter")
cdef __init__(self):
self.connections = []
self.local_name = ""
cdef bluetooth_connect(address):
# TODO
pass
cdef remote_name(self, address):
# TODO
pass
cdef get_scan_mode(self):
# TODO
pass
cdef enabled(self):
# TODO
pass
cdef toggle(self):
# TODO
pass
cdef close(self, connection):
# TODO
pass
cdef class BluetoothConnection(object):
cdef JNIEnv *j_env
cdef jclass j_class
cdef jobject j_self
def __cinit__(self):
self.j_env = SDL_ANDROID_GetJNIEnv()
self.j_class = self.j_env.FindClass(self.j_env,
"org/renpy/android/BluetoothConnection")
def __init__(self, msocket=None):
cdef jmethodID constructor = self.j_env.GetMethodID(
self.j_env, self.j_class, "<init>", "(C)V")
self.j_self = self.j_env.NewObject(
self.j_env, self.j_class, constructor)
cdef void setUUID(self, bytes uuid):
cdef jmethodID j_method = self.j_env.GetMethodID(
self.j_env, self.j_class,
"setUUID",
"(Ljava/lang/String;)V")
self.j_env.CallVoidMethod(
self.j_env, self.j_class, self.j_self, j_method,
self.j_env.NewStringUTF(self.j_env, <const_char *><char *>uuid))
cdef getUUID(self):
cdef jmethodID j_method = self.j_env.GetMethodID(self.j_env, self.j_class,
"getUUID",
"()Ljava/lang/String;")
cdef jstring result = <jstring>self.j_env.CallObjectMethod(
self.j_env, self.j_class, self.j_self, j_method)
# get the char* from the string
cdef char *j_uuid = <char *>self.j_env.GetStringUTFChars(self.j_env, result, NULL)
# create a python string
cdef str py_uuid = <str><bytes>j_uuid
# release the original
self.j_env.ReleaseStringUTFChars(self.j_env, result, <const_char *>j_uuid)
return py_uuid
cdef read(self, buffsize):
# TODO
pass
cdef write(self, ascii):
# TODO
pass
cdef read_line(self):
# TODO
pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment