[OpenSmalltalk/opensmalltalk-vm] bb4e0c: CameraPlugin source as per VMMaker.oscog-eem.2840

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[OpenSmalltalk/opensmalltalk-vm] bb4e0c: CameraPlugin source as per VMMaker.oscog-eem.2840

Eliot Miranda-3
  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: bb4e0cbedcae9d125e44b2e057f8b44debd9906c
  Author: Eliot Miranda <[hidden email]>
  Date:   2020-10-14 (Wed, 14 Oct 2020)

  Changed paths:
    M build.linux64ARMv8/squeak.cog.spur/build.debug/mvm
    M build.linux64ARMv8/squeak.cog.spur/plugins.ext
    M platforms/Cross/plugins/CameraPlugin/CameraPlugin.h
    M platforms/iOS/plugins/CameraPlugin/AVFoundationVideoGrabber.m
    M platforms/unix/plugins/CameraPlugin/sqCamera-linux.c
    M platforms/unix/plugins/SocketPlugin/sqUnixSocket.c
    M platforms/unix/vm/aio.c
    M platforms/win32/plugins/CameraPlugin/winCameraOps.cpp
    M src/plugins/CameraPlugin/CameraPlugin.c

  Log Message:
  CameraPlugin source as per VMMaker.oscog-eem.2840

Add a primCameraUID primitive, to equal facilities in the Qwaq QWebcam plugin
(even though this appears inoperative on Windows).
Add module start-up and shutdown operations, useful for cleanup.
On Windows fix a storage leak with enumerating names.
On Linux implement the plumbing for CameraSetSemaphore and check the necessary
capability, but at least on 5.x kernels and earliuer there is no SIGIO notifi-
cation, and hence the asynchronous interface is currently unavailable.  We could
work around this by spawning a thread to do blocking reads, but I don't have the
time right now.
Make a function static in sqUnixSocket.c.
Correct the ioctl code (unused on current platforms) to use the TIOCSPGRP arg
to ioctl (SIOCSPGRP is socket-specific). This may be wrong, but if it is it will
require the aioEnable interface to be extended to allow clients to state whether
they are sockets or not.
Enable the CameraPlugin on build.linux64ARMv8.