|
25 | 25 | #include <GL/glu.h> |
26 | 26 | #endif |
27 | 27 |
|
28 | | -#if defined( PLATFORM_DARWIN ) |
29 | | -#include <TwkGLF/GL.h> |
30 | | -#endif |
31 | | - |
32 | 28 | #include <TwkGLF/GLFBO.h> |
33 | 29 | #include <TwkGLF/GLFence.h> |
34 | 30 | #include <iostream> |
35 | 31 | #include <stl_ext/thread_group.h> |
36 | 32 | #include "ajatypes.h" |
37 | 33 | #include "ntv2enums.h" |
38 | | -#include "ntv2devicefeatures.h" |
39 | | -#include "ntv2devicescanner.h" |
40 | | -#include "ntv2utils.h" |
41 | 34 | #include "ntv2card.h" |
42 | | -#include "ntv2vpid.h" |
43 | 35 |
|
44 | 36 | namespace AJADevices |
45 | 37 | { |
46 | 38 | class AJAModule; |
47 | 39 |
|
48 | | - typedef boost::mutex::scoped_lock ScopedLock; |
49 | | - typedef boost::mutex Mutex; |
50 | | - typedef boost::condition_variable Condition; |
| 40 | + using ScopedLock = boost::mutex::scoped_lock; |
| 41 | + using Mutex = boost::mutex; |
| 42 | + using Condition = boost::condition_variable; |
51 | 43 |
|
52 | 44 | struct KonaAudioFormat |
53 | 45 | { |
@@ -90,8 +82,8 @@ namespace AJADevices |
90 | 82 | unsigned int flags{ 0 }; |
91 | 83 | }; |
92 | 84 |
|
93 | | - typedef std::vector<KonaVideoFormat> KonaVideoFormatVector; |
94 | | - typedef std::vector<KonaDataFormat> KonaDataFormatVector; |
| 85 | + using KonaVideoFormatVector = std::vector<KonaVideoFormat>; |
| 86 | + using KonaDataFormatVector = std::vector<KonaDataFormat>; |
95 | 87 |
|
96 | 88 | struct KonaSyncMode |
97 | 89 | { |
@@ -188,17 +180,17 @@ namespace AJADevices |
188 | 180 | // Types |
189 | 181 | // |
190 | 182 |
|
191 | | - typedef TwkUtil::Timer Timer; |
192 | | - typedef TwkGLF::GLFence GLFence; |
193 | | - typedef std::vector<unsigned char*> BufferVector; |
194 | | - typedef stl_ext::thread_group ThreadGroup; |
195 | | - typedef std::vector<int> AudioBuffer; |
196 | | - typedef std::vector<AudioBuffer> AudioBufferVector; |
197 | | - typedef std::vector<Time> TimeVector; |
198 | | - typedef TwkGLF::GLFBO GLFBO; |
199 | | - typedef AUTOCIRCULATE_TRANSFER_STATUS_STRUCT StatusStruct; |
200 | | - typedef std::vector<NTV2Channel> ChannelVector; |
201 | | - typedef std::vector<std::pair<ULWord, ULWord> > VPIDVector; |
| 183 | + using Timer = TwkUtil::Timer; |
| 184 | + using GLFence = TwkGLF::GLFence; |
| 185 | + using BufferVector = std::vector<unsigned char*>; |
| 186 | + using ThreadGroup = stl_ext::thread_group; |
| 187 | + using AudioBuffer = std::vector<int>; |
| 188 | + using AudioBufferVector = std::vector<AudioBuffer>; |
| 189 | + using TimeVector = std::vector<Time>; |
| 190 | + using GLFBO = TwkGLF::GLFBO; |
| 191 | + using StatusStruct = AUTOCIRCULATE_TRANSFER_STATUS_STRUCT; |
| 192 | + using ChannelVector = std::vector<NTV2Channel>; |
| 193 | + using VPIDVector = std::vector<std::pair<ULWord, ULWord>>; |
202 | 194 |
|
203 | 195 | // |
204 | 196 | // This is basically the ring buffer element. Each method uses |
@@ -244,7 +236,7 @@ namespace AJADevices |
244 | 236 | Mutex stateMutex; |
245 | 237 | }; |
246 | 238 |
|
247 | | - typedef std::vector<FrameData> FrameDataVector; |
| 239 | + using FrameDataVector = std::vector<FrameData>; |
248 | 240 |
|
249 | 241 | // |
250 | 242 | // VideoChannel is a logical indepenent output. For example the |
@@ -273,7 +265,7 @@ namespace AJADevices |
273 | 265 | FrameDataVector data; |
274 | 266 | }; |
275 | 267 |
|
276 | | - typedef std::vector<VideoChannel*> VideoChannelVector; |
| 268 | + using VideoChannelVector = std::vector<VideoChannel*>; |
277 | 269 |
|
278 | 270 | // |
279 | 271 | // See next comment for explanation |
@@ -308,92 +300,92 @@ namespace AJADevices |
308 | 300 | // stereo, or quad 4K, can be used. |
309 | 301 | // |
310 | 302 |
|
311 | | - KonaVideoDevice( AJAModule*, const std::string& name, unsigned int devicenum, |
| 303 | + KonaVideoDevice( AJAModule*, const std::string& name, unsigned int deviceIndex, |
312 | 304 | unsigned int appID, OperationMode mode = OperationMode::ProMode ); |
313 | 305 |
|
314 | | - virtual ~KonaVideoDevice(); |
| 306 | + ~KonaVideoDevice() override; |
315 | 307 |
|
316 | 308 | // |
317 | 309 | // KonaVideoDevice API |
318 | 310 | // |
319 | 311 |
|
320 | | - virtual Time outputTime() const; |
321 | | - virtual Time inputTime() const; |
322 | | - virtual void resetClock() const; |
| 312 | + Time outputTime() const override; |
| 313 | + Time inputTime() const override; |
| 314 | + void resetClock() const override; |
323 | 315 |
|
324 | | - virtual void beginTransfer() const; |
325 | | - virtual void endTransfer() const; |
| 316 | + void beginTransfer() const override; |
| 317 | + void endTransfer() const override; |
326 | 318 |
|
327 | 319 | // |
328 | 320 | // GLBindableVideoDevice API |
329 | 321 | // |
330 | 322 |
|
331 | | - virtual bool isStereo() const; |
332 | | - virtual bool isDualStereo() const; |
| 323 | + bool isStereo() const override; |
| 324 | + bool isDualStereo() const override; |
333 | 325 |
|
334 | | - virtual bool willBlockOnTransfer() const; |
335 | | - virtual void bind( const TwkGLF::GLVideoDevice* ) const; |
336 | | - virtual void bind2( const TwkGLF::GLVideoDevice*, |
337 | | - const TwkGLF::GLVideoDevice* ) const; |
338 | | - virtual void transfer( const TwkGLF::GLFBO* ) const; |
339 | | - virtual void transfer2( const TwkGLF::GLFBO*, const TwkGLF::GLFBO* ) const; |
| 326 | + bool willBlockOnTransfer() const override; |
| 327 | + void bind( const TwkGLF::GLVideoDevice* ) const override; |
| 328 | + void bind2( const TwkGLF::GLVideoDevice*, |
| 329 | + const TwkGLF::GLVideoDevice* ) const override; |
| 330 | + void transfer( const TwkGLF::GLFBO* ) const override; |
| 331 | + void transfer2( const TwkGLF::GLFBO*, const TwkGLF::GLFBO* ) const override; |
340 | 332 |
|
341 | | - virtual void unbind() const; |
| 333 | + void unbind() const override; |
342 | 334 |
|
343 | 335 | // |
344 | 336 | // VideoDevice Audio API |
345 | 337 | // |
346 | | - virtual size_t numAudioFormats() const; |
347 | | - virtual AudioFormat audioFormatAtIndex( size_t ) const; |
348 | | - virtual void setAudioFormat( size_t ); |
349 | | - virtual size_t currentAudioFormat() const; |
350 | | - virtual void audioFrameSizeSequence( AudioFrameSizeVector& ) const; |
351 | | - virtual void transferAudio( void* interleavedData, size_t n ) const; |
| 338 | + size_t numAudioFormats() const override; |
| 339 | + AudioFormat audioFormatAtIndex( size_t ) const override; |
| 340 | + void setAudioFormat( size_t ) override; |
| 341 | + size_t currentAudioFormat() const override; |
| 342 | + void audioFrameSizeSequence( AudioFrameSizeVector& ) const override; |
| 343 | + void transferAudio( void* interleavedData, size_t n ) const override; |
352 | 344 |
|
353 | 345 | // |
354 | 346 | // VideoDevice Video API |
355 | 347 | // |
356 | 348 |
|
357 | | - virtual size_t asyncMaxMappedBuffers() const; |
358 | | - virtual Time deviceLatency() const; |
359 | | - |
360 | | - virtual size_t numVideoFormats() const; |
361 | | - virtual VideoFormat videoFormatAtIndex( size_t ) const; |
362 | | - virtual void setVideoFormat( size_t ); |
363 | | - virtual size_t currentVideoFormat() const; |
364 | | - |
365 | | - virtual size_t numVideo4KTransports() const; |
366 | | - virtual Video4KTransport video4KTransportAtIndex( size_t ) const; |
367 | | - virtual void setVideo4KTransport( size_t ); |
368 | | - virtual size_t currentVideo4KTransport() const; |
369 | | - |
370 | | - virtual size_t numDataFormats() const; |
371 | | - virtual DataFormat dataFormatAtIndex( size_t ) const; |
372 | | - virtual void setDataFormat( size_t ); |
373 | | - virtual size_t currentDataFormat() const; |
374 | | - |
375 | | - virtual size_t numSyncModes() const; |
376 | | - virtual SyncMode syncModeAtIndex( size_t ) const; |
377 | | - virtual void setSyncMode( size_t ); |
378 | | - virtual size_t currentSyncMode() const; |
379 | | - |
380 | | - virtual size_t numSyncSources() const; |
381 | | - virtual SyncSource syncSourceAtIndex( size_t ) const; |
382 | | - virtual void setSyncSource( size_t ); |
383 | | - virtual size_t currentSyncSource() const; |
384 | | - |
385 | | - virtual Resolution resolution() const; |
386 | | - virtual Offset offset() const; // defaults to 0,0 |
387 | | - virtual Timing timing() const; |
388 | | - virtual VideoFormat format() const; |
389 | | - virtual size_t width() const; |
390 | | - virtual size_t height() const; |
391 | | - virtual void open( const StringVector& ); |
392 | | - virtual void close(); |
393 | | - virtual bool isOpen() const; |
| 349 | + size_t asyncMaxMappedBuffers() const override; |
| 350 | + Time deviceLatency() const override; |
| 351 | + |
| 352 | + size_t numVideoFormats() const override; |
| 353 | + VideoFormat videoFormatAtIndex( size_t ) const override; |
| 354 | + void setVideoFormat( size_t ) override; |
| 355 | + size_t currentVideoFormat() const override; |
| 356 | + |
| 357 | + size_t numVideo4KTransports() const override; |
| 358 | + Video4KTransport video4KTransportAtIndex( size_t ) const override; |
| 359 | + void setVideo4KTransport( size_t ) override; |
| 360 | + size_t currentVideo4KTransport() const override; |
| 361 | + |
| 362 | + size_t numDataFormats() const override; |
| 363 | + DataFormat dataFormatAtIndex( size_t ) const override; |
| 364 | + void setDataFormat( size_t ) override; |
| 365 | + size_t currentDataFormat() const override; |
| 366 | + |
| 367 | + size_t numSyncModes() const override; |
| 368 | + SyncMode syncModeAtIndex( size_t ) const override; |
| 369 | + void setSyncMode( size_t ) override; |
| 370 | + size_t currentSyncMode() const override; |
| 371 | + |
| 372 | + size_t numSyncSources() const override; |
| 373 | + SyncSource syncSourceAtIndex( size_t ) const override; |
| 374 | + void setSyncSource( size_t ) override; |
| 375 | + size_t currentSyncSource() const override; |
| 376 | + |
| 377 | + Resolution resolution() const override; |
| 378 | + Offset offset() const override; // defaults to 0,0 |
| 379 | + Timing timing() const override; |
| 380 | + VideoFormat format() const override; |
| 381 | + size_t width() const override; |
| 382 | + size_t height() const override; |
| 383 | + void open( const StringVector& ) override; |
| 384 | + void close() override; |
| 385 | + bool isOpen() const override; |
394 | 386 | virtual void makeCurrent() const; |
395 | | - virtual void clearCaches() const; |
396 | | - virtual void syncBuffers() const; |
| 387 | + void clearCaches() const override; |
| 388 | + void syncBuffers() const override; |
397 | 389 |
|
398 | 390 | void threadMain(); |
399 | 391 | void lockDevice( bool lock, const char* threadName = "" ) const; |
@@ -446,9 +438,8 @@ namespace AJADevices |
446 | 438 | void routeHDMI( NTV2Standard standard, const KonaDataFormat& d, |
447 | 439 | bool tsiEnabled, bool outputIsRGB ); |
448 | 440 |
|
449 | | - private: |
450 | 441 | unsigned int m_appID{ 0 }; |
451 | | - unsigned int m_devicenum{ 0 }; |
| 442 | + unsigned int m_deviceIndex{ 0 }; |
452 | 443 | NTV2DeviceID m_deviceID{ DEVICE_ID_INVALID }; |
453 | 444 | CNTV2Card* m_card{ nullptr }; |
454 | 445 | NTV2EveryFrameTaskMode m_taskMode{ NTV2_TASK_MODE_INVALID }; |
|
0 commit comments