From 080b139a54df16890855e963a77e848ba1ad29bf Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Fri, 23 Mar 2007 01:55:59 +0000
Subject: [PATCH] Added get/set baud rate functions.

---
 src/comio/comio.h       |  2 ++
 src/comio/comio_win32.c | 22 ++++++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/src/comio/comio.h b/src/comio/comio.h
index a68eb354e0..e42a365b98 100644
--- a/src/comio/comio.h
+++ b/src/comio/comio.h
@@ -69,6 +69,8 @@ extern "C" {
 
 COM_HANDLE	comOpen(const char* device);
 BOOL		comClose(COM_HANDLE);
+long		comGetBaudRate(COM_HANDLE);
+BOOL		comSetBaudRate(COM_HANDLE, ulong rate);
 int			comGetModemStatus(COM_HANDLE);
 int			comRaiseDTR(COM_HANDLE);
 int			comLowerDTR(COM_HANDLE);
diff --git a/src/comio/comio_win32.c b/src/comio/comio_win32.c
index bbc5de3f8e..3d129ca83e 100644
--- a/src/comio/comio_win32.c
+++ b/src/comio/comio_win32.c
@@ -69,6 +69,28 @@ BOOL comClose(COM_HANDLE handle)
 	return CloseHandle(handle);
 }
 
+long comGetBaudRate(COM_HANDLE handle)
+{
+	DCB dcb;
+
+	if(GetCommState(handle, &dcb)!=TRUE)
+		return COM_ERROR;
+
+	return dcb.BaudRate;
+}
+
+BOOL comSetBaudRate(COM_HANDLE handle, unsigned long rate)
+{
+	DCB dcb;
+
+	if(GetCommState(handle, &dcb)!=TRUE)
+		return FALSE;
+
+	dcb.BaudRate=rate;
+
+	return SetCommState(handle, &dcb);
+}
+
 int comGetModemStatus(COM_HANDLE handle)
 {
 	DWORD status=0;
-- 
GitLab