Class: MPV::Session

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/mpv_ipc/session.rb

Overview

Note:

Automatically releases resources after termination.

Combines an MPV::Server and MPV::Client, connecting them to each other.

Instance Attribute Summary collapse

Instance Method Summary collapse

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.

See Also:

  • MPV::Server::new


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.

Returns:



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.

Returns:

  • (MPV::Server) —

    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.

Returns:

  • (Boolean) —

    true if the connection is alive

See Also:



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.

Returns:

  • (Reply) —

    mpv's response struct

See Also:



78
# File 'lib/mpv_ipc/session.rb', line 78

def_delegators :@client, :command

#command! ⇒ Object

Returns mpv's response data value.

Returns:

  • (Object) —

    mpv's response data value

See Also:



83
# File 'lib/mpv_ipc/session.rb', line 83

def_delegators :@client, :command!

#create_osd_message ⇒ Integer

Returns message id.

Returns:

  • (Integer) —

    message id

See Also:



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.

Returns:

  • (Boolean) —

    true if the message with the given id still existed

See Also:



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).

Returns:

  • (String) —

    section name (for unregister_keybindings)

See Also:



168
# File 'lib/mpv_ipc/session.rb', line 168

def_delegators :@client, :enter_modal_mode

#get_property ⇒ Reply

Returns mpv's response struct.

Returns:

  • (Reply) —

    mpv's response struct

See Also:



88
# File 'lib/mpv_ipc/session.rb', line 88

def_delegators :@client, :get_property

#get_property! ⇒ Object

Returns mpv's response data value.

Returns:

  • (Object) —

    mpv's response data value

See Also:



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.

Returns:

  • (Integer) —

    the observer id to use with unobserve_property

See Also:



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.

Returns:

  • (Boolean) —

    false if it was already terminated



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).

Returns:

  • (String) —

    section name (for unregister_keybindings)

See Also:



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.

Yields:

  • (Boolean) —

    called with a boolean indicating whether the server closed the connection properly



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.

Returns:

  • (Reply) —

    mpv's response struct

See Also:



98
# File 'lib/mpv_ipc/session.rb', line 98

def_delegators :@client, :set_property

#set_property! ⇒ Object

Returns mpv's response data value.

Returns:

  • (Object) —

    mpv's response data value

See Also:



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.

Returns:

  • (Boolean) —

    whether the connection was terminated

See Also:



73
# File 'lib/mpv_ipc/session.rb', line 73

def_delegators :@client, :wait