JUCE
|
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< GrabberCallback > | callback |
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 |
CameraDevice::Pimpl::Pimpl | ( | const String & | , |
int | , | ||
int | , | ||
int | , | ||
int | , | ||
int | |||
) |
CameraDevice::Pimpl::~Pimpl | ( | ) |
CameraDevice::Pimpl::Pimpl | ( | const String & | , |
int | , | ||
int | , | ||
int | , | ||
int | , | ||
int | , | ||
bool | useHighQuality | ||
) |
References callbackDelegate, captureView, JUCE_AUTORELEASEPOOL, refreshConnections(), and session.
CameraDevice::Pimpl::~Pimpl | ( | ) |
References callbackDelegate, removeImageCapture(), removeMovieCapture(), and session.
CameraDevice::Pimpl::Pimpl | ( | const String & | , |
int | index, | ||
int | minWidth, | ||
int | minHeight, | ||
int | maxWidth, | ||
int | maxHeight, | ||
bool | |||
) |
CameraDevice::Pimpl::~Pimpl | ( | ) |
void CameraDevice::Pimpl::startRecordingToFile | ( | const File & | , |
int | |||
) |
void CameraDevice::Pimpl::stopRecording | ( | ) |
Referenced by startRecordingToFile(), and stopRecording().
Time CameraDevice::Pimpl::getTimeOfFirstRecordedFrame | ( | ) | const |
void CameraDevice::Pimpl::addListener | ( | CameraDevice::Listener * | listenerToAdd | ) |
References listenerLock, and listeners.
void CameraDevice::Pimpl::removeListener | ( | CameraDevice::Listener * | listenerToRemove | ) |
References listenerLock, and listeners.
|
static |
References JUCE_DECLARE_NON_COPYABLE.
|
noexcept |
References openingError.
void CameraDevice::Pimpl::addImageCapture | ( | ) |
References imageOutput, and session.
Referenced by refreshConnections().
void CameraDevice::Pimpl::addMovieCapture | ( | ) |
References fileOutput, and session.
Referenced by refreshConnections().
void CameraDevice::Pimpl::removeImageCapture | ( | ) |
References imageOutput, and session.
Referenced by refreshConnections(), and ~Pimpl().
void CameraDevice::Pimpl::removeMovieCapture | ( | ) |
References fileOutput, and session.
Referenced by refreshConnections(), and ~Pimpl().
void CameraDevice::Pimpl::refreshConnections | ( | ) |
References addImageCapture(), addMovieCapture(), removeImageCapture(), removeMovieCapture(), and session.
Referenced by Pimpl(), and refreshIfNeeded().
void CameraDevice::Pimpl::refreshIfNeeded | ( | ) |
References getVideoConnection(), and refreshConnections().
Referenced by startRecordingToFile(), and triggerImageCapture().
void CameraDevice::Pimpl::startRecordingToFile | ( | const File & | file, |
int | |||
) |
References fileOutput, firstPresentationTime, refreshIfNeeded(), and stopRecording().
void CameraDevice::Pimpl::stopRecording | ( | ) |
References fileOutput, isRecording, and stopRecording().
Time CameraDevice::Pimpl::getTimeOfFirstRecordedFrame | ( | ) | const |
References firstPresentationTime.
AVCaptureConnection* CameraDevice::Pimpl::getVideoConnection | ( | ) | const |
References imageOutput.
Referenced by refreshIfNeeded(), and triggerImageCapture().
void CameraDevice::Pimpl::handleImageCapture | ( | const void * | data, |
size_t | size | ||
) |
References listenerLock, listeners, and triggerImageCapture().
Referenced by triggerImageCapture().
void CameraDevice::Pimpl::triggerImageCapture | ( | ) |
References getVideoConnection(), handleImageCapture(), imageOutput, jassert, and refreshIfNeeded().
Referenced by addListener(), and handleImageCapture().
void CameraDevice::Pimpl::addListener | ( | CameraDevice::Listener * | listenerToAdd | ) |
References listenerLock, listeners, and triggerImageCapture().
void CameraDevice::Pimpl::removeListener | ( | CameraDevice::Listener * | listenerToRemove | ) |
References listenerLock, and listeners.
|
static |
|
noexcept |
void CameraDevice::Pimpl::startRecordingToFile | ( | const File & | file, |
int | quality | ||
) |
void CameraDevice::Pimpl::stopRecording | ( | ) |
Time CameraDevice::Pimpl::getTimeOfFirstRecordedFrame | ( | ) | const |
void CameraDevice::Pimpl::addListener | ( | CameraDevice::Listener * | listenerToAdd | ) |
void CameraDevice::Pimpl::removeListener | ( | CameraDevice::Listener * | listenerToRemove | ) |
void CameraDevice::Pimpl::callListeners | ( | const Image & | image | ) |
void CameraDevice::Pimpl::addUser | ( | ) |
void CameraDevice::Pimpl::removeUser | ( | ) |
void CameraDevice::Pimpl::handleFrame | ( | double | , |
BYTE * | buffer, | ||
long | |||
) |
void CameraDevice::Pimpl::drawCurrentImage | ( | Graphics & | g, |
Rectangle< int > | area | ||
) |
bool CameraDevice::Pimpl::createFileCaptureFilter | ( | const File & | file, |
int | quality | ||
) |
References juce::jlimit(), and juce::numElementsInArray().
void CameraDevice::Pimpl::removeFileCaptureFilter | ( | ) |
|
static |
|
static |
AVCaptureView* CameraDevice::Pimpl::captureView = nil |
Referenced by Pimpl().
AVCaptureSession* CameraDevice::Pimpl::session = nil |
Referenced by addImageCapture(), addMovieCapture(), Pimpl(), refreshConnections(), removeImageCapture(), removeMovieCapture(), and ~Pimpl().
AVCaptureMovieFileOutput* CameraDevice::Pimpl::fileOutput = nil |
Referenced by addMovieCapture(), removeMovieCapture(), startRecordingToFile(), and stopRecording().
AVCaptureStillImageOutput* CameraDevice::Pimpl::imageOutput = nil |
Referenced by addImageCapture(), getVideoConnection(), removeImageCapture(), and triggerImageCapture().
id<AVCaptureFileOutputRecordingDelegate> CameraDevice::Pimpl::callbackDelegate = nil |
String CameraDevice::Pimpl::openingError |
Referenced by openedOk().
Time CameraDevice::Pimpl::firstPresentationTime |
Referenced by getTimeOfFirstRecordedFrame(), and startRecordingToFile().
bool CameraDevice::Pimpl::isRecording = false |
Referenced by stopRecording().
Array< CameraDevice::Listener * > CameraDevice::Pimpl::listeners |
Referenced by addListener(), handleImageCapture(), and removeListener().
CriticalSection CameraDevice::Pimpl::listenerLock |
Referenced by addListener(), handleImageCapture(), and removeListener().
ComSmartPtr<GrabberCallback> CameraDevice::Pimpl::callback |
bool CameraDevice::Pimpl::openedSuccessfully |
int CameraDevice::Pimpl::width |
int CameraDevice::Pimpl::height |
Time CameraDevice::Pimpl::firstRecordedTime |
Array<ViewerComponent*> CameraDevice::Pimpl::viewerComps |
ComSmartPtr<ICaptureGraphBuilder2> CameraDevice::Pimpl::captureGraphBuilder |
ComSmartPtr<IBaseFilter> CameraDevice::Pimpl::filter |
ComSmartPtr<IBaseFilter> CameraDevice::Pimpl::smartTee |
ComSmartPtr<IBaseFilter> CameraDevice::Pimpl::asfWriter |
ComSmartPtr<IGraphBuilder> CameraDevice::Pimpl::graphBuilder |
ComSmartPtr<ISampleGrabber> CameraDevice::Pimpl::sampleGrabber |
ComSmartPtr<IMediaControl> CameraDevice::Pimpl::mediaControl |
ComSmartPtr<IPin> CameraDevice::Pimpl::smartTeePreviewOutputPin |
ComSmartPtr<IPin> CameraDevice::Pimpl::smartTeeCaptureOutputPin |
int CameraDevice::Pimpl::activeUsers |
Array<int> CameraDevice::Pimpl::widths |
Array<int> CameraDevice::Pimpl::heights |
DWORD CameraDevice::Pimpl::graphRegistrationID |
CriticalSection CameraDevice::Pimpl::imageSwapLock |
bool CameraDevice::Pimpl::imageNeedsFlipping |
Image CameraDevice::Pimpl::loadingImage |
Image CameraDevice::Pimpl::activeImage |
bool CameraDevice::Pimpl::recordNextFrameTime |
int CameraDevice::Pimpl::previewMaxFPS |