]> git.sesse.net Git - vlc/blobdiff - share/lua/README.txt
Change vlc.stream() and vlc.memory_stream() error reporting to behave like lua's...
[vlc] / share / lua / README.txt
index 960ebab3d124556415202ba7bf267a5b0b9a2c05..dec466fe63ae902441be743559a44b97c4b956da 100644 (file)
@@ -16,6 +16,8 @@ All the Lua standard libraries are available.
  * Playlist (see playlist/README.txt)
  * Art fetcher (see meta/README.txt)
  * Interface (see intf/README.txt)
+ * Extensions (see extensions/README.txt)
+ * Services Discovery (see sd/README.txt)
 
 Lua scripts are tried in alphabetical order in the user's VLC config
 directory lua/{playlist,meta,intf}/ subdirectory on Windows and Mac OS X or
@@ -47,6 +49,45 @@ Configuration
 config.get( name ): Get the VLC configuration option "name"'s value.
 config.set( name, value ): Set the VLC configuration option "name"'s value.
 
+Dialog
+------
+local d = vlc.dialog( "My VLC Extension" ): Create a new UI dialog, with a human-readble title: "My VLC Extension"
+d:show(): Show this dialog.
+d:hide(): Hide (but not close) this dialog.
+d:close(): Close and delete this dialog.
+d:del_widget( widget ): Delete 'widget'. It disappears from the dialog and repositionning may occur.
+
+In the following functions, you can always add some optional parameters: col, row, col_span, row_span.
+They define the position of a widget in the dialog:
+- row, col are the absolute positions on a grid of widgets. First row, col are 1.
+- row_span, col_span represent the relative size of a widget on the grid. A widget with col_span = 4 will be displayed as wide as 4 widgets of col_span = 1.
+Example: w = d:add_label( "My Label", 2, 3, 4, 5 ) will create a label at row 3, col 2, with a relative width of 4, height of 5.
+
+d:add_button( text, func, ... ): Create a button with caption "text" (string). When clicked, call function "func". func is a string.
+d:add_label( text, ... ): Create a text label with caption "text" (string).
+d:add_html( text, ... ): Create a rich text label with caption "text" (string), that supports basic HTML formatting (such as <i> or <h1> for instance).
+d:add_text_input( text, ... ): Create an editable text field, in order to read user input.
+d:add_password( text, ... ): Create an editable text field, in order to read user input. Text entered in this box will not be readable (replaced by asterisks).
+d:add_check_box( text, ... ): Create a check box with a text. They have a boolean state (true/false).
+d:add_dropdown( ... ): Create a drop-down widget. Only 1 element can be selected the same time.
+d:add_list( ... ): Create a list widget. Allows multiple or empty selections.
+d:add_image( path, ... ): Create an image label. path is a relative or absolute path to the image on the local computer.
+
+Some functions can also be applied on widgets:
+w:set_text( text ): Change text displayed by the widget. Applies to: button, label, html, text_input, password, check_box.
+w:get_text(): Read text displayed by the widget. Returns a string. Applies to: button, label, html, text_input, password, check_box.
+w:set_checked( bool ): Set check state of a check box. Applies to: check_box.
+w:get_checked(): Read check state of a check box. Returns a boolean. Applies to: check_box.
+w:add_value( text, id ): Add a value with identifier 'id' (integer) and text 'text'. It's always best to have unique identifiers. Applies to: drop_down.
+w:get_value(): Return identifier of the selected item. Corresponds to the text value chosen by the user. Applies to: drop_down.
+w:clear(): Clear a list or drop_down widget. After that, all values previously added are lost.
+w:get_selection(): Retrieve a table representing the current selection. Keys are the ids, values are the texts associated. Applies to: list.
+
+
+Extension
+---------
+deactivate(): Deactivate current extension (after the end of the current function).
+
 HTTPd
 -----
 http( host, port, [cert, key, ca, crl]): create a new HTTP (SSL) daemon.
@@ -58,23 +99,44 @@ h:redirect( url_dst, url_src ): Redirect all connections from url_src to url_dst
 
 Input
 -----
-input.info(): Get the current input's info. Return value is a table of tables. Keys of the top level table are info category labels.
 input.is_playing(): Return true if input exists.
-input.get_title(): Get the input's name.
-input.stats(): Get statistics about the input. This is a table with the following fields:
+input.add_subtitle(url): Add a subtitle to the current input
+input.item(): Get the current input item. Input item methods are:
+  :uri(): Get item's URI.
+  :name(): Get item's name.
+  :duration(): Get item's duration in seconds or negative value if unavailable.
+  :is_preparsed(): Return true if meta data has been preparsed
+  :metas(): Get meta data as a table.
+  :set_meta(key, value): Set meta data.
+  :info(): Get the current input's info. Return value is a table of tables. Keys of the top level table are info category labels.
+  :stats(): Get statistics about the input. This is a table with the following fields:
+    .read_packets
     .read_bytes
     .input_bitrate
+    .average_input_bitrate
+    .demux_read_packets
     .demux_read_bytes
     .demux_bitrate
+    .average_demux_bitrate
+    .demux_corrupted
+    .demux_discontinuity
+    .decoded_audio
     .decoded_video
     .displayed_pictures
     .lost_pictures
-    .decoded_audio
-    .played_abuffers
-    .lost_abuffers
     .sent_packets
     .sent_bytes
     .send_bitrate
+    .played_abuffers
+    .lost_abuffers
+
+MD5
+---
+md5( str ): return the string's hash
+md5(): create an md5 object with the following methods:
+  :add( str ): add a string to the hash
+  :end_(): finish hashing
+  :hash(): return the hash
 
 Messages
 --------
@@ -260,10 +322,24 @@ sd.get_services_names(): Get a table of all available service discovery
 sd.add( name ): Add service discovery.
 sd.remove( name ): Remove service discovery.
 sd.is_loaded( name ): Check if service discovery is loaded.
+sd.add_item( ... ): Add an item to the service discovery.
+  The item object has the same members as the one in playlist.add().
+  Returns the input item.
+sd.add_node( ... ): Add a node to the service discovery.
+  The node object has the following members:
+      .title: the node's name
+      .arturl: the node's ArtURL (OPTIONAL)
+
+n = vlc.sd.add_node( {title="Node"} )
+n:add_subitem( ... ): Same as sd.add_item(), but as a subitem of n.
+n:add_node( ... ): Same as sd.add_node(), but as a subnode of n.
 
 Stream
 ------
 stream( url ): Instantiate a stream object for specific url.
+memory_stream( string ): Instantiate a stream object containing a specific string.
+  Those two functions return the stream object upon success and nil if an
+  error occured, in that case, the second return value will be an error message.
 
 s = vlc.stream( "http://www.videolan.org/" )
 s:read( 128 ) -- read up to 128 characters. Return 0 if no more data is available (FIXME?).