func convertSubscriptionPy()

in main.go [455:496]


func convertSubscriptionPy(subscriptionPy *C.PyObject) (regions []gymvnc.Region, ok bool) {
	ok = true

	if subscriptionPy == nil {
		return
	}

	// Iterate over all subscription
	subscriptionIter := C.PyObject_GetIter(subscriptionPy)
	if subscriptionIter == nil {
		ok = false
		return
	}

	for itemPy := C.PyIter_Next(subscriptionIter); ok && itemPy != nil; itemPy = C.PyIter_Next(subscriptionIter) {
		var x, y, width, height int

		if ok {
			x, ok = getIntFromTuple(itemPy, 0)
		}
		if ok {
			width, ok = getIntFromTuple(itemPy, 1)
		}
		if ok {
			y, ok = getIntFromTuple(itemPy, 2)
		}
		if ok {
			height, ok = getIntFromTuple(itemPy, 3)
		}

		C.go_vncdriver_decref(itemPy)
		regions = append(regions, gymvnc.Region{
			X:      uint16(x),
			Y:      uint16(y),
			Width:  uint16(width),
			Height: uint16(height),
		})
	}
	C.go_vncdriver_decref(subscriptionIter)

	return
}