Gets builds working on Windows (VS 2015) (#37)

Def files will be updated after the latest PR with new definitions gets
added.
This commit is contained in:
Thad House
2017-01-02 23:16:35 -08:00
committed by Peter Johnson
parent f225c4773a
commit b91ab0b44f
10 changed files with 212 additions and 302 deletions

View File

@@ -1,122 +1,71 @@
LIBRARY CAMERASERVER
LIBRARY CSCORE
EXPORTS
CS_GetPropertyType @1
CS_GetPropertyName @2
CS_GetBooleanProperty @3
CS_SetBooleanProperty @4
CS_GetDoubleProperty @5
CS_SetDoubleProperty @6
CS_GetDoublePropertyMin @7
CS_GetDoublePropertyMax @8
CS_GetStringProperty @9
CS_SetStringProperty @10
CS_GetEnumProperty @11
CS_SetEnumProperty @12
CS_GetEnumPropertyChoices @13
CS_CreateUSBSourceDev @14
CS_CreateUSBSourcePath @15
CS_CreateHTTPSource @16
CS_CreateCvSource @17
CS_GetSourceName @18
CS_GetSourceDescription @19
CS_GetSourceLastFrameTime @20
CS_GetSourceNumChannels @21
CS_IsSourceConnected @22
CS_GetSourceProperty @23
CS_EnumerateSourceProperties @24
CS_CopySource @25
CS_ReleaseSource @26
CS_PutSourceImage @27
CS_NotifySourceFrame @28
CS_PutSourceFrame @29
CS_NotifySourceError @30
CS_SetSourceConnected @31
CS_CreateSourceProperty @32
CS_CreateSourcePropertyCallback @33
CS_RemoveSourceProperty @34
CS_RemoveSourcePropertyByName @35
CS_CreateHTTPSink @36
CS_CreateCvSink @37
CS_CreateCvSinkCallback @38
CS_GetSinkName @39
CS_GetSinkDescription @40
CS_SetSinkSource @41
CS_GetSinkSource @42
CS_GetSinkSourceProperty @43
CS_CopySink @44
CS_ReleaseSink @45
CS_SetSinkSourceChannel @46
CS_SinkWaitForFrame @47
CS_GetSinkImage @48
CS_GrabSinkFrame @49
CS_GetSinkError @50
CS_SetSinkEnabled @51
CS_AddSourceListener @52
CS_RemoveSourceListener @53
CS_AddSinkListener @54
CS_RemoveSinkListener @55
CS_EnumerateUSBCameras @56
CS_FreeEnumeratedUSBCameras @57
CS_EnumerateSources @58
CS_ReleaseEnumeratedSources @59
CS_EnumerateSinks @60
CS_ReleaseEnumeratedSinks @61
CS_FreeString @62
CS_FreeEnumPropertyChoices @63
CS_FreeEnumeratedProperties @64
CS_GrabSinkFrameCpp @65
CS_PutSourceFrameCpp @66
; JNI functions
JNI_OnLoad
JNI_OnUnload
Java_edu_wpi_cameraserver_CameraServerJNI_getPropertyType
Java_edu_wpi_cameraserver_CameraServerJNI_getPropertyName
Java_edu_wpi_cameraserver_CameraServerJNI_getBooleanProperty
Java_edu_wpi_cameraserver_CameraServerJNI_setBooleanProperty
Java_edu_wpi_cameraserver_CameraServerJNI_getDoubleProperty
Java_edu_wpi_cameraserver_CameraServerJNI_setDoubleProperty
Java_edu_wpi_cameraserver_CameraServerJNI_getDoublePropertyMin
Java_edu_wpi_cameraserver_CameraServerJNI_getDoublePropertyMax
Java_edu_wpi_cameraserver_CameraServerJNI_getStringProperty
Java_edu_wpi_cameraserver_CameraServerJNI_setStringProperty
Java_edu_wpi_cameraserver_CameraServerJNI_getEnumProperty
Java_edu_wpi_cameraserver_CameraServerJNI_setEnumProperty
Java_edu_wpi_cameraserver_CameraServerJNI_getEnumPropertyChoices
Java_edu_wpi_cameraserver_CameraServerJNI_createUSBSourceDev
Java_edu_wpi_cameraserver_CameraServerJNI_createUSBSourcePath
Java_edu_wpi_cameraserver_CameraServerJNI_createHTTPSource
Java_edu_wpi_cameraserver_CameraServerJNI_createCvSource
Java_edu_wpi_cameraserver_CameraServerJNI_getSourceName
Java_edu_wpi_cameraserver_CameraServerJNI_getSourceDescription
Java_edu_wpi_cameraserver_CameraServerJNI_getSourceLastFrameTime
Java_edu_wpi_cameraserver_CameraServerJNI_getSourceNumChannels
Java_edu_wpi_cameraserver_CameraServerJNI_isSourceConnected
Java_edu_wpi_cameraserver_CameraServerJNI_getSourceProperty
Java_edu_wpi_cameraserver_CameraServerJNI_enumerateSourceProperties
Java_edu_wpi_cameraserver_CameraServerJNI_copySource
Java_edu_wpi_cameraserver_CameraServerJNI_releaseSource
Java_edu_wpi_cameraserver_CameraServerJNI_notifySourceFrame
Java_edu_wpi_cameraserver_CameraServerJNI_notifySourceError
Java_edu_wpi_cameraserver_CameraServerJNI_setSourceConnected
Java_edu_wpi_cameraserver_CameraServerJNI_createSourceProperty
Java_edu_wpi_cameraserver_CameraServerJNI_removeSourceProperty
Java_edu_wpi_cameraserver_CameraServerJNI_removeSourcePropertyByName
Java_edu_wpi_cameraserver_CameraServerJNI_createHTTPSink
Java_edu_wpi_cameraserver_CameraServerJNI_createCvSink
Java_edu_wpi_cameraserver_CameraServerJNI_getSinkName
Java_edu_wpi_cameraserver_CameraServerJNI_getSinkDescription
Java_edu_wpi_cameraserver_CameraServerJNI_setSinkSource
Java_edu_wpi_cameraserver_CameraServerJNI_getSinkSourceProperty
Java_edu_wpi_cameraserver_CameraServerJNI_getSinkSource
Java_edu_wpi_cameraserver_CameraServerJNI_copySink
Java_edu_wpi_cameraserver_CameraServerJNI_releaseSink
Java_edu_wpi_cameraserver_CameraServerJNI_setSinkSourceChannel
Java_edu_wpi_cameraserver_CameraServerJNI_sinkWaitForFrame
Java_edu_wpi_cameraserver_CameraServerJNI_getSinkError
Java_edu_wpi_cameraserver_CameraServerJNI_setSinkEnabled
Java_edu_wpi_cameraserver_CameraServerJNI_removeSourceListener
Java_edu_wpi_cameraserver_CameraServerJNI_removeSinkListener
Java_edu_wpi_cameraserver_CameraServerJNI_enumerateUSBCameras
Java_edu_wpi_cameraserver_CameraServerJNI_enumerateSources
Java_edu_wpi_cameraserver_CameraServerJNI_enumerateSinks
Java_edu_wpi_cscore_CameraServerJNI_getPropertyKind
Java_edu_wpi_cscore_CameraServerJNI_getPropertyName
Java_edu_wpi_cscore_CameraServerJNI_getProperty
Java_edu_wpi_cscore_CameraServerJNI_setProperty
Java_edu_wpi_cscore_CameraServerJNI_getPropertyMin
Java_edu_wpi_cscore_CameraServerJNI_getPropertyMax
Java_edu_wpi_cscore_CameraServerJNI_getPropertyStep
Java_edu_wpi_cscore_CameraServerJNI_getPropertyDefault
Java_edu_wpi_cscore_CameraServerJNI_getStringProperty
Java_edu_wpi_cscore_CameraServerJNI_setStringProperty
Java_edu_wpi_cscore_CameraServerJNI_getEnumPropertyChoices
Java_edu_wpi_cscore_CameraServerJNI_createUsbCameraDev
Java_edu_wpi_cscore_CameraServerJNI_createUsbCameraPath
Java_edu_wpi_cscore_CameraServerJNI_createHttpCamera
Java_edu_wpi_cscore_CameraServerJNI_createHttpCameraMulti
Java_edu_wpi_cscore_CameraServerJNI_createCvSource
Java_edu_wpi_cscore_CameraServerJNI_getSourceKind
Java_edu_wpi_cscore_CameraServerJNI_getSourceName
Java_edu_wpi_cscore_CameraServerJNI_getSourceDescription
Java_edu_wpi_cscore_CameraServerJNI_getSourceLastFrameTime
Java_edu_wpi_cscore_CameraServerJNI_isSourceConnected
Java_edu_wpi_cscore_CameraServerJNI_getSourceProperty
Java_edu_wpi_cscore_CameraServerJNI_enumerateSourceProperties
Java_edu_wpi_cscore_CameraServerJNI_getSourceVideoMode
Java_edu_wpi_cscore_CameraServerJNI_setSourceVideoMode
Java_edu_wpi_cscore_CameraServerJNI_setSourcePixelFormat
Java_edu_wpi_cscore_CameraServerJNI_setSourceResolution
Java_edu_wpi_cscore_CameraServerJNI_setSourceFPS
Java_edu_wpi_cscore_CameraServerJNI_enumerateSourceVideoModes
Java_edu_wpi_cscore_CameraServerJNI_enumerateSourceSinks
Java_edu_wpi_cscore_CameraServerJNI_copySource
Java_edu_wpi_cscore_CameraServerJNI_releaseSource
Java_edu_wpi_cscore_CameraServerJNI_getUsbCameraPath
Java_edu_wpi_cscore_CameraServerJNI_getHttpCameraKind
Java_edu_wpi_cscore_CameraServerJNI_setHttpCameraUrls
Java_edu_wpi_cscore_CameraServerJNI_getHttpCameraUrls
Java_edu_wpi_cscore_CameraServerJNI_putSourceFrame
Java_edu_wpi_cscore_CameraServerJNI_notifySourceError
Java_edu_wpi_cscore_CameraServerJNI_setSourceConnected
Java_edu_wpi_cscore_CameraServerJNI_setSourceDescription
Java_edu_wpi_cscore_CameraServerJNI_createSourceProperty
Java_edu_wpi_cscore_CameraServerJNI_setSourceEnumPropertyChoices
Java_edu_wpi_cscore_CameraServerJNI_createMjpegServer
Java_edu_wpi_cscore_CameraServerJNI_createCvSink
Java_edu_wpi_cscore_CameraServerJNI_getSinkKind
Java_edu_wpi_cscore_CameraServerJNI_getSinkName
Java_edu_wpi_cscore_CameraServerJNI_getSinkDescription
Java_edu_wpi_cscore_CameraServerJNI_setSinkSource
Java_edu_wpi_cscore_CameraServerJNI_getSinkSourceProperty
Java_edu_wpi_cscore_CameraServerJNI_getSinkSource
Java_edu_wpi_cscore_CameraServerJNI_copySink
Java_edu_wpi_cscore_CameraServerJNI_releaseSink
Java_edu_wpi_cscore_CameraServerJNI_getMjpegServerListenAddress
Java_edu_wpi_cscore_CameraServerJNI_getMjpegServerPort
Java_edu_wpi_cscore_CameraServerJNI_setSinkDescription
Java_edu_wpi_cscore_CameraServerJNI_grabSinkFrame
Java_edu_wpi_cscore_CameraServerJNI_getSinkError
Java_edu_wpi_cscore_CameraServerJNI_setSinkEnabled
Java_edu_wpi_cscore_CameraServerJNI_addListener
Java_edu_wpi_cscore_CameraServerJNI_removeListener
Java_edu_wpi_cscore_CameraServerJNI_setLogger
Java_edu_wpi_cscore_CameraServerJNI_enumerateUsbCameras
Java_edu_wpi_cscore_CameraServerJNI_enumerateSources
Java_edu_wpi_cscore_CameraServerJNI_enumerateSinks
Java_edu_wpi_cscore_CameraServerJNI_getHostname
Java_edu_wpi_cscore_CameraServerJNI_getNetworkInterfaces

View File

@@ -1,68 +1,2 @@
LIBRARY CAMERASERVER
LIBRARY CSCORE
EXPORTS
CS_GetPropertyType @1
CS_GetPropertyName @2
CS_GetBooleanProperty @3
CS_SetBooleanProperty @4
CS_GetDoubleProperty @5
CS_SetDoubleProperty @6
CS_GetDoublePropertyMin @7
CS_GetDoublePropertyMax @8
CS_GetStringProperty @9
CS_SetStringProperty @10
CS_GetEnumProperty @11
CS_SetEnumProperty @12
CS_GetEnumPropertyChoices @13
CS_CreateUSBSourceDev @14
CS_CreateUSBSourcePath @15
CS_CreateHTTPSource @16
CS_CreateCvSource @17
CS_GetSourceName @18
CS_GetSourceDescription @19
CS_GetSourceLastFrameTime @20
CS_GetSourceNumChannels @21
CS_IsSourceConnected @22
CS_GetSourceProperty @23
CS_EnumerateSourceProperties @24
CS_CopySource @25
CS_ReleaseSource @26
CS_PutSourceImage @27
CS_NotifySourceFrame @28
CS_PutSourceFrame @29
CS_NotifySourceError @30
CS_SetSourceConnected @31
CS_CreateSourceProperty @32
CS_CreateSourcePropertyCallback @33
CS_RemoveSourceProperty @34
CS_RemoveSourcePropertyByName @35
CS_CreateHTTPSink @36
CS_CreateCvSink @37
CS_CreateCvSinkCallback @38
CS_GetSinkName @39
CS_GetSinkDescription @40
CS_SetSinkSource @41
CS_GetSinkSource @42
CS_GetSinkSourceProperty @43
CS_CopySink @44
CS_ReleaseSink @45
CS_SetSinkSourceChannel @46
CS_SinkWaitForFrame @47
CS_GetSinkImage @48
CS_GrabSinkFrame @49
CS_GetSinkError @50
CS_SetSinkEnabled @51
CS_AddSourceListener @52
CS_RemoveSourceListener @53
CS_AddSinkListener @54
CS_RemoveSinkListener @55
CS_EnumerateUSBCameras @56
CS_FreeEnumeratedUSBCameras @57
CS_EnumerateSources @58
CS_ReleaseEnumeratedSources @59
CS_EnumerateSinks @60
CS_ReleaseEnumeratedSinks @61
CS_FreeString @62
CS_FreeEnumPropertyChoices @63
CS_FreeEnumeratedProperties @64
CS_GrabSinkFrameCpp @65
CS_PutSourceFrameCpp @66

View File

@@ -52,94 +52,96 @@ def cscoreSetupModel = { project ->
def cscoreSetupExamplesModel = { project ->
project.model {
components {
enum_usb(NativeExecutableSpec) {
if (project.isArm) {
targetPlatform 'arm'
} else {
//targetPlatform 'x86'
targetPlatform 'x64'
}
setupDefines(project, binaries)
sources {
cpp {
source {
srcDir "${rootDir}/examples/enum_usb"
include '**/*.cpp'
if (!OperatingSystem.current().isWindows() && !project.isArm) {
enum_usb(NativeExecutableSpec) {
if (project.isArm) {
targetPlatform 'arm'
} else {
//targetPlatform 'x86'
targetPlatform 'x64'
}
setupDefines(project, binaries)
sources {
cpp {
source {
srcDir "${rootDir}/examples/enum_usb"
include '**/*.cpp'
}
exportedHeaders {
srcDirs = ["${rootDir}/include", "${rootDir}/wpiutil/include"]
include '**/*.h'
}
lib library: 'cscore', linkage: 'static'
}
exportedHeaders {
srcDirs = ["${rootDir}/include", "${rootDir}/wpiutil/include"]
include '**/*.h'
}
lib library: 'cscore', linkage: 'static'
}
}
}
usbstream(NativeExecutableSpec) {
if (project.isArm) {
targetPlatform 'arm'
} else {
//targetPlatform 'x86'
targetPlatform 'x64'
}
setupDefines(project, binaries)
sources {
cpp {
source {
srcDir "${rootDir}/examples/usbstream"
include '**/*.cpp'
usbstream(NativeExecutableSpec) {
if (project.isArm) {
targetPlatform 'arm'
} else {
//targetPlatform 'x86'
targetPlatform 'x64'
}
setupDefines(project, binaries)
sources {
cpp {
source {
srcDir "${rootDir}/examples/usbstream"
include '**/*.cpp'
}
exportedHeaders {
srcDirs = ["${rootDir}/include", "${rootDir}/wpiutil/include"]
include '**/*.h'
}
lib library: 'cscore', linkage: 'static'
}
exportedHeaders {
srcDirs = ["${rootDir}/include", "${rootDir}/wpiutil/include"]
include '**/*.h'
}
lib library: 'cscore', linkage: 'static'
}
}
}
usbcvstream(NativeExecutableSpec) {
if (project.isArm) {
targetPlatform 'arm'
} else {
//targetPlatform 'x86'
targetPlatform 'x64'
}
setupDefines(project, binaries)
sources {
cpp {
source {
srcDir "${rootDir}/examples/usbcvstream"
include '**/*.cpp'
usbcvstream(NativeExecutableSpec) {
if (project.isArm) {
targetPlatform 'arm'
} else {
//targetPlatform 'x86'
targetPlatform 'x64'
}
setupDefines(project, binaries)
sources {
cpp {
source {
srcDir "${rootDir}/examples/usbcvstream"
include '**/*.cpp'
}
exportedHeaders {
srcDirs = ["${rootDir}/include", "${rootDir}/wpiutil/include", project.openCvInclude]
include '**/*.h'
}
lib library: 'cscore', linkage: 'static'
}
exportedHeaders {
srcDirs = ["${rootDir}/include", "${rootDir}/wpiutil/include", project.openCvInclude]
include '**/*.h'
}
lib library: 'cscore', linkage: 'static'
}
}
}
settings(NativeExecutableSpec) {
if (project.isArm) {
targetPlatform 'arm'
} else {
//targetPlatform 'x86'
targetPlatform 'x64'
}
setupDefines(project, binaries)
sources {
cpp {
source {
srcDir "${rootDir}/examples/settings"
include '**/*.cpp'
settings(NativeExecutableSpec) {
if (project.isArm) {
targetPlatform 'arm'
} else {
//targetPlatform 'x86'
targetPlatform 'x64'
}
setupDefines(project, binaries)
sources {
cpp {
source {
srcDir "${rootDir}/examples/settings"
include '**/*.cpp'
}
exportedHeaders {
srcDirs = ["${rootDir}/include", "${rootDir}/wpiutil/include", project.openCvInclude]
include '**/*.h'
}
lib library: 'cscore', linkage: 'static'
}
exportedHeaders {
srcDirs = ["${rootDir}/include", "${rootDir}/wpiutil/include", project.openCvInclude]
include '**/*.h'
}
lib library: 'cscore', linkage: 'static'
}
}
}
@@ -298,25 +300,23 @@ if (buildArm) {
}
project(':native') {
if (!OperatingSystem.current().isWindows()) {
apply plugin: 'cpp'
apply plugin: 'cpp'
apply from: "${rootDir}/toolchains/native.gradle"
apply from: "${rootDir}/toolchains/native.gradle"
//if (!project.hasProperty("withoutTests")) {
// apply from: "${rootDir}/test/tests.gradle"
//}
//if (!project.hasProperty("withoutTests")) {
// apply from: "${rootDir}/test/tests.gradle"
//}
if (includeJava) {
apply from: "${rootDir}/java/java.gradle"
}
cscoreSetupModel(project)
cscoreSetupExamplesModel(project)
cscoreZipTask(project)
useWpiUtil(project)
useOpenCv(project)
if (includeJava) {
apply from: "${rootDir}/java/java.gradle"
}
cscoreSetupModel(project)
cscoreSetupExamplesModel(project)
cscoreZipTask(project)
useWpiUtil(project)
useOpenCv(project)
}
task cscoreSourceZip(type: Zip) {

View File

@@ -26,6 +26,7 @@ static JClass videoModeCls;
static JClass videoEventCls;
static JException videoEx;
static JException nullPointerEx;
static JException unsupportedEx;
// Thread-attached environment for listener callbacks.
static JNIEnv *listenerEnv = nullptr;
@@ -74,6 +75,9 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) {
nullPointerEx = JException(env, "java/lang/NullPointerException");
if (!nullPointerEx) return JNI_ERR;
unsupportedEx = JException(env, "java/lang/UnsupportedOperationException");
if (!unsupportedEx) return JNI_ERR;
// Initial configuration of listener start/exit
cs::SetListenerOnStart(ListenerOnStart);
cs::SetListenerOnExit(ListenerOnExit);
@@ -91,6 +95,7 @@ JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *reserved) {
videoEventCls.free(env);
videoEx.free(env);
nullPointerEx.free(env);
unsupportedEx.free(env);
jvm = nullptr;
}
@@ -381,6 +386,10 @@ JNIEXPORT jobjectArray JNICALL Java_edu_wpi_cscore_CameraServerJNI_getEnumProper
JNIEXPORT jint JNICALL Java_edu_wpi_cscore_CameraServerJNI_createUsbCameraDev
(JNIEnv *env, jclass, jstring name, jint dev)
{
#ifdef _WIN32
unsupportedEx.Throw(env, "USB is not supported yet");
return 0;
#else
if (!name) {
nullPointerEx.Throw(env, "name cannot be null");
return 0;
@@ -389,6 +398,7 @@ JNIEXPORT jint JNICALL Java_edu_wpi_cscore_CameraServerJNI_createUsbCameraDev
auto val = cs::CreateUsbCameraDev(JStringRef{env, name}, dev, &status);
CheckStatus(env, status);
return val;
#endif
}
/*
@@ -399,6 +409,10 @@ JNIEXPORT jint JNICALL Java_edu_wpi_cscore_CameraServerJNI_createUsbCameraDev
JNIEXPORT jint JNICALL Java_edu_wpi_cscore_CameraServerJNI_createUsbCameraPath
(JNIEnv *env, jclass, jstring name, jstring path)
{
#ifdef _WIN32
unsupportedEx.Throw(env, "USB is not supported yet");
return 0;
#else
if (!name) {
nullPointerEx.Throw(env, "name cannot be null");
return 0;
@@ -412,6 +426,7 @@ JNIEXPORT jint JNICALL Java_edu_wpi_cscore_CameraServerJNI_createUsbCameraPath
JStringRef{env, path}, &status);
CheckStatus(env, status);
return val;
#endif
}
/*
@@ -750,10 +765,15 @@ JNIEXPORT void JNICALL Java_edu_wpi_cscore_CameraServerJNI_releaseSource
JNIEXPORT jstring JNICALL Java_edu_wpi_cscore_CameraServerJNI_getUsbCameraPath
(JNIEnv *env, jclass, jint source)
{
#ifdef _WIN32
unsupportedEx.Throw(env, "USB is not supported yet");
return 0;
#else
CS_Status status = 0;
auto str = cs::GetUsbCameraPath(source, &status);
if (!CheckStatus(env, status)) return nullptr;
return MakeJString(env, str);
#endif
}
/*
@@ -1239,6 +1259,10 @@ JNIEXPORT void JNICALL Java_edu_wpi_cscore_CameraServerJNI_removeListener
JNIEXPORT jobjectArray JNICALL Java_edu_wpi_cscore_CameraServerJNI_enumerateUsbCameras
(JNIEnv *env, jclass)
{
#ifdef _WIN32
unsupportedEx.Throw(env, "USB is not supported yet");
return 0;
#else
CS_Status status = 0;
auto arr = cs::EnumerateUsbCameras(&status);
if (!CheckStatus(env, status)) return nullptr;
@@ -1250,6 +1274,7 @@ JNIEXPORT jobjectArray JNICALL Java_edu_wpi_cscore_CameraServerJNI_enumerateUsbC
env->SetObjectArrayElement(jarr, i, jelem);
}
return jarr;
#endif
}
/*

View File

@@ -25,9 +25,7 @@ task clean(type: Delete) {
outputVersions.mustRunAfter clean
if (!OperatingSystem.current().isWindows()) {
project(':native').build.dependsOn outputVersions
}
project(':native').build.dependsOn outputVersions
if (project.buildArm) {
project(':arm').build.dependsOn outputVersions
}
@@ -45,13 +43,10 @@ publishing {
def nat = project('native')
if (!project.hasProperty('skipJava')) {
java(MavenPublication) {
if (!OperatingSystem.current().isWindows()) {
artifact nat.jar
if (!project.buildArm) {
artifact nat.cscoreJavaSource
artifact nat.cscoreJavadoc
}
artifact nat.jar
if (!project.buildArm) {
artifact nat.cscoreJavaSource
artifact nat.cscoreJavadoc
}
if (project.buildArm) {
def camArm = project('arm')
@@ -66,11 +61,9 @@ publishing {
artifact camArm.cscoreJavaSource
artifact camArm.cscoreJavadoc
}
if (!OperatingSystem.current().isWindows()) {
if (project.hasProperty('makeDesktop')) {
artifact nat.jar, {
classifier = 'desktop'
}
if (project.hasProperty('makeDesktop')) {
artifact nat.jar, {
classifier = 'desktop'
}
}
@@ -80,9 +73,7 @@ publishing {
}
}
cpp(MavenPublication) {
if (!OperatingSystem.current().isWindows()) {
artifact nat.cscoreZip
}
artifact nat.cscoreZip
artifact cscoreSourceZip
if (project.buildArm) {
artifact project(':arm').cscoreZip
@@ -92,11 +83,9 @@ publishing {
}
}
}
if (!OperatingSystem.current().isWindows()) {
if (project.hasProperty('makeDesktop')) {
artifact nat.cscoreZip, {
classifier = 'desktop'
}
if (project.hasProperty('makeDesktop')) {
artifact nat.cscoreZip, {
classifier = 'desktop'
}
}

View File

@@ -51,12 +51,14 @@ void HttpCameraImpl::Start() {
m_settingsThread = std::thread(&HttpCameraImpl::SettingsThreadMain, this);
}
#ifndef _WIN32
static inline void DoFdSet(int fd, fd_set* set, int* nfds) {
if (fd >= 0) {
FD_SET(fd, set);
if ((fd + 1) > *nfds) *nfds = fd + 1;
}
}
#endif
void HttpCameraImpl::StreamThreadMain() {
while (m_active) {

View File

@@ -25,10 +25,18 @@ class Image {
friend class Frame;
public:
#ifdef _WIN32
explicit Image(std::size_t capacity) {
m_data.reserve(capacity);
}
#else
explicit Image(std::size_t capacity)
: m_data{capacity, default_init_allocator<char>{}} {
: m_data{capacity, default_init_allocator<uchar>{}} {
m_data.resize(0);
}
#endif
Image(const Image&) = delete;
Image& operator=(const Image&) = delete;

View File

@@ -132,7 +132,9 @@ class UsbCameraImpl : public SourceImpl {
#endif
// Number of buffers to ask OS for
static constexpr int kNumBuffers = 4;
#ifdef __linux__
std::array<UsbCameraBuffer, kNumBuffers> m_buffers;
#endif
//
// Path never changes, so not protected by mutex.

View File

@@ -23,6 +23,8 @@
namespace cs {
#ifdef __linux__
static llvm::StringRef GetUsbNameFromFile(int vendor, int product,
llvm::SmallVectorImpl<char>& buf) {
int fd = open("/var/lib/usbutils/usb.ids", O_RDONLY);
@@ -110,8 +112,6 @@ llvm::StringRef GetUsbNameFromId(int vendor, int product,
return os.str();
}
#ifdef __linux__
int CheckedIoctl(int fd, unsigned long req, void* data, const char* name,
const char* file, int line, bool quiet) {
int retval = ioctl(fd, req, data);

View File

@@ -13,10 +13,11 @@
namespace cs {
#ifdef __linux__
llvm::StringRef GetUsbNameFromId(int vendor, int product,
llvm::SmallVectorImpl<char>& buf);
#ifdef __linux__
int CheckedIoctl(int fd, unsigned long req, void* data, const char* name,
const char* file, int line, bool quiet);