JUCE
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
CameraDevice::Pimpl Struct Reference

Inherits ChangeBroadcaster.

Classes

struct  GrabberCallback
 

Public Member Functions

 Pimpl (const String &, int, int, int, int, int)
 
 ~Pimpl ()
 
void startRecordingToFile (const File &, int)
 
void stopRecording ()
 
Time getTimeOfFirstRecordedFrame () const
 
void addListener (CameraDevice::Listener *listenerToAdd)
 
void removeListener (CameraDevice::Listener *listenerToRemove)
 
 Pimpl (const String &, int, int, int, int, int, bool useHighQuality)
 
 ~Pimpl ()
 
bool openedOk () const noexcept
 
void addImageCapture ()
 
void addMovieCapture ()
 
void removeImageCapture ()
 
void removeMovieCapture ()
 
void refreshConnections ()
 
void refreshIfNeeded ()
 
void startRecordingToFile (const File &file, int)
 
void stopRecording ()
 
Time getTimeOfFirstRecordedFrame () const
 
AVCaptureConnection * getVideoConnection () const
 
void handleImageCapture (const void *data, size_t size)
 
void triggerImageCapture ()
 
void addListener (CameraDevice::Listener *listenerToAdd)
 
void removeListener (CameraDevice::Listener *listenerToRemove)
 
 Pimpl (const String &, int index, int minWidth, int minHeight, int maxWidth, int maxHeight, bool)
 
 ~Pimpl ()
 
bool openedOk () const noexcept
 
void startRecordingToFile (const File &file, int quality)
 
void stopRecording ()
 
Time getTimeOfFirstRecordedFrame () const
 
void addListener (CameraDevice::Listener *listenerToAdd)
 
void removeListener (CameraDevice::Listener *listenerToRemove)
 
void callListeners (const Image &image)
 
void addUser ()
 
void removeUser ()
 
void handleFrame (double, BYTE *buffer, long)
 
void drawCurrentImage (Graphics &g, Rectangle< int > area)
 
bool createFileCaptureFilter (const File &file, int quality)
 
void removeFileCaptureFilter ()
 

Static Public Member Functions

static StringArray getAvailableDevices ()
 
static StringArray getAvailableDevices ()
 
static ComSmartPtr< IBaseFilter > enumerateCameras (StringArray *names, const int deviceIndexToOpen)
 
static StringArray getAvailableDevices ()
 

Public Attributes

AVCaptureView * captureView = nil
 
AVCaptureSession * session = nil
 
AVCaptureMovieFileOutput * fileOutput = nil
 
AVCaptureStillImageOutput * imageOutput = nil
 
id< AVCaptureFileOutputRecordingDelegate > callbackDelegate = nil
 
String openingError
 
Time firstPresentationTime
 
bool isRecording = false
 
Array< CameraDevice::Listener * > listeners
 
CriticalSection listenerLock
 
ComSmartPtr< GrabberCallbackcallback
 
bool openedSuccessfully
 
int width
 
int height
 
Time firstRecordedTime
 
Array< ViewerComponent * > viewerComps
 
ComSmartPtr< ICaptureGraphBuilder2 > captureGraphBuilder
 
ComSmartPtr< IBaseFilter > filter
 
ComSmartPtr< IBaseFilter > smartTee
 
ComSmartPtr< IBaseFilter > asfWriter
 
ComSmartPtr< IGraphBuilder > graphBuilder
 
ComSmartPtr< ISampleGrabber > sampleGrabber
 
ComSmartPtr< IMediaControl > mediaControl
 
ComSmartPtr< IPin > smartTeePreviewOutputPin
 
ComSmartPtr< IPin > smartTeeCaptureOutputPin
 
int activeUsers
 
Array< int > widths
 
Array< int > heights
 
DWORD graphRegistrationID
 
CriticalSection imageSwapLock
 
bool imageNeedsFlipping
 
Image loadingImage
 
Image activeImage
 
bool recordNextFrameTime
 
int previewMaxFPS
 

Constructor & Destructor Documentation

◆ Pimpl() [1/3]

CameraDevice::Pimpl::Pimpl ( const String &  ,
int  ,
int  ,
int  ,
int  ,
int   
)

◆ ~Pimpl() [1/3]

CameraDevice::Pimpl::~Pimpl ( )

◆ Pimpl() [2/3]

CameraDevice::Pimpl::Pimpl ( const String &  ,
int  ,
int  ,
int  ,
int  ,
int  ,
bool  useHighQuality 
)

◆ ~Pimpl() [2/3]

