crocket
crocket
A Crystal wrapper for Rocket.
Still a work-in-progress, and a proof-of-concept. Caveat emptor!
An example project is available at nilsding/crocket_example.
Installation
- Add the dependency to your
shard.yml
:
dependencies:
crocket:
github: nilsding/crocket
- Run
shards install
. This will automatically build the librocket library as well (don't worry, it doesn't take long).
Usage
Usage should be similar to normal Rocket, but with a more Crystal-ish API.
require "crocket"
# Create a new SyncDevice
device = Crocket::SyncDevice.new("sync")
# Set up some callbacks
Crocket::SyncDevice.define_pause_callback do |should_pause|
if should_pause
audio_stream.pause
else
audio_stream.play
end
end
Crocket::SyncDevice.define_set_row_callback do |row|
seek_row_in_audio_stream(row)
end
Crocket::SyncDevice.define_is_playing_callback do
audio_stream.playing?
end
# Connect to the Rocket editor
abort "failed to connect to host" unless device.tcp_connect("localhost")
# Get some tracks
clear_r = device["clear.r"]
clear_g = device["clear.g"]
clear_b = device["clear.b"]
loop do
row = get_row_from_audio_stream
unless device.update(row)
device.tcp_connect("localhost")
end
# Do something with the values for the current row
p [row, clear_r[row], clear_g[row], clear_b[row]]
end
# Save the tracks for later demo use
device.save_tracks
To compile your Crystal app with librocket in edit mode, simply run shards install
.
For demo/playback mode where it reads the tracks from files you need to define the sync_player
flag. This can be achieved via shards install -Dsync_player
.
The edit mode methods are stubbed out when the app is compiled for demo mode. This means that you do not need to manually surround the relevant edit methods (e.g. #tcp_connect
, #save_tracks
, and the callbacks) with a {% if flag?(:sync_player) %}
check.
Development
TODO: Write development instructions here
Contributing
- Fork it (https://github.com/nilsding/crocket/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Georg Gadinger - creator and maintainer
crocket
- 0
- 0
- 0
- 1
- 0
- almost 6 years ago
- December 31, 2018
MIT License
Thu, 07 Nov 2024 21:57:08 GMT