Module: Hallon::Observable::Session
- Included in:
- Session
- Defined in:
- lib/hallon/observable/session.rb
Overview
Callbacks related to the Session object.
Class Method Summary collapse
-
.extended(other) ⇒ Object
Includes Hallon::Observable for you.
Instance Method Summary collapse
- #connection_error_callback(pointer, error) {|error| ... } ⇒ Object protected
- #connectionstate_updated_callback(pointer) { ... } ⇒ Object protected
- #credentials_blob_updated_callback(pointer, credentials) {|credentials| ... } ⇒ Object protected
- #end_of_track_callback(pointer) { ... } ⇒ Object protected
- #get_audio_buffer_stats_callback(pointer, stats) { ... } ⇒ Object protected
- #initialize_callbacks ⇒ Spotify::SessionCallbacks protected
- #log_message_callback(pointer, message) {|message| ... } ⇒ Object protected
- #logged_in_callback(pointer, error) {|error| ... } ⇒ Object protected
- #logged_out_callback(pointer) { ... } ⇒ Object protected
- #message_to_user_callback(pointer, message) {|message| ... } ⇒ Object protected
- #metadata_updated_callback(pointer) { ... } ⇒ Object protected
- #music_delivery_callback(pointer, format_struct, frames, num_frames) {|format, frames| ... } ⇒ Object protected
- #notify_main_thread_callback(pointer) { ... } ⇒ Object protected
- #offline_error_callback(pointer, error) {|error| ... } ⇒ Object protected
- #offline_status_updated_callback(pointer) { ... } ⇒ Object protected
- #play_token_lost_callback(pointer) { ... } ⇒ Object protected
- #private_session_mode_changed_callback(pointer, enabled) { ... } ⇒ Object protected
- #scrobble_error_callback(pointer, error) { ... } ⇒ Object protected
- #start_playback_callback(pointer) { ... } ⇒ Object protected
- #stop_playback_callback(pointer) { ... } ⇒ Object protected
- #streaming_error_callback(pointer, error) {|error| ... } ⇒ Object protected
- #userinfo_updated_callback(pointer) { ... } ⇒ Object protected
Class Method Details
.extended(other) ⇒ Object
Includes Hallon::Observable for you.
6 7 8 |
# File 'lib/hallon/observable/session.rb', line 6 def self.extended(other) other.send(:include, Hallon::Observable) end |
Instance Method Details
#connection_error_callback(pointer, error) {|error| ... } ⇒ Object (protected)
61 62 63 |
# File 'lib/hallon/observable/session.rb', line 61 def connection_error_callback(pointer, error) trigger(pointer, :connection_error, error) end |
#connectionstate_updated_callback(pointer) { ... } ⇒ Object (protected)
239 240 241 |
# File 'lib/hallon/observable/session.rb', line 239 def connectionstate_updated_callback(pointer) trigger(pointer, :connectionstate_updated) end |
#credentials_blob_updated_callback(pointer, credentials) {|credentials| ... } ⇒ Object (protected)
229 230 231 |
# File 'lib/hallon/observable/session.rb', line 229 def credentials_blob_updated_callback(pointer, credentials) trigger(pointer, :credentials_blob_updated, credentials) end |
#end_of_track_callback(pointer) { ... } ⇒ Object (protected)
131 132 133 |
# File 'lib/hallon/observable/session.rb', line 131 def end_of_track_callback(pointer) trigger(pointer, :end_of_track) end |
#get_audio_buffer_stats_callback(pointer, stats) { ... } ⇒ Object (protected)
162 163 164 165 166 |
# File 'lib/hallon/observable/session.rb', line 162 def get_audio_buffer_stats_callback(pointer, stats) samples, dropouts = trigger(pointer, :get_audio_buffer_stats) stats[:samples] = samples.to_i stats[:stutter] = dropouts.to_i end |
#initialize_callbacks ⇒ Spotify::SessionCallbacks (protected)
13 14 15 16 17 18 19 |
# File 'lib/hallon/observable/session.rb', line 13 def initialize_callbacks struct = Spotify::SessionCallbacks.new struct.members.each do |member| struct[member] = callback_for(member) end struct end |
#log_message_callback(pointer, message) {|message| ... } ⇒ Object (protected)
196 197 198 |
# File 'lib/hallon/observable/session.rb', line 196 def (pointer, ) trigger(pointer, :log_message, ) end |
#logged_in_callback(pointer, error) {|error| ... } ⇒ Object (protected)
29 30 31 |
# File 'lib/hallon/observable/session.rb', line 29 def logged_in_callback(pointer, error) trigger(pointer, :logged_in, error) end |
#logged_out_callback(pointer) { ... } ⇒ Object (protected)
39 40 41 |
# File 'lib/hallon/observable/session.rb', line 39 def logged_out_callback(pointer) trigger(pointer, :logged_out) end |
#message_to_user_callback(pointer, message) {|message| ... } ⇒ Object (protected)
72 73 74 |
# File 'lib/hallon/observable/session.rb', line 72 def (pointer, ) trigger(pointer, :message_to_user, ) end |
#metadata_updated_callback(pointer) { ... } ⇒ Object (protected)
49 50 51 |
# File 'lib/hallon/observable/session.rb', line 49 def (pointer) trigger(pointer, :metadata_updated) end |
#music_delivery_callback(pointer, format_struct, frames, num_frames) {|format, frames| ... } ⇒ Object (protected)
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/hallon/observable/session.rb', line 94 def music_delivery_callback(pointer, format_struct, frames, num_frames) format = { rate: format_struct[:sample_rate], channels: format_struct[:channels], type: format_struct[:sample_type] } # read the frames of the given type frames = unless num_frames.zero? frames.public_send("read_array_of_#{format[:type]}", num_frames * format[:channels]) else [] # when seeking, for example, num_frames will be zero and frames will be nil end # pass the frames to the callback, allowing it to do whatever consumed_frames = trigger(pointer, :music_delivery, format, frames.each_slice(format[:channels])) # finally return how many frames the callback reportedly consumed consumed_frames.to_i # very important to return something good here! end |
#notify_main_thread_callback(pointer) { ... } ⇒ Object (protected)
82 83 84 |
# File 'lib/hallon/observable/session.rb', line 82 def notify_main_thread_callback(pointer) trigger(pointer, :notify_main_thread) end |
#offline_error_callback(pointer, error) {|error| ... } ⇒ Object (protected)
217 218 219 |
# File 'lib/hallon/observable/session.rb', line 217 def offline_error_callback(pointer, error) trigger(pointer, :offline_error, error) end |
#offline_status_updated_callback(pointer) { ... } ⇒ Object (protected)
206 207 208 |
# File 'lib/hallon/observable/session.rb', line 206 def offline_status_updated_callback(pointer) trigger(pointer, :offline_status_updated) end |
#play_token_lost_callback(pointer) { ... } ⇒ Object (protected)
121 122 123 |
# File 'lib/hallon/observable/session.rb', line 121 def play_token_lost_callback(pointer) trigger(pointer, :play_token_lost) end |
#private_session_mode_changed_callback(pointer, enabled) { ... } ⇒ Object (protected)
263 264 265 |
# File 'lib/hallon/observable/session.rb', line 263 def private_session_mode_changed_callback(pointer, enabled) trigger(pointer, :private_session_mode_changed, enabled) end |
#scrobble_error_callback(pointer, error) { ... } ⇒ Object (protected)
249 250 251 |
# File 'lib/hallon/observable/session.rb', line 249 def scrobble_error_callback(pointer, error) trigger(pointer, :scrobble_error, error) end |
#start_playback_callback(pointer) { ... } ⇒ Object (protected)
141 142 143 |
# File 'lib/hallon/observable/session.rb', line 141 def start_playback_callback(pointer) trigger(pointer, :start_playback) end |
#stop_playback_callback(pointer) { ... } ⇒ Object (protected)
151 152 153 |
# File 'lib/hallon/observable/session.rb', line 151 def stop_playback_callback(pointer) trigger(pointer, :stop_playback) end |
#streaming_error_callback(pointer, error) {|error| ... } ⇒ Object (protected)
175 176 177 |
# File 'lib/hallon/observable/session.rb', line 175 def streaming_error_callback(pointer, error) trigger(pointer, :streaming_error, error) end |
#userinfo_updated_callback(pointer) { ... } ⇒ Object (protected)
185 186 187 |
# File 'lib/hallon/observable/session.rb', line 185 def userinfo_updated_callback(pointer) trigger(pointer, :userinfo_updated) end |