CameraDevice::Pimpl::~Pimpl ( )

◆ Pimpl() [3/3]

CameraDevice::Pimpl::Pimpl ( const String &  ,
int  index,
int  minWidth,
int  minHeight,
int  maxWidth,
int  maxHeight,
bool   
)

◆ ~Pimpl() [3/3]

CameraDevice::Pimpl::~Pimpl ( )

Member Function Documentation

◆ startRecordingToFile() [1/3]

void CameraDevice::Pimpl::startRecordingToFile ( const File &  ,
int   
)

◆ stopRecording() [1/3]

void CameraDevice::Pimpl::stopRecording ( )

◆ getTimeOfFirstRecordedFrame() [1/3]

Time CameraDevice::Pimpl::getTimeOfFirstRecordedFrame ( ) const

◆ addListener() [1/3]

void CameraDevice::Pimpl::addListener ( CameraDevice::Listener *  listenerToAdd)

References listenerLock, and listeners.

◆ removeListener() [1/3]

void CameraDevice::Pimpl::removeListener ( CameraDevice::Listener *  listenerToRemove)

References listenerLock, and listeners.

◆ getAvailableDevices() [1/3]

static StringArray CameraDevice::Pimpl::getAvailableDevices ( )
static

◆ openedOk() [1/2]

bool CameraDevice::Pimpl::openedOk ( ) const
noexcept

References openingError.

◆ addImageCapture()

void CameraDevice::Pimpl::addImageCapture ( )

References imageOutput, and session.

Referenced by refreshConnections().

◆ addMovieCapture()

void CameraDevice::Pimpl::addMovieCapture ( )

References fileOutput, and session.

Referenced by refreshConnections().

◆ removeImageCapture()

void CameraDevice::Pimpl::removeImageCapture ( )

References imageOutput, and session.

Referenced by refreshConnections(), and ~Pimpl().

◆ removeMovieCapture()

void CameraDevice::Pimpl::removeMovieCapture ( )

References fileOutput, and session.

Referenced by refreshConnections(), and ~Pimpl().

◆ refreshConnections()

void CameraDevice::Pimpl::refreshConnections ( )

◆ refreshIfNeeded()

void CameraDevice::Pimpl::refreshIfNeeded ( )

◆ startRecordingToFile() [2/3]

void CameraDevice::Pimpl::startRecordingToFile ( const File &  file,
int   
)

◆ stopRecording() [2/3]

void CameraDevice::Pimpl::stopRecording ( )

◆ getTimeOfFirstRecordedFrame() [2/3]

Time CameraDevice::Pimpl::getTimeOfFirstRecordedFrame ( ) const

References firstPresentationTime.

◆ getVideoConnection()

AVCaptureConnection* CameraDevice::Pimpl::getVideoConnection ( ) const

References imageOutput.

Referenced by refreshIfNeeded(), and triggerImageCapture().

◆ handleImageCapture()

void CameraDevice::Pimpl::handleImageCapture ( const void *  data,
size_t  size 
)

◆ triggerImageCapture()

void CameraDevice::Pimpl::triggerImageCapture ( )

◆ addListener() [2/3]

void CameraDevice::Pimpl::addListener ( CameraDevice::Listener *  listenerToAdd)

◆ removeListener() [2/3]

void CameraDevice::Pimpl::removeListener ( CameraDevice::Listener *  listenerToRemove)

References listenerLock, and listeners.

◆ getAvailableDevices() [2/3]

static StringArray CameraDevice::Pimpl::getAvailableDevices ( )
static

◆ openedOk() [2/2]

bool CameraDevice::Pimpl::openedOk ( ) const
noexcept

◆ startRecordingToFile() [3/3]

void CameraDevice::Pimpl::startRecordingToFile ( const File &  file,
int  quality 
)

◆ stopRecording() [3/3]

void CameraDevice::Pimpl::stopRecording ( )

◆ getTimeOfFirstRecordedFrame() [3/3]

Time CameraDevice::Pimpl::getTimeOfFirstRecordedFrame ( ) const

◆ addListener() [3/3]

void CameraDevice::Pimpl::addListener ( CameraDevice::Listener *  listenerToAdd)

◆ removeListener() [3/3]

void CameraDevice::Pimpl::removeListener ( CameraDevice::Listener *  listenerToRemove)

◆ callListeners()

void CameraDevice::Pimpl::callListeners ( const Image &  image)

◆ addUser()

void CameraDevice::Pimpl::addUser ( )

◆ removeUser()

