GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - jasstrong/PixelPusher-objc: PixelPusher driver library for objective-C

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

3 Commits
3 Commits

Folders and files

NameName
Last commit message
Last commit date
PixelPusher-objc
PixelPusher-objc
 
 
examples
examples
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
LICENSE.txt
LICENSE.txt
 
 
README.md
README.md
 
 

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:

  • CocoaAsyncSocket
  • HLDeferred
  • Lumberjack

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)
  • pixel values passed through inv log LUT to better map to LEDs' log output brightness

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

Readme
MIT license
Activity

Stars

1 star

Watchers

1 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.