X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/bcb2af729883325b5c3c041411b026d125c78869..c0f84b88cab9518d29900e02a9fb67776820e902:/scripts/protocol diff --git a/scripts/protocol b/scripts/protocol index c7ef728..f2f9a3d 100755 --- a/scripts/protocol +++ b/scripts/protocol @@ -1,7 +1,7 @@ #! /usr/bin/perl -w # # This file is part of DisOrder. -# Copyright (C) 2010-11 Richard Kettlewell +# Copyright (C) 2010-11, 13 Richard Kettlewell # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -194,6 +194,7 @@ sub c_param_docs { sub c_return_docs { my $returns = shift; return () unless defined $returns; + my @docs = (); for my $return (@$returns) { my $type = $return->[0]; my $name = $return->[1]; @@ -203,20 +204,25 @@ sub c_return_docs { or $type eq 'integer' or $type eq 'time' or $type eq 'boolean') { - return (" * \@param ${name}p $descr\n"); + push(@docs, + " * \@param ${name}p $descr\n"); } elsif($type eq 'list' or $type eq 'body') { - return (" * \@param ${name}p $descr\n", - " * \@param n${name}p Number of elements in ${name}p\n"); + push(@docs, + " * \@param ${name}p $descr\n", + " * \@param n${name}p Number of elements in ${name}p\n"); } elsif($type eq 'pair-list') { - return (" * \@param ${name}p $descr\n"); + push(@docs, + " * \@param ${name}p $descr\n"); } elsif($type eq 'queue' or $type eq 'queue-one') { - return (" * \@param ${name}p $descr\n"); + push(@docs, + " * \@param ${name}p $descr\n"); } elsif($type eq 'user') { - return (); + # nothing } else { die "$0: c_return_docs: unknown type '$type'\n"; } } + return @docs; } # simple(CMD, SUMMARY, DETAIL, @@ -474,17 +480,33 @@ our @gpl = ("/*\n", push(@h, @generated, @gpl, "#ifndef CLIENT_STUBS_H\n", "#define CLIENT_STUBS_H\n", + "/** \@file lib/client-stubs.h\n", + " * \@brief Generated client API\n", + " *\n", + " * Don't include this file directly - use \@ref lib/client.h instead.\n", + " */\n", "\n"); push(@c, @generated, @gpl, + "/** \@file lib/client-stubs.c\n", + " * \@brief Generated client API implementation\n", + " */\n", "\n"); push(@ah, @generated, @gpl, "#ifndef ECLIENT_STUBS_H\n", "#define ECLIENT_STUBS_H\n", + "/** \@file lib/client-stubs.h\n", + " * \@brief Generated asynchronous client API\n", + " *\n", + " * Don't include this file directly - use \@ref lib/eclient.h instead.\n", + " */\n", "\n"); push(@ac, @generated, @gpl, + "/** \@file lib/client-stubs.c\n", + " * \@brief Generated asynchronous client API implementation\n", + " */\n", "\n"); # The protocol ---------------------------------------------------------------- @@ -779,6 +801,17 @@ simple("rtp-address", [["string", "address", "Where to store hostname or address"], ["string", "port", "Where to store service name or port number"]]); +simple("rtp-cancel", + "Cancel RTP stream", + "", + []); + +simple("rtp-request", + "Request a unicast RTP stream", + "", + [["string", "address", "Destination address"], + ["string", "port", "Destination port number"]]); + simple("scratch", "Terminate the playing track.", "Requires one of the 'scratch mine', 'scratch random' or 'scratch any' rights depending on how the track came to be added to the queue.",