void CameraDevice::Pimpl::removeUser ( )

◆ handleFrame()

void CameraDevice::Pimpl::handleFrame ( double  ,
BYTE *  buffer,
long   
)

◆ drawCurrentImage()

void CameraDevice::Pimpl::drawCurrentImage ( Graphics &  g,
Rectangle< int >  area 
)

◆ createFileCaptureFilter()

bool CameraDevice::Pimpl::createFileCaptureFilter ( const File &  file,
int  quality 
)

◆ removeFileCaptureFilter()

void CameraDevice::Pimpl::removeFileCaptureFilter ( )

◆ enumerateCameras()

static ComSmartPtr<IBaseFilter> CameraDevice::Pimpl::enumerateCameras ( StringArray *  names,
const int  deviceIndexToOpen 
)
static

◆ getAvailableDevices() [3/3]

static StringArray CameraDevice::Pimpl::getAvailableDevices ( )
static

Member Data Documentation

◆ captureView

AVCaptureView* CameraDevice::Pimpl::captureView = nil

Referenced by Pimpl().

◆ session

AVCaptureSession* CameraDevice::Pimpl::session = nil

◆ fileOutput

AVCaptureMovieFileOutput* CameraDevice::Pimpl::fileOutput = nil

◆ imageOutput

AVCaptureStillImageOutput* CameraDevice::Pimpl::imageOutput = nil

◆ callbackDelegate

id<AVCaptureFileOutputRecordingDelegate> CameraDevice::Pimpl::callbackDelegate = nil

Referenced by Pimpl(), and ~Pimpl().

◆ openingError

String CameraDevice::Pimpl::openingError

Referenced by openedOk().

◆ firstPresentationTime

Time CameraDevice::Pimpl::firstPresentationTime

◆ isRecording

bool CameraDevice::Pimpl::isRecording = false

Referenced by stopRecording().

◆ listeners

Array< CameraDevice::Listener * > CameraDevice::Pimpl::listeners

◆ listenerLock

CriticalSection CameraDevice::Pimpl::listenerLock

◆ callback

ComSmartPtr<GrabberCallback> CameraDevice::Pimpl::callback

◆ openedSuccessfully

bool CameraDevice::Pimpl::openedSuccessfully

◆ width

int CameraDevice::Pimpl::width

◆ height

int CameraDevice::Pimpl::height

◆ firstRecordedTime

Time CameraDevice::Pimpl::firstRecordedTime

◆ viewerComps

Array<ViewerComponent*> CameraDevice::Pimpl::viewerComps

◆ captureGraphBuilder

ComSmartPtr<ICaptureGraphBuilder2> CameraDevice::Pimpl::captureGraphBuilder

◆ filter

ComSmartPtr<IBaseFilter> CameraDevice::Pimpl::filter

◆ smartTee

ComSmartPtr<IBaseFilter> CameraDevice::Pimpl::smartTee

◆ asfWriter

ComSmartPtr<IBaseFilter> CameraDevice::Pimpl::asfWriter

◆ graphBuilder

ComSmartPtr<IGraphBuilder> CameraDevice::Pimpl::graphBuilder

◆ sampleGrabber

ComSmartPtr<ISampleGrabber> CameraDevice::Pimpl::sampleGrabber

◆ mediaControl

ComSmartPtr<IMediaControl> CameraDevice::Pimpl::mediaControl

◆ smartTeePreviewOutputPin

ComSmartPtr<IPin> CameraDevice::Pimpl::smartTeePreviewOutputPin

◆ smartTeeCaptureOutputPin

ComSmartPtr<IPin> CameraDevice::Pimpl::smartTeeCaptureOutputPin

◆ activeUsers

int CameraDevice::Pimpl::activeUsers

◆ widths

Array<int> CameraDevice::Pimpl::widths

◆ heights

Array<int> CameraDevice::Pimpl::heights

◆ graphRegistrationID

DWORD CameraDevice::Pimpl::graphRegistrationID

◆ imageSwapLock

CriticalSection CameraDevice::Pimpl::imageSwapLock

◆ imageNeedsFlipping

bool CameraDevice::Pimpl::imageNeedsFlipping

◆ loadingImage

Image CameraDevice::Pimpl::loadingImage

◆ activeImage

Image CameraDevice::Pimpl::activeImage

◆ recordNextFrameTime

bool CameraDevice::Pimpl::recordNextFrameTime

◆ previewMaxFPS

int CameraDevice::Pimpl::previewMaxFPS

The documentation for this struct was generated from the following files: