]> git.sesse.net Git - vlc/blobdiff - share/lua/README.txt
lua_osd: add some parameters to the osd.message function to allow the user to set...
[vlc] / share / lua / README.txt
index 9d86c72ecfb87081cc9292505dc4fed14142ca3e..c290621ad7e7c43c52131fc58d819661405089d0 100644 (file)
@@ -4,19 +4,20 @@ $Id$
 1 - About Lua
 =============
 
-Lua documenation is available on http://www.lua.org . The reference manual
-is very usefull: http://www.lua.org/manual/5.1/ .
+Lua documentation is available on http://www.lua.org . The reference manual
+is very useful: http://www.lua.org/manual/5.1/ .
 VLC uses Lua 5.1
 All the Lua standard libraries are available.
 
 2 - Lua in VLC
 ==============
 
-3 types of VLC Lua scripts can currently be coded:
+Several types of VLC Lua scripts can currently be coded:
  * 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
@@ -26,7 +27,7 @@ then in the global VLC lua/{playlist,meta,intf}/ directory.
 3 - VLC specific Lua modules
 ============================
 
-All VLC specifc modules are in the "vlc" object. For example, if you want
+All VLC specifics modules are in the "vlc" object. For example, if you want
 to use the "info" function of the "msg" VLC specific Lua module:
 vlc.msg.info( "This is an info message and will be displayed in the console" )
 
@@ -50,19 +51,21 @@ 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"
+local d = vlc.dialog( "My VLC Extension" ): Create a new UI dialog, with a human-readable 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.
+d:delete(): Close and delete this dialog.
+d:del_widget( widget ): Delete 'widget'. It disappears from the dialog and repositioning may occur.
+d:update(): Update the dialog immediately (don't wait for the current function to return)
 
-In the following functions, you can always add some optional parameters: col, row, col_span, row_span.
+In the following functions, you can always add some optional parameters: col, row, col_span, row_span, width, height.
 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.
+- width and height are size hints (in pixels) but may be discarded by the GUI module
 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_button( text, func, ... ): Create a button with caption "text" (string). When clicked, call function "func". func is a function reference.
 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.
@@ -129,6 +132,14 @@ input.item(): Get the current input item. Input item methods are:
     .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
 --------
 msg.dbg( [str1, [str2, [...]]] ): Output debug messages (-vv).
@@ -149,7 +160,7 @@ misc.configdir(): Get the user's VLC config directory.
 misc.cachedir(): Get the user's VLC cache directory.
 
 misc.datadir_list( name ): FIXME: write description ... or ditch function
-  if it isn't usefull anymore, we have datadir and userdatadir :)
+  if it isn't useful anymore, we have datadir and userdatadir :)
 
 misc.mdate(): Get the current date (in milliseconds).
 misc.mwait(): Wait for the given date (in milliseconds).
@@ -166,7 +177,7 @@ net.url_parse( url, [option delimiter] ): Parse URL. Returns a table with
   "option".
 net.listen_tcp( host, port ): Listen to TCP connections. This returns an
   object with an accept and an fds method. accept is blocking (Poll on the
-  fds with the net.POLLIN flag if you want to be non blockin).
+  fds with the net.POLLIN flag if you want to be non blocking).
   The fds method returns a list of fds you can call poll on before using
   the accept method. For example:
 local l = vlc.net.listen_tcp( "localhost", 1234 )
@@ -181,7 +192,7 @@ net.close( fd ): Close file descriptor.
 net.send( fd, string, [length] ): Send data on fd.
 net.recv( fd, [max length] ): Receive data from fd.
 net.poll( { fd = events }, [timeout in seconds] ): Implement poll function.
-  Retruns the numbers of file descriptors with a non 0 revent. The function
+  Returns the numbers of file descriptors with a non 0 revent. The function
   modifies the input table to { fd = revents }. See "man poll".
 net.POLLIN/POLLPRI/POLLOUT/POLLRDHUP/POLLERR/POLLHUP/POLLNVAL: poll event flags
 net.fd_read( fd, [max length] ): Read data from fd.
