mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-07-06 03:31:43 +00:00
Add data accessors for USBCamera and MJPEGServer.
USBCamera: getPath() MJPEGServer: getListenAddress() and getPort()
This commit is contained in:
@@ -210,6 +210,11 @@ CS_Sink* CS_EnumerateSourceSinks(CS_Source source, int* count,
|
||||
CS_Source CS_CopySource(CS_Source source, CS_Status* status);
|
||||
void CS_ReleaseSource(CS_Source source, CS_Status* status);
|
||||
|
||||
//
|
||||
// USBCamera Source Functions
|
||||
//
|
||||
char* CS_GetUSBCameraPath(CS_Source source, CS_Status* status);
|
||||
|
||||
//
|
||||
// OpenCV Source Functions
|
||||
//
|
||||
@@ -251,6 +256,12 @@ CS_Source CS_GetSinkSource(CS_Sink sink, CS_Status* status);
|
||||
CS_Sink CS_CopySink(CS_Sink sink, CS_Status* status);
|
||||
void CS_ReleaseSink(CS_Sink sink, CS_Status* status);
|
||||
|
||||
//
|
||||
// MJPEGServer Sink Functions
|
||||
//
|
||||
char* CS_GetMJPEGServerListenAddress(CS_Sink sink, CS_Status* status);
|
||||
int CS_GetMJPEGServerPort(CS_Sink sink, CS_Status* status);
|
||||
|
||||
//
|
||||
// OpenCV Sink Functions
|
||||
//
|
||||
|
||||
@@ -198,6 +198,11 @@ llvm::ArrayRef<CS_Sink> EnumerateSourceSinks(
|
||||
CS_Source CopySource(CS_Source source, CS_Status* status);
|
||||
void ReleaseSource(CS_Source source, CS_Status* status);
|
||||
|
||||
//
|
||||
// USBCamera Source Functions
|
||||
//
|
||||
std::string GetUSBCameraPath(CS_Source source, CS_Status* status);
|
||||
|
||||
//
|
||||
// OpenCV Source Functions
|
||||
//
|
||||
@@ -243,6 +248,12 @@ CS_Source GetSinkSource(CS_Sink sink, CS_Status* status);
|
||||
CS_Sink CopySink(CS_Sink sink, CS_Status* status);
|
||||
void ReleaseSink(CS_Sink sink, CS_Status* status);
|
||||
|
||||
//
|
||||
// MJPEGServer Sink Functions
|
||||
//
|
||||
std::string GetMJPEGServerListenAddress(CS_Sink sink, CS_Status* status);
|
||||
int GetMJPEGServerPort(CS_Sink sink, CS_Status* status);
|
||||
|
||||
//
|
||||
// OpenCV Sink Functions
|
||||
//
|
||||
|
||||
@@ -223,6 +223,9 @@ class USBCamera : public VideoSource {
|
||||
/// @return Vector of USB camera information (one for each camera)
|
||||
static std::vector<USBCameraInfo> EnumerateUSBCameras();
|
||||
|
||||
/// Get the path to the device.
|
||||
std::string GetPath() const;
|
||||
|
||||
/// Set the brightness, as a percentage (0-100).
|
||||
void SetBrightness(int brightness);
|
||||
|
||||
@@ -402,6 +405,12 @@ class MJPEGServer : public VideoSink {
|
||||
/// @param name Sink name (arbitrary unique identifier)
|
||||
/// @param port TCP port number
|
||||
MJPEGServer(llvm::StringRef name, int port) : MJPEGServer(name, "", port) {}
|
||||
|
||||
/// Get the listen address of the server.
|
||||
std::string GetListenAddress() const;
|
||||
|
||||
/// Get the port number of the server.
|
||||
int GetPort() const;
|
||||
};
|
||||
|
||||
/// A sink for user code to accept video frames as OpenCV images.
|
||||
|
||||
@@ -173,6 +173,11 @@ inline std::vector<USBCameraInfo> USBCamera::EnumerateUSBCameras() {
|
||||
return ::cs::EnumerateUSBCameras(&status);
|
||||
}
|
||||
|
||||
inline std::string USBCamera::GetPath() const {
|
||||
CS_Status status = 0;
|
||||
return ::cs::GetUSBCameraPath(m_handle, &status);
|
||||
}
|
||||
|
||||
inline void USBCamera::SetBrightness(int brightness) {
|
||||
if (brightness > 100) {
|
||||
brightness = 100;
|
||||
@@ -323,6 +328,16 @@ inline MJPEGServer::MJPEGServer(llvm::StringRef name,
|
||||
m_handle = CreateMJPEGServer(name, listenAddress, port, &m_status);
|
||||
}
|
||||
|
||||
inline std::string MJPEGServer::GetListenAddress() const {
|
||||
m_status = 0;
|
||||
return cs::GetMJPEGServerListenAddress(m_handle, &m_status);
|
||||
}
|
||||
|
||||
inline int MJPEGServer::GetPort() const {
|
||||
m_status = 0;
|
||||
return cs::GetMJPEGServerPort(m_handle, &m_status);
|
||||
}
|
||||
|
||||
inline CvSink::CvSink(llvm::StringRef name) {
|
||||
m_handle = CreateCvSink(name, &m_status);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user