diff --git a/cscore/src/main/native/include/cscore_c.h b/cscore/src/main/native/include/cscore_c.h index 8258ee78d9..e4b2536524 100644 --- a/cscore/src/main/native/include/cscore_c.h +++ b/cscore/src/main/native/include/cscore_c.h @@ -169,7 +169,7 @@ enum CS_TelemetryKind { // Listener event // struct CS_Event { - CS_EventKind kind; + enum CS_EventKind kind; // Valid for CS_SOURCE_* and CS_SINK_* respectively CS_Source source; @@ -183,7 +183,7 @@ struct CS_Event { // Fields for CS_SOURCE_PROPERTY_* events CS_Property property; - CS_PropertyKind propertyKind; + enum CS_PropertyKind propertyKind; int value; const char* valueStr; }; @@ -223,7 +223,7 @@ CS_Source CS_CreateCvSource(const char* name, const CS_VideoMode* mode, // // Source Functions // -CS_SourceKind CS_GetSourceKind(CS_Source source, CS_Status* status); +enum CS_SourceKind CS_GetSourceKind(CS_Source source, CS_Status* status); char* CS_GetSourceName(CS_Source source, CS_Status* status); char* CS_GetSourceDescription(CS_Source source, CS_Status* status); uint64_t CS_GetSourceLastFrameTime(CS_Source source, CS_Status* status); @@ -275,7 +275,8 @@ char* CS_GetUsbCameraPath(CS_Source source, CS_Status* status); // // HttpCamera Source Functions // -CS_HttpCameraKind CS_GetHttpCameraKind(CS_Source source, CS_Status* status); +enum CS_HttpCameraKind CS_GetHttpCameraKind(CS_Source source, + CS_Status* status); void CS_SetHttpCameraUrls(CS_Source source, const char** urls, int count, CS_Status* status); char** CS_GetHttpCameraUrls(CS_Source source, int* count, CS_Status* status); @@ -311,7 +312,7 @@ CS_Sink CS_CreateCvSinkCallback(const char* name, void* data, // // Sink Functions // -CS_SinkKind CS_GetSinkKind(CS_Sink sink, CS_Status* status); +enum CS_SinkKind CS_GetSinkKind(CS_Sink sink, CS_Status* status); char* CS_GetSinkName(CS_Sink sink, CS_Status* status); char* CS_GetSinkDescription(CS_Sink sink, CS_Status* status); void CS_SetSinkSource(CS_Sink sink, CS_Source source, CS_Status* status); @@ -343,10 +344,9 @@ void CS_SetSinkEnabled(CS_Sink sink, CS_Bool enabled, CS_Status* status); // void CS_SetListenerOnStart(void (*onStart)(void* data), void* data); void CS_SetListenerOnExit(void (*onExit)(void* data), void* data); -CS_Listener CS_AddListener(void* data, - void (*callback)(void* data, const CS_Event* event), - int eventMask, int immediateNotify, - CS_Status* status); +CS_Listener CS_AddListener( + void* data, void (*callback)(void* data, const struct CS_Event* event), + int eventMask, int immediateNotify, CS_Status* status); void CS_RemoveListener(CS_Listener handle, CS_Status* status); @@ -357,9 +357,9 @@ int CS_NotifierDestroyed(void); // void CS_SetTelemetryPeriod(double seconds); double CS_GetTelemetryElapsedTime(void); -int64_t CS_GetTelemetryValue(CS_Handle handle, CS_TelemetryKind kind, +int64_t CS_GetTelemetryValue(CS_Handle handle, enum CS_TelemetryKind kind, CS_Status* status); -double CS_GetTelemetryAverageValue(CS_Handle handle, CS_TelemetryKind kind, +double CS_GetTelemetryAverageValue(CS_Handle handle, enum CS_TelemetryKind kind, CS_Status* status); // diff --git a/wpilibc/build.gradle b/wpilibc/build.gradle index af620785d1..748f17598f 100644 --- a/wpilibc/build.gradle +++ b/wpilibc/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'cpp' +apply plugin: 'c' apply plugin: 'google-test-test-suite' apply plugin: 'visual-studio' apply plugin: 'edu.wpi.first.NativeUtils' @@ -173,6 +174,15 @@ model { srcDirs 'src/test/native/include', 'src/main/native/cpp' } } + c { + source { + srcDirs 'src/test/native/c' + include '**/*.c' + } + exportedHeaders { + srcDirs 'src/test/native/include', 'src/main/native/c' + } + } } } } diff --git a/wpilibc/src/test/native/c/test.c b/wpilibc/src/test/native/c/test.c new file mode 100644 index 0000000000..45d83b50b4 --- /dev/null +++ b/wpilibc/src/test/native/c/test.c @@ -0,0 +1,11 @@ +/*----------------------------------------------------------------------------*/ +/* Copyright (c) 2018 FIRST. All Rights Reserved. */ +/* Open Source Software - may be modified and shared by FRC teams. The code */ +/* must be accompanied by the FIRST BSD license file in the root directory of */ +/* the project. */ +/*----------------------------------------------------------------------------*/ + +#include + +#include "cscore.h" +#include "ntcore.h"