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

#clientMPV::Client (readonly)

Returns the client communicating with mpv.

Returns:



18
19
20
# File 'lib/mpv_ipc/session.rb', line 18

def client
  @client
end

#serverMPV::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_messagesvoid

This method returns an undefined value.



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

def_delegators :@client, :clear_osd_messages

#commandReply

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_messageInteger

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_messagevoid

This method returns an undefined value.



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

def_delegators :@client, :delete_osd_message

#edit_osd_messageBoolean

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_modeString

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_propertyReply

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_propertyInteger

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_listenervoid

This method returns an undefined value.



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

def_delegators :@client, :register_event_listener

#register_keybindingsString

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_handlervoid

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_propertyReply

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_propertyvoid

This method returns an undefined value.



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

def_delegators :@client, :unobserve_property

#unregister_event_listenervoid

This method returns an undefined value.



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

def_delegators :@client, :unregister_event_listener

#unregister_keybindingsvoid

This method returns an undefined value.



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

def_delegators :@client, :unregister_keybindings

#unregister_message_handlervoid

This method returns an undefined value.



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

def_delegators :@client, :unregister_message_handler

#unregister_shutdown_callbackvoid

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

#waitBoolean

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