libcamera: Move EventDispatcher to internal API

There's no user of the EventDispatcher (and the related EventNotifier
and Timer classes) outside of libcamera. Move those classes to the
internal API.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
Laurent Pinchart 2020-11-08 01:14:38 +02:00
parent 7d35c771c0
commit d767c84022
36 changed files with 54 additions and 113 deletions

View file

@ -19,7 +19,6 @@
namespace libcamera {
class Camera;
class EventDispatcher;
class CameraManager : public Object, public Extensible
{
@ -43,9 +42,6 @@ public:
static const std::string &version() { return version_; }
void setEventDispatcher(std::unique_ptr<EventDispatcher> dispatcher);
EventDispatcher *eventDispatcher();
Signal<std::shared_ptr<Camera>> cameraAdded;
Signal<std::shared_ptr<Camera>> cameraRemoved;

View file

@ -11,7 +11,7 @@
#include <map>
#include <vector>
#include <libcamera/event_dispatcher.h>
#include "libcamera/internal/event_dispatcher.h"
struct pollfd;

View file

@ -18,7 +18,9 @@ libcamera_internal_headers = files([
'device_enumerator.h',
'device_enumerator_sysfs.h',
'device_enumerator_udev.h',
'event_dispatcher.h',
'event_dispatcher_poll.h',
'event_notifier.h',
'file.h',
'formats.h',
'ipa_context_wrapper.h',
@ -36,6 +38,7 @@ libcamera_internal_headers = files([
'semaphore.h',
'sysfs.h',
'thread.h',
'timer.h',
'utils.h',
'v4l2_controls.h',
'v4l2_device.h',

View file

@ -6,8 +6,6 @@ libcamera_public_headers = files([
'camera.h',
'camera_manager.h',
'controls.h',
'event_dispatcher.h',
'event_notifier.h',
'extensible.h',
'file_descriptor.h',
'framebuffer_allocator.h',
@ -19,7 +17,6 @@ libcamera_public_headers = files([
'signal.h',
'span.h',
'stream.h',
'timer.h',
'transform.h',
])

View file

@ -11,10 +11,8 @@
#include <map>
#include <libcamera/camera.h>
#include <libcamera/event_dispatcher.h>
#include "libcamera/internal/device_enumerator.h"
#include "libcamera/internal/event_dispatcher_poll.h"
#include "libcamera/internal/ipa_manager.h"
#include "libcamera/internal/log.h"
#include "libcamera/internal/pipeline_handler.h"
@ -244,12 +242,8 @@ void CameraManager::Private::removeCamera(Camera *camera)
* a time. Attempting to create a second instance without first deleting the
* existing instance results in undefined behaviour.
*
* The manager is initially stopped, and shall be configured before being
* started. In particular a custom event dispatcher shall be installed if
* needed with CameraManager::setEventDispatcher().
*
* Once the camera manager is configured, it shall be started with start().
* This will enumerate all the cameras present in the system, which can then be
* The manager is initially stopped, and shall be started with start(). This
* will enumerate all the cameras present in the system, which can then be
* listed with list() and retrieved with get().
*
* Cameras are shared through std::shared_ptr<>, ensuring that a camera will
@ -477,38 +471,4 @@ void CameraManager::removeCamera(std::shared_ptr<Camera> camera)
* \return The libcamera version string
*/
/**
* \brief Set the event dispatcher
* \param[in] dispatcher Pointer to the event dispatcher
*
* libcamera requires an event dispatcher to integrate event notification and
* timers with the application event loop. Applications that want to provide
* their own event dispatcher shall call this function once and only once before
* the camera manager is started with start(). If no event dispatcher is
* provided, a default poll-based implementation will be used.
*
* The CameraManager takes ownership of the event dispatcher and will delete it
* when the application terminates.
*/
void CameraManager::setEventDispatcher(std::unique_ptr<EventDispatcher> dispatcher)
{
thread()->setEventDispatcher(std::move(dispatcher));
}
/**
* \brief Retrieve the event dispatcher
*
* This function retrieves the event dispatcher set with setEventDispatcher().
* If no dispatcher has been set, a default poll-based implementation is created
* and returned, and no custom event dispatcher may be installed anymore.
*
* The returned event dispatcher is valid until the camera manager is destroyed.
*
* \return Pointer to the event dispatcher
*/
EventDispatcher *CameraManager::eventDispatcher()
{
return thread()->eventDispatcher();
}
} /* namespace libcamera */

View file

@ -17,8 +17,7 @@
#include <sys/sysmacros.h>
#include <unistd.h>
#include <libcamera/event_notifier.h>
#include "libcamera/internal/event_notifier.h"
#include "libcamera/internal/log.h"
#include "libcamera/internal/media_device.h"

View file

@ -5,7 +5,7 @@
* event_dispatcher.cpp - Event dispatcher
*/
#include <libcamera/event_dispatcher.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/log.h"

View file

@ -16,11 +16,10 @@
#include <sys/eventfd.h>
#include <unistd.h>
#include <libcamera/event_notifier.h>
#include <libcamera/timer.h>
#include "libcamera/internal/event_notifier.h"
#include "libcamera/internal/log.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "libcamera/internal/utils.h"
/**

View file

@ -5,11 +5,11 @@
* event_notifier.cpp - File descriptor event notifier
*/
#include <libcamera/event_notifier.h>
#include "libcamera/internal/event_notifier.h"
#include <libcamera/camera_manager.h>
#include <libcamera/event_dispatcher.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/message.h"
#include "libcamera/internal/thread.h"

View file

@ -12,8 +12,7 @@
#include <sys/socket.h>
#include <unistd.h>
#include <libcamera/event_notifier.h>
#include "libcamera/internal/event_notifier.h"
#include "libcamera/internal/log.h"
/**

View file

@ -10,8 +10,7 @@
#include <list>
#include <map>
#include <libcamera/timer.h>
#include "libcamera/internal/timer.h"
#include "libcamera/internal/utils.h"
namespace libcamera {

View file

@ -20,8 +20,7 @@
#include <unistd.h>
#include <vector>
#include <libcamera/event_notifier.h>
#include "libcamera/internal/event_notifier.h"
#include "libcamera/internal/log.h"
#include "libcamera/internal/utils.h"

View file

@ -9,10 +9,10 @@
#include <sys/types.h>
#include <unistd.h>
#include <libcamera/event_dispatcher.h>
#include <libcamera/ipa/ipa_interface.h>
#include <libcamera/logging.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/ipa_module.h"
#include "libcamera/internal/ipc_unixsocket.h"
#include "libcamera/internal/log.h"

View file

@ -14,8 +14,7 @@
#include <sys/types.h>
#include <unistd.h>
#include <libcamera/event_dispatcher.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/event_dispatcher_poll.h"
#include "libcamera/internal/log.h"
#include "libcamera/internal/message.h"

View file

@ -5,13 +5,13 @@
* timer.cpp - Generic timer
*/
#include <libcamera/timer.h>
#include "libcamera/internal/timer.h"
#include <chrono>
#include <libcamera/camera_manager.h>
#include <libcamera/event_dispatcher.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/log.h"
#include "libcamera/internal/message.h"
#include "libcamera/internal/thread.h"

View file

@ -16,8 +16,7 @@
#include <sys/syscall.h>
#include <unistd.h>
#include <libcamera/event_notifier.h>
#include "libcamera/internal/event_notifier.h"
#include "libcamera/internal/log.h"
#include "libcamera/internal/sysfs.h"
#include "libcamera/internal/utils.h"

View file

@ -20,9 +20,9 @@
#include <linux/version.h>
#include <libcamera/event_notifier.h>
#include <libcamera/file_descriptor.h>
#include "libcamera/internal/event_notifier.h"
#include "libcamera/internal/log.h"
#include "libcamera/internal/media_device.h"
#include "libcamera/internal/media_object.h"

View file

@ -12,12 +12,11 @@
#include <numeric>
#include <vector>
#include <libcamera/event_dispatcher.h>
#include <libcamera/timer.h>
#include "libcamera/internal/device_enumerator.h"
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/media_device.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "libcamera/internal/v4l2_videodevice.h"
#include "buffer_source.h"

View file

@ -7,11 +7,11 @@
#include <iostream>
#include <libcamera/event_dispatcher.h>
#include <libcamera/framebuffer_allocator.h>
#include <libcamera/timer.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "camera_test.h"
#include "test.h"

View file

@ -10,10 +10,9 @@
#include <signal.h>
#include <sys/time.h>
#include <libcamera/event_dispatcher.h>
#include <libcamera/timer.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "test.h"

View file

@ -10,10 +10,9 @@
#include <string.h>
#include <unistd.h>
#include <libcamera/event_notifier.h>
#include <libcamera/timer.h>
#include "libcamera/internal/event_notifier.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "test.h"

View file

@ -9,11 +9,10 @@
#include <string.h>
#include <unistd.h>
#include <libcamera/event_dispatcher.h>
#include <libcamera/event_notifier.h>
#include <libcamera/timer.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/event_notifier.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "test.h"

View file

@ -13,11 +13,11 @@
#include <libcamera/camera.h>
#include <libcamera/camera_manager.h>
#include <libcamera/event_dispatcher.h>
#include <libcamera/timer.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/file.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "test.h"

View file

@ -12,16 +12,16 @@
#include <sys/types.h>
#include <unistd.h>
#include <libcamera/event_dispatcher.h>
#include <libcamera/event_notifier.h>
#include <libcamera/ipa/vimc.h>
#include <libcamera/timer.h>
#include "libcamera/internal/device_enumerator.h"
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/event_notifier.h"
#include "libcamera/internal/ipa_manager.h"
#include "libcamera/internal/ipa_module.h"
#include "libcamera/internal/pipeline_handler.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "test.h"

View file

@ -15,11 +15,10 @@
#include <sys/wait.h>
#include <unistd.h>
#include <libcamera/event_dispatcher.h>
#include <libcamera/timer.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/ipc_unixsocket.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "libcamera/internal/utils.h"
#include "test.h"

View file

@ -14,13 +14,13 @@
#include <unistd.h>
#include <vector>
#include <libcamera/event_dispatcher.h>
#include <libcamera/logging.h>
#include <libcamera/timer.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/log.h"
#include "libcamera/internal/process.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "libcamera/internal/utils.h"
#include "test.h"

View file

@ -8,9 +8,9 @@
#include <iostream>
#include <thread>
#include <libcamera/event_dispatcher.h>
#include <libcamera/object.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/thread.h"
#include "test.h"

View file

@ -9,11 +9,10 @@
#include <unistd.h>
#include <vector>
#include <libcamera/event_dispatcher.h>
#include <libcamera/timer.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/process.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "libcamera/internal/utils.h"
#include "test.h"

View file

@ -8,10 +8,9 @@
#include <chrono>
#include <iostream>
#include <libcamera/event_dispatcher.h>
#include <libcamera/timer.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "test.h"

View file

@ -8,10 +8,9 @@
#include <chrono>
#include <iostream>
#include <libcamera/event_dispatcher.h>
#include <libcamera/timer.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "test.h"

View file

@ -13,10 +13,10 @@
#include <iostream>
#include <libcamera/buffer.h>
#include <libcamera/event_dispatcher.h>
#include <libcamera/timer.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "v4l2_videodevice_test.h"

View file

@ -8,10 +8,10 @@
#include <iostream>
#include <libcamera/buffer.h>
#include <libcamera/event_dispatcher.h>
#include <libcamera/timer.h>
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "v4l2_videodevice_test.h"

View file

@ -8,12 +8,12 @@
#include <iostream>
#include <libcamera/buffer.h>
#include <libcamera/event_dispatcher.h>
#include <libcamera/timer.h>
#include "libcamera/internal/device_enumerator.h"
#include "libcamera/internal/event_dispatcher.h"
#include "libcamera/internal/media_device.h"
#include "libcamera/internal/thread.h"
#include "libcamera/internal/timer.h"
#include "libcamera/internal/v4l2_videodevice.h"
#include "test.h"