diff options
Diffstat (limited to 'backends/visca.c')
| -rw-r--r-- | backends/visca.c | 16 | 
1 files changed, 12 insertions, 4 deletions
| diff --git a/backends/visca.c b/backends/visca.c index a36b139..6ae14d9 100644 --- a/backends/visca.c +++ b/backends/visca.c @@ -4,9 +4,12 @@  #include <string.h>  #include <math.h> -#ifndef _WIN32 +#ifdef __linux__  	#include <sys/ioctl.h>  	#include <asm/termbits.h> +#elif __APPLE__ +	#include <sys/ioctl.h> +	#include <IOKit/serial/ioss.h>  #endif  #include "visca.h" @@ -89,9 +92,6 @@ static int ptz_configure_instance(instance* inst, char* option, char* value){  		LOG("Direct device connections are not possible on Windows");  		return 1;  		#else - -		struct termios2 device_config; -  		options = strchr(value, ' ');  		if(options){  			//terminate port name @@ -108,6 +108,8 @@ static int ptz_configure_instance(instance* inst, char* option, char* value){  		//configure baudrate  		if(options){ +			#ifdef __linux__ +			struct termios2 device_config;  			//get current port config  			if(ioctl(data->fd, TCGETS2, &device_config)){  				LOGPF("Failed to get port configuration data for %s: %s", value, strerror(errno)); @@ -123,6 +125,12 @@ static int ptz_configure_instance(instance* inst, char* option, char* value){  			if(ioctl(data->fd, TCSETS2, &device_config)){  				LOGPF("Failed to set port configuration data for %s: %s", value, strerror(errno));  			} +			#elif __APPLE__ +			speed_t speed = strtoul(options, NULL, 10); +			if(ioctl(data->fd, IOSSIOSPEED, &speed)){ +				LOGPF("Failed to set port configuration data for %s: %s", value, strerror(errno)); +			} +			#endif  		}  		return 0;  		#endif | 
