1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     camera_Api.h
4 
5   Copyright (C)2009 Nintendo Co., Ltd.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law. They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Rev: 38817 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_CAMERA_CTR_CAMERA_API_H_
17 #define NN_CAMERA_CTR_CAMERA_API_H_
18 
19 /* Please see man pages for details
20 
21 */
22 
23 #include <nn/os.h>
24 #include <nn/math.h>
25 #include <nn/camera/CTR/camera_Types.h>
26 #include <nn/y2r/CTR/y2r_Types.h>
27 
28 #include <nn/camera/CTR/camera_Camera.h>
29 
30 namespace nn {
31 namespace camera {
32 namespace CTR {
33 
34     namespace detail
35     {
36         nn::Result InitializeBase(Handle* pSession, const char* name, bool isCheck = false);
37         void FinalizeBase(Handle* pSession);
38         void StartCapture( Port port );
39         void StopCapture( Port port );
40         bool IsBusy( Port port );
41         void ClearBuffer( Port port );
42         void GetVsyncInterruptEvent( nn::os::Event* pEvent, Port port );
43         void GetBufferErrorInterruptEvent( nn::os::Event* pEvent, Port port );
44         void SetReceiving( nn::os::Event* pEvent, u32 pDst, Port port, size_t imageSize, s16 transferUnit );
45         bool IsFinishedReceiving( Port port );
46         void SetTransferLines( Port port, s16 lines, s16 width, s16 height );
47         s16 GetMaxLines( s16 width, s16 height );
48         void SetTransferBytes( Port port, size_t bytes, s16 width, s16 height );
49         size_t GetTransferBytes( Port port );
50         size_t GetMaxBytes( s16 width, s16 height );
51         void SetTrimming( Port port, bool enable );
52         bool IsTrimming( Port port );
53         void SetTrimmingParams( Port port, s16 xStart, s16 yStart, s16 xEnd, s16 yEnd );
54         void GetTrimmingParams( s16* pXStart, s16* pYStart, s16* pXEnd, s16* pYEnd, Port port );
55         void SetTrimmingParamsCenter( Port port, s16 trimWidth, s16 trimHeight, s16 camWidth, s16 camHeight );
56 
57         nn::Result Activate( CameraSelect select );
58         nn::Result SwitchContext( CameraSelect select, Context next );
59         nn::Result SetExposure( CameraSelect select, s8 exposure );
60         nn::Result SetWhiteBalance( CameraSelect select, WhiteBalance wb );
61         nn::Result SetSharpness( CameraSelect select, s8 sharpness );
62         nn::Result SetAutoExposure( CameraSelect select, bool on );
63         nn::Result IsAutoExposure( bool* pOn, CameraSelect select );
64         nn::Result SetAutoWhiteBalance( CameraSelect select, bool on );
65         nn::Result IsAutoWhiteBalance( bool* pOn, CameraSelect select );
66         nn::Result FlipImage( CameraSelect select, Flip flip, Context context );
67         nn::Result SetDetailSize( CameraSelect select, s16 width, s16 height, s16 cropX0, s16 cropY0, s16 cropX1, s16 cropY1, Context context );
68         nn::Result SetSize( CameraSelect select, Size size, Context context );
69         nn::Result SetFrameRate( CameraSelect select, FrameRate rate );
70         nn::Result SetPhotoMode( CameraSelect select, PhotoMode mode );
71         nn::Result SetEffect( CameraSelect select, Effect effect, Context context );
72         nn::Result SetContrast( CameraSelect select, Contrast contrast );
73         nn::Result SetLensCorrection( CameraSelect select, LensCorrection correction );
74         nn::Result SetOutputFormat( CameraSelect select, OutputFormat format, Context context );
75         nn::Result SetAutoExposureWindow( CameraSelect select, s16 startX, s16 startY, s16 width, s16 height );
76         nn::Result SetAutoWhiteBalanceWindow( CameraSelect select, s16 startX, s16 startY, s16 width, s16 height );
77         nn::Result SetNoiseFilter( CameraSelect select, bool on );
78         nn::Result SynchronizeVsyncTiming( CameraSelect select1, CameraSelect select2 );
79         nn::Result SetBrightnessSynchronization( bool enable );
80         void GetLatestVsyncTiming( nn::fnd::TimeSpan *pTime, Port port, size_t past );
81         void GetStereoCameraCalibrationData( StereoCameraCalibrationData * pDst );
82         f32  GetParallaxOnChart( const StereoCameraCalibrationData & cal );
83         f32  GetParallax( const StereoCameraCalibrationData & cal, const f32 distance );
84         void GetStereoCameraCalibrationMatrixOld( nn::math::MTX34 * pDst, const StereoCameraCalibrationData & cal, const f32 translationByPixel, const bool isIncludeParallax );
85         void GetStereoCameraCalibrationMatrix( nn::math::MTX34 * pDst, const StereoCameraCalibrationData & cal, const f32 translationByPixel, const bool isIncludeParallax );
86         void GetStereoCameraCalibrationMatrixEx(
87                     nn::math::MTX34 * pDstR,
88                     nn::math::MTX34 * pDstL,
89                     f32             * pDstScale,
90                     const StereoCameraCalibrationData & cal,
91                     const f32       translationByPixel,
92                     const f32       parallax,
93                     const s16       orgWidth,
94                     const s16       orgHeight,
95                     const s16       dstWidth,
96                     const s16       dstHeight );
97 
98         // Batch parameter settings utility functions
99         nn::Result SetPackageParameterWithoutContext(const PackageParameterCameraSelect& param);
100         nn::Result SetPackageParameterWithContext(const PackageParameterContext& param);
101         nn::Result SetPackageParameterWithContext(const PackageParameterContextDetail& param);
102 
103         nn::Result GetSuitableY2rStandardCoefficient(nn::y2r::CTR::StandardCoefficient* no);
104 
105         nn::Result PlayShutterSound( ShutterSoundType type );
106 
107         nn::Result LeaveApplication();
108         nn::Result ArriveApplication();
109     }
110 
111     namespace
112     {
113         const char PORT_NAME_USER[]      = "cam:u";
114     }
115 
116     /* Please see man pages for details
117 
118 
119 
120 
121 
122 
123 
124 
125 
126     */
127     nn::Result Initialize();
128 
Initialize()129     inline nn::Result Initialize() { return detail::InitializeBase(&detail::Camera::s_Session, PORT_NAME_USER); }
130 
131     /* Please see man pages for details
132 
133 
134 
135     */
136     void Finalize();
137 
Finalize()138     inline void Finalize()    { detail::FinalizeBase(&detail::Camera::s_Session); }
139 
140     /* Please see man pages for details
141 
142 
143 
144 
145     */
StartCapture(Port port)146     inline void StartCapture( Port port )
147     {
148         detail::StartCapture(port);
149     }
150     /* Please see man pages for details
151 
152 
153 
154 
155     */
StopCapture(Port port)156     inline void StopCapture( Port port )
157     {
158         detail::StopCapture(port);
159     }
160     /* Please see man pages for details
161 
162 
163 
164 
165     */
IsBusy(Port port)166     inline bool IsBusy( Port port )
167     {
168         return detail::IsBusy(port);
169     }
170     /* Please see man pages for details
171 
172 
173 
174 
175     */
ClearBuffer(Port port)176     inline void ClearBuffer( Port port )
177     {
178         detail::ClearBuffer(port);
179     }
180     /* Please see man pages for details
181 
182 
183 
184 
185 
186     */
GetVsyncInterruptEvent(nn::os::Event * pEvent,Port port)187     inline void GetVsyncInterruptEvent( nn::os::Event* pEvent, Port port )
188     {
189         detail::GetVsyncInterruptEvent(pEvent, port);
190     }
191     /* Please see man pages for details
192 
193 
194 
195 
196 
197 
198 
199     */
GetBufferErrorInterruptEvent(nn::os::Event * pEvent,Port port)200     inline void GetBufferErrorInterruptEvent( nn::os::Event* pEvent, Port port )
201     {
202         detail::GetBufferErrorInterruptEvent(pEvent, port);
203     }
204     /* Please see man pages for details
205 
206 
207 
208 
209 
210 
211 
212 
213 
214     */
SetReceiving(nn::os::Event * pEvent,void * pDst,Port port,size_t imageSize,s16 transferUnit)215     inline void SetReceiving( nn::os::Event* pEvent, void* pDst, Port port, size_t imageSize, s16 transferUnit )
216     {
217         detail::SetReceiving(pEvent, reinterpret_cast<u32>(pDst), port, imageSize, transferUnit);
218     }
219     /* Please see man pages for details
220 
221 
222 
223 
224     */
IsFinishedReceiving(Port port)225     inline bool IsFinishedReceiving( Port port )
226     {
227         return detail::IsFinishedReceiving(port);
228     }
229     /* Please see man pages for details
230 
231 
232 
233 
234 
235 
236 
237 
238 
239 
240 
241 
242 
243     */
SetTransferLines(Port port,s16 lines,s16 width,s16 height)244     inline void SetTransferLines( Port port, s16 lines, s16 width, s16 height )
245     {
246         detail::SetTransferLines(port, lines, width, height);
247     }
248     /* Please see man pages for details
249 
250 
251 
252 
253 
254 
255 
256 
257 
258 
259 
260 
261 
262     */
GetMaxLines(s16 width,s16 height)263     inline s16 GetMaxLines( s16 width, s16 height )
264     {
265         return detail::GetMaxLines( width, height );
266     }
267     /* Please see man pages for details
268 
269 
270 
271 
272 
273 
274 
275 
276 
277 
278 
279 
280     */
SetTransferBytes(Port port,size_t bytes,s16 width,s16 height)281     inline void SetTransferBytes( Port port, size_t bytes, s16 width, s16 height )
282     {
283         detail::SetTransferBytes(port, bytes, width, height);
284     }
285     /* Please see man pages for details
286 
287 
288 
289 
290     */
GetTransferBytes(Port port)291     inline size_t GetTransferBytes( Port port )
292     {
293         return detail::GetTransferBytes(port);
294     }
295     /* Please see man pages for details
296 
297 
298 
299 
300 
301 
302 
303 
304 
305 
306     */
GetMaxBytes(s16 width,s16 height)307     inline size_t GetMaxBytes( s16 width, s16 height )
308     {
309         return detail::GetMaxBytes( width, height );
310     }
311     /* Please see man pages for details
312 
313 
314 
315 
316     */
GetLineBytes(s16 width)317     inline size_t GetLineBytes( s16 width )
318     {
319         return   ((width) << 1);    // Requires 2 bytes for each pixel
320     }
321     /* Please see man pages for details
322 
323 
324 
325 
326 
327     */
GetFrameBytes(s16 width,s16 height)328     inline size_t GetFrameBytes( s16 width, s16 height )
329     {
330         return (GetLineBytes(width) * (height));
331     }
332     /* Please see man pages for details
333 
334 
335 
336 
337 
338     */
SetTrimming(Port port,bool enable)339     inline void SetTrimming( Port port, bool enable )
340     {
341         detail::SetTrimming(port, enable);
342     }
343     /* Please see man pages for details
344 
345 
346 
347 
348     */
IsTrimming(Port port)349     inline bool IsTrimming( Port port )
350     {
351         return detail::IsTrimming(port);
352     }
353     /* Please see man pages for details
354 
355 
356 
357 
358 
359 
360 
361 
362 
363 
364 
365 
366 
367     */
SetTrimmingParams(Port port,s16 xStart,s16 yStart,s16 xEnd,s16 yEnd)368     inline void SetTrimmingParams( Port port, s16 xStart, s16 yStart, s16 xEnd, s16 yEnd )
369     {
370         detail::SetTrimmingParams(port, xStart, yStart, xEnd, yEnd);
371     }
372     /* Please see man pages for details
373 
374 
375 
376 
377 
378 
379 
380 
381     */
GetTrimmingParams(s16 * pXStart,s16 * pYStart,s16 * pXEnd,s16 * pYEnd,Port port)382     inline void GetTrimmingParams( s16* pXStart, s16* pYStart, s16* pXEnd, s16* pYEnd, Port port )
383     {
384         detail::GetTrimmingParams(pXStart, pYStart, pXEnd, pYEnd, port);
385     }
386     /* Please see man pages for details
387 
388 
389 
390 
391 
392 
393 
394 
395 
396 
397     */
SetTrimmingParamsCenter(Port port,s16 trimWidth,s16 trimHeight,s16 camWidth,s16 camHeight)398     inline void SetTrimmingParamsCenter( Port port, s16 trimWidth, s16 trimHeight, s16 camWidth, s16 camHeight )
399     {
400         detail::SetTrimmingParamsCenter(port, trimWidth, trimHeight, camWidth, camHeight);
401     }
402 
403 
404     /* Please see man pages for details
405 
406 
407 
408 
409 
410 
411 
412 
413 
414 
415 
416 
417     */
Activate(CameraSelect select)418     inline nn::Result Activate( CameraSelect select )
419     {
420         return detail::Activate(select);
421     }
422     /* Please see man pages for details
423 
424 
425 
426 
427 
428 
429 
430 
431     */
SwitchContext(CameraSelect select,Context next)432     inline nn::Result SwitchContext( CameraSelect select, Context next )
433     {
434         return detail::SwitchContext(select, next);
435     }
436     /* Please see man pages for details
437 
438 
439 
440 
441 
442 
443 
444 
445     */
SetExposure(CameraSelect select,s8 exposure)446     inline nn::Result SetExposure( CameraSelect select, s8 exposure )
447     {
448         return detail::SetExposure(select, exposure);
449     }
450     /* Please see man pages for details
451 
452 
453 
454 
455 
456 
457 
458 
459     */
SetWhiteBalance(CameraSelect select,WhiteBalance wb)460     inline nn::Result SetWhiteBalance( CameraSelect select, WhiteBalance wb )
461     {
462         return detail::SetWhiteBalance(select, wb);
463     }
464     /* Please see man pages for details
465 
466 
467 
468 
469 
470 
471 
472 
473     */
SetSharpness(CameraSelect select,s8 sharpness)474     inline nn::Result SetSharpness( CameraSelect select, s8 sharpness )
475     {
476         return detail::SetSharpness(select, sharpness);
477     }
478     /* Please see man pages for details
479 
480 
481 
482 
483 
484 
485 
486 
487     */
SetAutoExposure(CameraSelect select,bool on)488     inline nn::Result SetAutoExposure( CameraSelect select, bool on )
489     {
490         return detail::SetAutoExposure(select, on);
491     }
492     /* Please see man pages for details
493 
494 
495 
496 
497 
498 
499 
500 
501     */
IsAutoExposure(bool * pOn,CameraSelect select)502     inline nn::Result IsAutoExposure( bool* pOn, CameraSelect select )
503     {
504         return detail::IsAutoExposure(pOn, select);
505     }
506     /* Please see man pages for details
507 
508 
509 
510 
511 
512 
513 
514 
515     */
SetAutoWhiteBalance(CameraSelect select,bool on)516     inline nn::Result SetAutoWhiteBalance( CameraSelect select, bool on )
517     {
518         return detail::SetAutoWhiteBalance(select, on);
519     }
520     /* Please see man pages for details
521 
522 
523 
524 
525 
526 
527 
528 
529     */
IsAutoWhiteBalance(bool * pOn,CameraSelect select)530     inline nn::Result IsAutoWhiteBalance( bool* pOn, CameraSelect select )
531     {
532         return detail::IsAutoWhiteBalance(pOn, select);
533     }
534     /* Please see man pages for details
535 
536 
537 
538 
539 
540 
541 
542 
543 
544     */
545     inline nn::Result FlipImage( CameraSelect select, Flip flip, Context context = CONTEXT_BOTH )
546     {
547         return detail::FlipImage(select, flip, context);
548     }
549     /* Please see man pages for details
550 
551 
552 
553 
554 
555 
556 
557 
558 
559 
560 
561 
562 
563 
564 
565 
566 
567 
568 
569 
570 
571 
572 
573 
574 
575 
576     */
577     inline nn::Result SetDetailSize( CameraSelect select, s16 width, s16 height, s16 cropX0 = 0, s16 cropY0 = 0, s16 cropX1 = 639, s16 cropY1 = 479, Context context = CONTEXT_BOTH )
578     {
579         return detail::SetDetailSize(select, width, height, cropX0, cropY0, cropX1, cropY1, context);
580     }
581     /* Please see man pages for details
582 
583 
584 
585 
586 
587 
588 
589 
590 
591     */
592     inline nn::Result SetSize( CameraSelect select, Size size, Context context = CONTEXT_BOTH )
593     {
594         return detail::SetSize(select, size, context);
595     }
596     /* Please see man pages for details
597 
598 
599 
600 
601 
602 
603 
604 
605     */
SetFrameRate(CameraSelect select,FrameRate rate)606     inline nn::Result SetFrameRate( CameraSelect select, FrameRate rate )
607     {
608         return detail::SetFrameRate(select, rate);
609     }
610     /* Please see man pages for details
611 
612 
613 
614 
615 
616 
617 
618 
619     */
SetPhotoMode(CameraSelect select,PhotoMode mode)620     inline nn::Result SetPhotoMode( CameraSelect select, PhotoMode mode )
621     {
622         return detail::SetPhotoMode(select, mode);
623     }
624     /* Please see man pages for details
625 
626 
627 
628 
629 
630 
631 
632 
633 
634     */
635     inline nn::Result SetEffect( CameraSelect select, Effect effect, Context context = CONTEXT_BOTH )
636     {
637         return detail::SetEffect(select, effect, context);
638     }
639     /* Please see man pages for details
640 
641 
642 
643 
644 
645 
646 
647 
648     */
SetContrast(CameraSelect select,Contrast contrast)649     inline nn::Result SetContrast( CameraSelect select, Contrast contrast )
650     {
651         return detail::SetContrast(select, contrast);
652     }
653     /* Please see man pages for details
654 
655 
656 
657 
658 
659 
660 
661 
662 
663 
664 
665     */
SetLensCorrection(CameraSelect select,LensCorrection correction)666     inline nn::Result SetLensCorrection( CameraSelect select, LensCorrection correction )
667     {
668         return detail::SetLensCorrection(select, correction);
669     }
670     /* Please see man pages for details
671 
672 
673 
674 
675 
676 
677 
678 
679 
680 
681 
682     */
683     inline nn::Result SetOutputFormat( CameraSelect select, OutputFormat format, Context context = CONTEXT_BOTH )
684     {
685         return detail::SetOutputFormat(select, format, context);
686     }
687     /* Please see man pages for details
688 
689 
690 
691 
692 
693 
694 
695 
696 
697 
698 
699     */
SetAutoExposureWindow(CameraSelect select,s16 startX,s16 startY,s16 width,s16 height)700     inline nn::Result SetAutoExposureWindow( CameraSelect select, s16 startX, s16 startY, s16 width, s16 height )
701     {
702         return detail::SetAutoExposureWindow( select, startX, startY, width, height );
703     }
704     /* Please see man pages for details
705 
706 
707 
708 
709 
710 
711 
712 
713 
714 
715 
716     */
SetAutoWhiteBalanceWindow(CameraSelect select,s16 startX,s16 startY,s16 width,s16 height)717     inline nn::Result SetAutoWhiteBalanceWindow( CameraSelect select, s16 startX, s16 startY, s16 width, s16 height )
718     {
719         return detail::SetAutoWhiteBalanceWindow( select, startX, startY, width, height );
720     }
721     /* Please see man pages for details
722 
723 
724 
725 
726 
727 
728 
729 
730     */
SetNoiseFilter(CameraSelect select,bool on)731     inline nn::Result SetNoiseFilter( CameraSelect select, bool on )
732     {
733         return detail::SetNoiseFilter( select, on );
734     }
735     /* Please see man pages for details
736 
737 
738 
739 
740 
741 
742 
743 
744 
745 
746 
747 
748 
749     */
SynchronizeVsyncTiming(CameraSelect select1,CameraSelect select2)750     inline nn::Result SynchronizeVsyncTiming( CameraSelect select1, CameraSelect select2 )
751     {
752         return detail::SynchronizeVsyncTiming( select1, select2 );
753     }
754     /* Please see man pages for details
755 
756 
757 
758 
759 
760 
761 
762 
763 
764 
765 
766 
767 
768     */
769     inline void GetLatestVsyncTiming( nn::fnd::TimeSpan *pTime, Port port, size_t past = 1)
770     {
771         detail::GetLatestVsyncTiming( pTime, port, past );
772     }
773     /* Please see man pages for details
774 
775 
776 
777 
778 
779 
780 
781     */
SetBrightnessSynchronization(bool enable)782     inline nn::Result SetBrightnessSynchronization( bool enable )
783     {
784         return detail::SetBrightnessSynchronization( enable );
785     }
786     /* Please see man pages for details
787 
788 
789 
790 
791     */
GetStereoCameraCalibrationData(StereoCameraCalibrationData * pDst)792     inline void GetStereoCameraCalibrationData( StereoCameraCalibrationData * pDst )
793     {
794         detail::GetStereoCameraCalibrationData( pDst );
795     }
796     /* Please see man pages for details
797 
798 
799 
800 
801 
802 
803     */
GetParallaxOnChart(const StereoCameraCalibrationData & cal)804     inline f32 GetParallaxOnChart( const StereoCameraCalibrationData & cal )
805     {
806         return detail::GetParallaxOnChart( cal );
807     }
808     /* Please see man pages for details
809 
810 
811 
812 
813 
814 
815 
816     */
GetParallax(const StereoCameraCalibrationData & cal,f32 distance)817     inline f32 GetParallax( const StereoCameraCalibrationData & cal, f32 distance )
818     {
819         return detail::GetParallax( cal, distance );
820     }
821     /* Please see man pages for details
822 
823 
824 
825 
826 
827 
828 
829 
830 
831     */
832     inline void GetStereoCameraCalibrationMatrixOld(
833                         nn::math::MTX34                   * pDst,
834                         const StereoCameraCalibrationData & cal,
835                         const f32                         translationByPixel,
836                         const bool                        isIncludeParallax = true )
837     {
838         detail::GetStereoCameraCalibrationMatrixOld( pDst, cal, translationByPixel, isIncludeParallax );
839     }
840     /* Please see man pages for details
841 
842 
843 
844 
845 
846 
847 
848     */
849     inline void GetStereoCameraCalibrationMatrix(
850                         nn::math::MTX34                   * pDst,
851                         const StereoCameraCalibrationData & cal,
852                         const f32                         translationUnit,
853                         const bool                        isIncludeParallax = true )
854     {
855         detail::GetStereoCameraCalibrationMatrix( pDst, cal, translationUnit, isIncludeParallax );
856     }
857     /* Please see man pages for details
858 
859 
860 
861 
862 
863 
864 
865 
866 
867 
868 
869 
870 
871     */
GetStereoCameraCalibrationMatrixEx(nn::math::MTX34 * pDstR,nn::math::MTX34 * pDstL,f32 * pDstScale,const StereoCameraCalibrationData & cal,const f32 translationUnit,const f32 parallax,const s16 orgWidth,const s16 orgHeight,const s16 dstWidth,const s16 dstHeight)872     inline void GetStereoCameraCalibrationMatrixEx(
873                     nn::math::MTX34 * pDstR,
874                     nn::math::MTX34 * pDstL,
875                     f32             * pDstScale,
876                     const StereoCameraCalibrationData & cal,
877                     const f32       translationUnit,
878                     const f32       parallax,
879                     const s16       orgWidth,
880                     const s16       orgHeight,
881                     const s16       dstWidth,
882                     const s16       dstHeight )
883     {
884         detail::GetStereoCameraCalibrationMatrixEx( pDstR, pDstL, pDstScale, cal, translationUnit, parallax, orgWidth, orgHeight, dstWidth, dstHeight );
885     }
886     /* Please see man pages for details
887 
888 
889 
890 
891 
892 
893 
894     */
SetPackageParameterWithoutContext(const PackageParameterCameraSelect & param)895     inline nn::Result SetPackageParameterWithoutContext(const PackageParameterCameraSelect& param)
896     {
897         return detail::SetPackageParameterWithoutContext( param );
898     }
899 
900     /* Please see man pages for details
901 
902 
903 
904 
905 
906 
907 
908 
909 
910 
911     */
SetPackageParameterWithContext(const PackageParameterContext & param)912     inline nn::Result SetPackageParameterWithContext(const PackageParameterContext& param)
913     {
914         return detail::SetPackageParameterWithContext( param );
915     }
916 
917     /* Please see man pages for details
918 
919 
920 
921 
922 
923 
924 
925 
926 
927 
928     */
SetPackageParameterWithContext(const PackageParameterContextDetail & param)929     inline nn::Result SetPackageParameterWithContext(const PackageParameterContextDetail& param)
930     {
931         return detail::SetPackageParameterWithContext( param );
932     }
933 
934     /* Please see man pages for details
935 
936 
937 
938 
939 
940 
941 
942     */
GetSuitableY2rStandardCoefficient(nn::y2r::CTR::StandardCoefficient * no)943     inline nn::Result GetSuitableY2rStandardCoefficient(nn::y2r::CTR::StandardCoefficient* no)
944     {
945         return detail::GetSuitableY2rStandardCoefficient( no );
946     }
947 
948     /* Please see man pages for details
949 
950 
951 
952 
953 
954 
955 
956     */
PlayShutterSound(ShutterSoundType type)957     inline nn::Result PlayShutterSound( ShutterSoundType type )
958     {
959         return detail::PlayShutterSound( type );
960     }
961 
962     // Function to notify the camera process of transitioning to another applet (internal use)
LeaveApplication()963     inline nn::Result LeaveApplication()
964     {
965         return detail::LeaveApplication();
966     }
ArriveApplication()967     inline nn::Result ArriveApplication()
968     {
969         return detail::ArriveApplication();
970     }
971 }
972 }
973 }
974 
975 #endif  // ifndef NN_CAMERA_CTR_CAMERA_API_H_
976