Class: MPV::Session
- Inherits:
-
Object
- Object
- MPV::Session
- Extended by:
- Forwardable
- Defined in:
- lib/mpv_ipc/session.rb
Overview
Automatically releases resources after termination.
Combines an MPV::Server and MPV::Client, connecting them to each other.
Instance Attribute Summary collapse
-
#client ⇒ MPV::Client
readonly
The client communicating with mpv.
-
#server ⇒ MPV::Server
readonly
The server object responsible for the mpv process.
Instance Method Summary collapse
-
#alive? ⇒ Boolean
True if the connection is alive.
- #clear_osd_messages ⇒ void
-
#command ⇒ Reply
Mpv’s response struct.
-
#command! ⇒ Object
Mpv’s response data value.
-
#create_osd_message ⇒ Integer
Message id.
- #delete_osd_message ⇒ void
-
#edit_osd_message ⇒ Boolean
True if the message with the given id still existed.
-
#enter_modal_mode ⇒ String
Section name (for unregister_keybindings).
-
#get_property ⇒ Reply
Mpv’s response struct.
-
#get_property! ⇒ Object
Mpv’s response data value.
-
#initialize(**params) ⇒ Session
constructor
Creates a new MPV::Session instance containing an MPV::Server and an MPV::Client that are connected to each other.
-
#observe_property ⇒ Integer
The observer id to use with unobserve_property.
-
#quit! ⇒ Boolean
Terminates the mpv process and waits for it.
- #register_event_listener ⇒ void
-
#register_keybindings ⇒ String
Section name (for unregister_keybindings).
- #register_message_handler ⇒ void
-
#register_shutdown_callback {|Boolean| ... } ⇒ void
Registers a shutdown callback for notification or cleanup.
-
#set_property ⇒ Reply
Mpv’s response struct.
-
#set_property! ⇒ Object
Mpv’s response data value.
- #unobserve_property ⇒ void
- #unregister_event_listener ⇒ void
- #unregister_keybindings ⇒ void
- #unregister_message_handler ⇒ void
-
#unregister_shutdown_callback ⇒ void
Unregisters the current shutdown callback.
-
#wait ⇒ Boolean
Whether the connection was terminated.
Constructor Details
#initialize(**params) ⇒ Session
Creates a new MPV::Session instance containing an MPV::Server and an MPV::Client that are connected to each other. All parameters are passed to MPV::Server.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/mpv_ipc/session.rb', line 24 def initialize(**params) @server = Server.new(**params) @client = Client.new(@server.ipc_path) @shutdown_callback = nil @client.register_shutdown_callback do |eof| @shutdown_callback.call(eof) if @shutdown_callback ensure @server.wait if Thread.main.alive? end rescue if @server @server.kill! @server.wait end raise end |
Instance Attribute Details
#client ⇒ MPV::Client (readonly)
Returns the client communicating with mpv.
18 19 20 |
# File 'lib/mpv_ipc/session.rb', line 18 def client @client end |
#server ⇒ MPV::Server (readonly)
Returns the server object responsible for the mpv process.
15 16 17 |
# File 'lib/mpv_ipc/session.rb', line 15 def server @server end |
Instance Method Details
#alive? ⇒ Boolean
Returns true if the connection is alive.
68 |
# File 'lib/mpv_ipc/session.rb', line 68 def_delegators :@client, :alive? |
#clear_osd_messages ⇒ void
This method returns an undefined value.
163 |
# File 'lib/mpv_ipc/session.rb', line 163 def_delegators :@client, :clear_osd_messages |
#command ⇒ Reply
Returns mpv’s response struct.
78 |
# File 'lib/mpv_ipc/session.rb', line 78 def_delegators :@client, :command |
#command! ⇒ Object
Returns mpv’s response data value.
83 |
# File 'lib/mpv_ipc/session.rb', line 83 def_delegators :@client, :command! |
#create_osd_message ⇒ Integer
Returns message id.
148 |
# File 'lib/mpv_ipc/session.rb', line 148 def_delegators :@client, :create_osd_message |
#delete_osd_message ⇒ void
This method returns an undefined value.
158 |
# File 'lib/mpv_ipc/session.rb', line 158 def_delegators :@client, :delete_osd_message |
#edit_osd_message ⇒ Boolean
Returns true if the message with the given id still existed.
153 |
# File 'lib/mpv_ipc/session.rb', line 153 def_delegators :@client, :edit_osd_message |
#enter_modal_mode ⇒ String
Returns section name (for unregister_keybindings).
168 |
# File 'lib/mpv_ipc/session.rb', line 168 def_delegators :@client, :enter_modal_mode |
#get_property ⇒ Reply
Returns mpv’s response struct.
88 |
# File 'lib/mpv_ipc/session.rb', line 88 def_delegators :@client, :get_property |
#get_property! ⇒ Object
Returns mpv’s response data value.
93 |
# File 'lib/mpv_ipc/session.rb', line 93 def_delegators :@client, :get_property! |
#observe_property ⇒ Integer
Returns the observer id to use with unobserve_property.
108 |
# File 'lib/mpv_ipc/session.rb', line 108 def_delegators :@client, :observe_property |
#quit! ⇒ Boolean
Terminates the mpv process and waits for it. It releases all the resources.
59 60 61 62 63 |
# File 'lib/mpv_ipc/session.rb', line 59 def quit! result = @client.quit! || @server.kill! @server.wait result end |
#register_event_listener ⇒ void
This method returns an undefined value.
118 |
# File 'lib/mpv_ipc/session.rb', line 118 def_delegators :@client, :register_event_listener |
#register_keybindings ⇒ String
Returns section name (for unregister_keybindings).
138 |
# File 'lib/mpv_ipc/session.rb', line 138 def_delegators :@client, :register_keybindings |
#register_message_handler ⇒ void
This method returns an undefined value.
128 |
# File 'lib/mpv_ipc/session.rb', line 128 def_delegators :@client, :register_message_handler |
#register_shutdown_callback {|Boolean| ... } ⇒ void
This method returns an undefined value.
Registers a shutdown callback for notification or cleanup.
46 47 48 |
# File 'lib/mpv_ipc/session.rb', line 46 def register_shutdown_callback(&block) @shutdown_callback = block end |
#set_property ⇒ Reply
Returns mpv’s response struct.
98 |
# File 'lib/mpv_ipc/session.rb', line 98 def_delegators :@client, :set_property |
#set_property! ⇒ Object
Returns mpv’s response data value.
103 |
# File 'lib/mpv_ipc/session.rb', line 103 def_delegators :@client, :set_property! |
#unobserve_property ⇒ void
This method returns an undefined value.
113 |
# File 'lib/mpv_ipc/session.rb', line 113 def_delegators :@client, :unobserve_property |
#unregister_event_listener ⇒ void
This method returns an undefined value.
123 |
# File 'lib/mpv_ipc/session.rb', line 123 def_delegators :@client, :unregister_event_listener |
#unregister_keybindings ⇒ void
This method returns an undefined value.
143 |
# File 'lib/mpv_ipc/session.rb', line 143 def_delegators :@client, :unregister_keybindings |
#unregister_message_handler ⇒ void
This method returns an undefined value.
133 |
# File 'lib/mpv_ipc/session.rb', line 133 def_delegators :@client, :unregister_message_handler |
#unregister_shutdown_callback ⇒ void
This method returns an undefined value.
Unregisters the current shutdown callback.
52 53 54 |
# File 'lib/mpv_ipc/session.rb', line 52 def unregister_shutdown_callback @shutdown_callback = nil end |
#wait ⇒ Boolean
Returns whether the connection was terminated.
73 |
# File 'lib/mpv_ipc/session.rb', line 73 def_delegators :@client, :wait |