Skip to content

rrrus/PixelPusher-objc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PixelPusher-objc

This is pretty much a direct port of Heroic Robotics' PixelPusher-java library.

This library was built and tested for iOS. In theory this library should work with OS X as well, though I've never tested it there.

Framework dependencies:

  • CFNetwork.framework
  • QuartzCore.framework
  • Security.framework

3rd Party Submodules:

Departures from the Java implementation:

  • using GCD and mostly on the main queue (thread) instead of using threads directly. packet dispatch uses non-main queue. i'm waiting to see when/where performance suffers to introduce non-main/concurrent queues.
  • Pixel struct is float R,G,B instead of byte
  • no 5-axis RGBOW pixel support (don't know what devices do this)
  • PPPixelPusher defers allocation of strips so parsing status packets in PPDeviceRegistry uses less memory
  • DeviceRegistry uses 3 different notifications (add, remove, update) instead of just 1 (something changed, you figure out what)

TODO:

  • instrumentation (bandwidth)
  • use C-arrays instead of NSArray (measure perf diff)
  • use non-main queues
  • use actual pixmap for strip backing buffers
  • allow strips to use external back buffer (map all strips into one single pixmap, use OS drawing routines)

About

PixelPusher driver library for objective-C

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published