@@ -220,7 +231,10 @@ OSD
 osd.icon( type, [id] ): Display an icon on the given OSD channel. Uses the
   default channel is none is given. Icon types are: "pause", "play",
   "speaker" and "mute".
-osd.message( string, [id] ): Display text message on the given OSD channel.
+osd.message( string, [id], [position], [duration]: Display the text message on
+  the given OSD channel. Position types are: "center", "left", "right", "top",
+  "bottom", "top-left", "top-right", "bottom-left" or "bottom-right". The
+  duration is set in microseconds.
 osd.slider( position, type, [id] ): Display slider. Position is an integer
   from 0 to 100. Type can be "horizontal" or "vertical".
 osd.channel_register(): Register a new OSD channel. Returns the channel id.
@@ -237,14 +251,14 @@ Playlist
 --------
 playlist.prev(): Play previous track.
 playlist.next(): Play next track.
-playlist.skip( n ): Skip n tracs.
+playlist.skip( n ): Skip n tracks.
 playlist.play(): Play.
 playlist.pause(): Pause.
 playlist.stop(): Stop.
 playlist.clear(): Clear the playlist.
 playlist.repeat_( [status] ): Toggle item repeat or set to specified value.
 playlist.loop( [status] ): Toggle playlist loop or set to specified value.
-playlist.random( [status] ): Toggle playlsit random or set to specified value.
+playlist.random( [status] ): Toggle playlist random or set to specified value.
 playlist.goto( id ): Go to specified track.
 playlist.add( ... ): Add a bunch of items to the playlist.
   The playlist is a table of playlist objects.
@@ -277,20 +291,20 @@ playlist.add( ... ): Add a bunch of items to the playlist.
              example: .meta = { ["Google video"] = { ["docid"] = "-5784010886294950089"; ["GVP version"] = "1.1" }; ["misc"] = { "Hello" = "World!" } }
   Invalid playlist items will be discarded by VLC.
 playlist.enqueue( ... ): like playlist.add() except that track isn't played.
-playlist.get( [what, [tree]] ): Get the playist.
+playlist.get( [what, [tree]] ): Get the playlist.
   If "what" is a number, then this will return the corresponding playlist
   item's playlist hierarchy. If it is "normal" or "playlist", it will
   return the normal playlist. If it is "ml" or "media library", it will
   return the media library. If it is "root" it will return the full playlist.
   If it is a service discovery module's name, it will return that service
   discovery's playlist. If it is any other string, it won't return anything.
-  Else it will return the fullplaylist.
+  Else it will return the full playlist.
   The second argument, "tree", is optional. If set to true or unset, the
   playlist will be returned in a tree layout. If set to false, the playlist
   will be returned using the flat layout.
   Each playlist item returned will have the following members:
       .id: The item's id.
-      .flags: a table with the following members if the corresponing flag is
+      .flags: a table with the following members if the corresponding flag is
               set:
           .save
           .skip
@@ -313,10 +327,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 occurred, 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?).
@@ -334,6 +362,8 @@ strings.resolve_xml_special_chars( [str1, [str2, [...]]] ): Resolve XML
   variables as it had arguments.
 strings.convert_xml_special_chars( [str1, [str2, [...]]] ): Do the inverse
   operation.
+strings.iconv( str1 to, str2 from, str ): use vlc_iconv to convert string
+  from encoding to another
 
 Variables
 ---------
@@ -355,7 +385,7 @@ var.trigger_callback( object, name ): Trigger the callbacks associated with the
 
 var.command( object name, name, argument ): Issue "object name"'s "name"
   command with argument "argument".
-var.libvlc_command( name, arguement ): Issue libvlc's "name" command with
+var.libvlc_command( name, argument ): Issue libvlc's "name" command with
   argument "argument".
 
 Video