vfs: check userland buffers before reading them.
[haiku.git] / src / add-ons / media / media-add-ons / usb_webcam / Jamfile
blob8d3eb6b72905ac7c69b759aa841248f86173e723
1 SubDir HAIKU_TOP src add-ons media media-add-ons usb_webcam ;
3 SetSubDirSupportedPlatformsBeOSCompatible ;
5 # Zeta has a libusb.so, we have it in libdevice.so
6 if $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
7         usbKitLibraryName = libdevice.so ;
8 } else {
9 #       usbKitLibraryName = USBKit.a ;
10 #       UsePublicHeaders [ FDirName drivers ] ;
11 #       UsePublicHeaders [ FDirName device ] ;
12         # use -lusb on ZETA
13         usbKitLibraryName = usb ;
17 # source directories
18 local sourceDirs =
19         addons/quickcam
20         addons/sonix
21         addons/uvc
22         addons
23         cstransforms
24         sensors
28 local sourceDir ;
29 for sourceDir in $(sourceDirs) {
30         SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons media media-add-ons
31                 usb_webcam $(sourceDir) ] ;
35 ## addon sources
36 local addonSources ;
37 addonSources =
38         QuickCamDevice.cpp
39         SonixCamDevice.cpp
40         NW80xCamDevice.cpp
41 #       UVCCamDevice.cpp UVCDeframer.cpp
44 ## colorspace transforms sources
45 local csTransformsSources ;
46 csTransformsSources = Bayer.cpp ;
48 ## sensors sources
49 local sensorsSources ;
50 sensorsSources =
51         hdcs1000.cpp
52         hv7131e1.cpp
53         pas106b.cpp
54         pb0100.cpp
55         tas5110c1b.cpp
56         tas5130d1b.cpp
60 ## how to build header files from sources to include the list of built-in addons
62 rule USBWebcamHeaderGen header : macro : sources
64         header = [ FGristFiles $(header) ] ;
65         sources = [ FGristFiles $(sources) ] ;
67         SEARCH on $(sources) = $(SEARCH_SOURCE) ;
69         Depends $(header) : $(sources) ;
70         MakeLocateArch $(header) ;
71         GREP_DEFINE on $(header) = $(macro) ;
72         USBWebcamHeaderGen1 $(header) : $(sources) ;
73         LocalClean clean : $(header) ;
77 actions USBWebcamHeaderGen1
79         grep -h -a $(GREP_DEFINE) $(2) > $(1) ;
83 local architectureObject ;
84 for architectureObject in [ MultiArchSubDirSetup ] {
85         on $(architectureObject) {
87                 USBWebcamHeaderGen CamInternalAddons.h : B_WEBCAM_MKINTFUNC
88                         : $(addonSources) ;
89                 USBWebcamHeaderGen CamInternalSensors.h : B_WEBCAM_DECLARE_SENSOR
90                         : $(sensorsSources) ;
91                 USBWebcamHeaderGen CamInternalColorSpaceTransforms.h
92                         : B_WEBCAM_DECLARE_CSTRANSFORM : $(csTransformsSources) ;
94                 for sourceDir in $(sourceDirs) {
95                         SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons media
96                                 media-add-ons usb_webcam $(sourceDir) ] ;
97                 }
99                 Addon [ MultiArchDefaultGristFiles usb_webcam.media_addon ] :
100                         $(addonSources)
101                         $(csTransformsSources)
102                         $(sensorsSources)
103                         AddOn.cpp
104                         Producer.cpp
105                         CamBufferedFilterInterface.cpp
106                         CamBufferingDeframer.cpp
107                         CamColorSpaceTransform.cpp
108                         CamDeframer.cpp
109                         CamDevice.cpp
110                         CamFilterInterface.cpp
111                         CamRoster.cpp
112                         CamSensor.cpp
113                         CamStreamingDeframer.cpp
114                         : be media $(usbKitLibraryName) [ TargetLibsupc++ ]
115                 ;
116         }
120 # force dependancies
121 Includes [ FGristFiles CamRoster.cpp ] : [ FGristFiles CamInternalAddons.h ] ;
122 Includes [ FGristFiles CamDevice.cpp ] : [ FGristFiles CamInternalSensors.h ] ;
123 Includes [ FGristFiles CamColorSpaceTransform.cpp ]
124         : [ FGristFiles CamInternalColorSpaceTransforms.h ] ;