{"_id":"camelot","_rev":"12-418b41cf0d73bedaaf0a6ecbb587467a","name":"camelot","description":"A node wrapper for webcam controller providing configurable async frame grabbing.","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"author":{"name":"Pascal Deschenes","email":"pdeschen@rassemblr.com","url":"http://blog.rassemblr.com"},"name":"camelot","description":"A node wrapper for webcam controller providing configurable async frame grabbing.","version":"0.0.1","keywords":["webcam","cam","frame"],"repository":{"type":"git","url":"git://github.com/pdeschen/camelot.git"},"bugs":{"email":"pdeschen+camelot@gmail.com","url":"http://github.com/pdeschen/camelot/issues"},"main":"camelot","engines":{"node":"v0.4.5"},"dependencies":{"node-uuid":"1.2.x"},"devDependencies":{},"_npmJsonOpts":{"file":"/home/pdeschen/.npm/camelot/0.0.1/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"camelot@0.0.1","_engineSupported":true,"_npmVersion":"1.0.13","_nodeVersion":"v0.4.5","_defaultsLoaded":true,"dist":{"shasum":"9b208be5ab8fa519eebd7ac02d9a8c7c6e7d941e","tarball":"https://registry.npmjs.org/camelot/-/camelot-0.0.1.tgz","integrity":"sha512-YZJdPtMBX4fKW8ygCBFST8XAlqowAIOiruxIjI/6nMAZOvGdfwIcI2oKKjUslv/Ffq00OjmEob+7kCCfBN2wCw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBKgu/OphrJGu3pDP2AI5m0Y7Dz5txpVO7nB9tRAKA7KAiBdgg1xHKZ6WA4suUPaFzqMBKQXyh/CiXL/PyNuawu9Yg=="}]},"scripts":{}},"0.0.2":{"author":{"name":"Pascal Deschenes","email":"pdeschen@rassemblr.com","url":"http://blog.rassemblr.com"},"name":"camelot","description":"A node wrapper for webcam controller providing configurable async frame grabbing.","version":"0.0.2","keywords":["webcam","cam","frame"],"repository":{"type":"git","url":"git://github.com/pdeschen/camelot.git"},"bugs":{"email":"pdeschen+camelot@gmail.com","url":"http://github.com/pdeschen/camelot/issues"},"main":"camelot","engines":{"node":"v0.4.5"},"dependencies":{"node-uuid":"1.2.x"},"devDependencies":{},"_npmJsonOpts":{"file":"/home/pdeschen/.npm/camelot/0.0.2/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"camelot@0.0.2","_engineSupported":true,"_npmVersion":"1.0.13","_nodeVersion":"v0.4.5","_defaultsLoaded":true,"dist":{"shasum":"a11cb726aa7f835f7b4d4b0e7ca5ed4e6c3b312b","tarball":"https://registry.npmjs.org/camelot/-/camelot-0.0.2.tgz","integrity":"sha512-/qceVobnshbo6Y1/hqz3ObBpuXmOcIeWEIZr6qj5FhRjXNjJiOqSCmkZbAmdgcEXc28F9IivEZVKKU1yWwjeYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDBgzpVT29f9Iw4RV2TamAaUcwlBpc4hfEsSKj2TgfFAIhAPdlgMrD8v2zKoH/mbh8q2Bg3vQ+x4iqO3dM/5zNei3Y"}]},"scripts":{}},"0.0.3":{"author":{"name":"Pascal Deschenes","email":"pdeschen@rassemblr.com","url":"http://blog.rassemblr.com"},"name":"camelot","description":"A node wrapper for webcam controller providing configurable async frame grabbing.","version":"0.0.3","keywords":["webcam","cam","frame"],"repository":{"type":"git","url":"git://github.com/pdeschen/camelot.git"},"bugs":{"email":"pdeschen+camelot@gmail.com","url":"http://github.com/pdeschen/camelot/issues"},"main":"camelot","engines":{"node":"v0.4.5"},"dependencies":{"node-uuid":"1.2.x","winston":"0.3.3"},"devDependencies":{},"_npmJsonOpts":{"file":"/home/pdeschen/.npm/camelot/0.0.3/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"camelot@0.0.3","_engineSupported":true,"_npmVersion":"1.0.13","_nodeVersion":"v0.4.5","_defaultsLoaded":true,"dist":{"shasum":"a5f64b9e53711ea51a4013a3cd7db4f7a3699a89","tarball":"https://registry.npmjs.org/camelot/-/camelot-0.0.3.tgz","integrity":"sha512-gnw5HQBd4xm7nRxtxW+CXZgFEDLHF2GitGJyA3HM6uB4JS7JMVqLI32JZaKdo0e0e+QbRGVjT3E0fk9K4WC27Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFQc4FvsM9BPtSXiQlOh38HGT7yVc/GUktgjiWVjDaVAAiAw9+wLfeuBj0ShhNsshunCA4yo7jWws+Ky3Zpj6Qu5LQ=="}]},"scripts":{},"maintainers":[{"name":"pdeschen","email":"pdeschen@rassemblr.com"}]},"0.0.4":{"author":{"name":"Pascal Deschenes","email":"pdeschen@rassemblr.com","url":"http://blog.rassemblr.com"},"name":"camelot","description":"A node wrapper for webcam controller providing configurable async frame grabbing.","version":"0.0.4","keywords":["webcam","cam","frame"],"repository":{"type":"git","url":"git://github.com/pdeschen/camelot.git"},"bugs":{"email":"pdeschen+camelot@gmail.com","url":"http://github.com/pdeschen/camelot/issues"},"main":"camelot","engines":{"node":">=v0.6.x <=0.8.x"},"dependencies":{"node-uuid":"1.3.x","winston":">=0.3.3 =<0.6.2"},"devDependencies":{},"scripts":{"test":"node test.js"},"_npmUser":{"name":"pdeschen","email":"pdeschen@rassemblr.com"},"_id":"camelot@0.0.4","_engineSupported":true,"_npmVersion":"1.1.0-beta-10","_nodeVersion":"v0.6.2","_defaultsLoaded":true,"dist":{"shasum":"3b859025349f7c754fd8447de8a1cbbc60f80baa","tarball":"https://registry.npmjs.org/camelot/-/camelot-0.0.4.tgz","integrity":"sha512-QtARwtvWseYZTSru8kDMcc0j/00KOXJTruvvNmax5tQRxLvhuBcYYyPZGiG/cVsbvJ7OFKPkCQK8ha76+8tL9g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDdyIZ3TwySAw6ClptSGx2HE6/BGFp/sAW6X2SfOVhqfAiEA6uQptlgQ59fH23eKD3RW/jeoritiYYmcGZeecWXbZ6w="}]},"readme":"\nA [node](http://nodejs.org) wrapper for\n[fswebcam](https://github.com/fsphil/fswebcam) controller providing\nconfigurable async frame grabbing. Grab frames, receive frame events!\n\n[![build status](https://secure.travis-ci.org/pdeschen/camelot.png)](http://travis-ci.org/pdeschen/camelot)\n\nHow it works\n------------\n\nOnce grabbing starts ( *grab , frames are periodically grabbed off the\nweb cam (`/dev/videoX`) depending on the provided frequency option.\nWithin Camelot, once a frame is grabbed, an event is emitted ( `on\n(‘frame’, …)` ) containing the binary frame. Also, instead of relying\non event emission, a callback can also be passed to the `grab()`\nfunction, which will apply the callback upon frame grabbing. As per\nconvensional wisdom, an error event will also be emitted upon Error (\n`on (‘error’, …)` ).\n\nExamples\n--------\n\n    var Camelot = require('./camelot.js');\n\n    var camelot = new Camelot( {\n      'rotate' : '180',\n      'flip' : 'v'\n    });\n\n    camelot.on('frame', function (image) {\n      console.log('frame received!');\n    });\n\n    camelot.on('error', function (err) {\n      console.log(err);\n    });\n\n    camelot.grab( {\n      'title' : 'Camelot',\n      'font' : 'Arial:24',\n      'frequency' : 1    \n    });\n\nFeatures\n--------\n\n-   Infinit frame grabbing based on frequency (in sec).\n-   Banner\n-   Png/Jpeg\n-   Rotation\n-   Resolution\n\n### Supported Capture Options\n\n        focus : 'auto',\n        brightness : 0,\n        contrast : 136,\n        saturation : 150,\n        hue : 0,\n        gamma : 100,\n        sharpness : 50\n\nwith default values.\n\nChangeLog\n---------\n\n### 0.0.4\n* Port event emitting to v0.8\n** event emitting\n** sys v. util\n** path v. fs\n** travis continuous integration\n\n### 0.0.3\n* Initial public release\n\nInstallation\n------------\n\n### Requirements\n\nThis module assumes you have a working binary of\n[fswebcam](https://github.com/fsphil/fswebcam) along with font\nmanagement library and associated font path definition (e.g.\n`GDFONTPATH`). This module has been solely tested on Ubuntu with a\n[Rocketfish 8MP USB HD\nRF-HDWEB](http://www.rocketfishproducts.com/products/computers/RF-HDWEB.html)\nwebcam but should work with any webcam supported by the v4l library.\n\n### Git Clone\n\n    $ git clone git://github.com/pdeschen/camelot.git\n\n### Install from npm\n\n    $ sudo npm install camelot [-g]\n\nTodos\n-----\n\n-   Instead of relying on fswebcam binary, implement node native module\n    using v4l.\n-   Since a webcam is a limited resource, a worker pool (of size 1) \n    should be used to queue grabbing jobs.\n\nLicense\n-------\n\n(MIT license)\n\nCopyright © 2011 Pascal Deschenes\n[pdeschen@gmail.com](mailto:pdeschen@gmail.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the\n“Software”), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be included\nin all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS\nOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","maintainers":[{"name":"pdeschen","email":"pdeschen@rassemblr.com"}]}},"maintainers":[{"name":"pdeschen","email":"pdeschen@rassemblr.com"}],"time":{"modified":"2022-06-13T05:30:34.112Z","created":"2011-07-13T01:48:39.635Z","0.0.1":"2011-07-13T01:48:39.845Z","0.0.2":"2011-07-26T03:04:04.966Z","0.0.3":"2011-09-09T01:09:48.967Z","0.0.4":"2012-09-04T21:40:45.447Z"},"author":{"name":"Pascal Deschenes","email":"pdeschen@rassemblr.com","url":"http://blog.rassemblr.com"},"repository":{"type":"git","url":"git://github.com/pdeschen/camelot.git"},"users":{"recursion_excursion":true}}