[svn r525] updated with new server trunk
authorrenatofilho
Wed Apr 11 18:39:39 2007 +0100 (2007-04-11)
branchtrunk
changeset 52092acf23b87f0
parent 519 ea6b3247eb59
child 521 605cbc483e09
[svn r525] updated with new server
gmyth-stream/client/AUTHORS
gmyth-stream/client/COPYING
gmyth-stream/client/ChangeLog
gmyth-stream/client/INSTALL
gmyth-stream/client/Makefile.am
gmyth-stream/client/NEWS
gmyth-stream/client/README
gmyth-stream/client/configure.ac
gmyth-stream/client/src/Makefile.am
gmyth-stream/client/src/gmyth-stream-client.c
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/gmyth-stream/client/COPYING	Wed Apr 11 18:39:39 2007 +0100
     1.3 @@ -0,0 +1,340 @@
     1.4 +		    GNU GENERAL PUBLIC LICENSE
     1.5 +		       Version 2, June 1991
     1.6 +
     1.7 + Copyright (C) 1989, 1991 Free Software Foundation, Inc.
     1.8 +     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
     1.9 + Everyone is permitted to copy and distribute verbatim copies
    1.10 + of this license document, but changing it is not allowed.
    1.11 +
    1.12 +			    Preamble
    1.13 +
    1.14 +  The licenses for most software are designed to take away your
    1.15 +freedom to share and change it.  By contrast, the GNU General Public
    1.16 +License is intended to guarantee your freedom to share and change free
    1.17 +software--to make sure the software is free for all its users.  This
    1.18 +General Public License applies to most of the Free Software
    1.19 +Foundation's software and to any other program whose authors commit to
    1.20 +using it.  (Some other Free Software Foundation software is covered by
    1.21 +the GNU Library General Public License instead.)  You can apply it to
    1.22 +your programs, too.
    1.23 +
    1.24 +  When we speak of free software, we are referring to freedom, not
    1.25 +price.  Our General Public Licenses are designed to make sure that you
    1.26 +have the freedom to distribute copies of free software (and charge for
    1.27 +this service if you wish), that you receive source code or can get it
    1.28 +if you want it, that you can change the software or use pieces of it
    1.29 +in new free programs; and that you know you can do these things.
    1.30 +
    1.31 +  To protect your rights, we need to make restrictions that forbid
    1.32 +anyone to deny you these rights or to ask you to surrender the rights.
    1.33 +These restrictions translate to certain responsibilities for you if you
    1.34 +distribute copies of the software, or if you modify it.
    1.35 +
    1.36 +  For example, if you distribute copies of such a program, whether
    1.37 +gratis or for a fee, you must give the recipients all the rights that
    1.38 +you have.  You must make sure that they, too, receive or can get the
    1.39 +source code.  And you must show them these terms so they know their
    1.40 +rights.
    1.41 +
    1.42 +  We protect your rights with two steps: (1) copyright the software, and
    1.43 +(2) offer you this license which gives you legal permission to copy,
    1.44 +distribute and/or modify the software.
    1.45 +
    1.46 +  Also, for each author's protection and ours, we want to make certain
    1.47 +that everyone understands that there is no warranty for this free
    1.48 +software.  If the software is modified by someone else and passed on, we
    1.49 +want its recipients to know that what they have is not the original, so
    1.50 +that any problems introduced by others will not reflect on the original
    1.51 +authors' reputations.
    1.52 +
    1.53 +  Finally, any free program is threatened constantly by software
    1.54 +patents.  We wish to avoid the danger that redistributors of a free
    1.55 +program will individually obtain patent licenses, in effect making the
    1.56 +program proprietary.  To prevent this, we have made it clear that any
    1.57 +patent must be licensed for everyone's free use or not licensed at all.
    1.58 +
    1.59 +  The precise terms and conditions for copying, distribution and
    1.60 +modification follow.
    1.61 +
    1.62 +		    GNU GENERAL PUBLIC LICENSE
    1.63 +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    1.64 +
    1.65 +  0. This License applies to any program or other work which contains
    1.66 +a notice placed by the copyright holder saying it may be distributed
    1.67 +under the terms of this General Public License.  The "Program", below,
    1.68 +refers to any such program or work, and a "work based on the Program"
    1.69 +means either the Program or any derivative work under copyright law:
    1.70 +that is to say, a work containing the Program or a portion of it,
    1.71 +either verbatim or with modifications and/or translated into another
    1.72 +language.  (Hereinafter, translation is included without limitation in
    1.73 +the term "modification".)  Each licensee is addressed as "you".
    1.74 +
    1.75 +Activities other than copying, distribution and modification are not
    1.76 +covered by this License; they are outside its scope.  The act of
    1.77 +running the Program is not restricted, and the output from the Program
    1.78 +is covered only if its contents constitute a work based on the
    1.79 +Program (independent of having been made by running the Program).
    1.80 +Whether that is true depends on what the Program does.
    1.81 +
    1.82 +  1. You may copy and distribute verbatim copies of the Program's
    1.83 +source code as you receive it, in any medium, provided that you
    1.84 +conspicuously and appropriately publish on each copy an appropriate
    1.85 +copyright notice and disclaimer of warranty; keep intact all the
    1.86 +notices that refer to this License and to the absence of any warranty;
    1.87 +and give any other recipients of the Program a copy of this License
    1.88 +along with the Program.
    1.89 +
    1.90 +You may charge a fee for the physical act of transferring a copy, and
    1.91 +you may at your option offer warranty protection in exchange for a fee.
    1.92 +
    1.93 +  2. You may modify your copy or copies of the Program or any portion
    1.94 +of it, thus forming a work based on the Program, and copy and
    1.95 +distribute such modifications or work under the terms of Section 1
    1.96 +above, provided that you also meet all of these conditions:
    1.97 +
    1.98 +    a) You must cause the modified files to carry prominent notices
    1.99 +    stating that you changed the files and the date of any change.
   1.100 +
   1.101 +    b) You must cause any work that you distribute or publish, that in
   1.102 +    whole or in part contains or is derived from the Program or any
   1.103 +    part thereof, to be licensed as a whole at no charge to all third
   1.104 +    parties under the terms of this License.
   1.105 +
   1.106 +    c) If the modified program normally reads commands interactively
   1.107 +    when run, you must cause it, when started running for such
   1.108 +    interactive use in the most ordinary way, to print or display an
   1.109 +    announcement including an appropriate copyright notice and a
   1.110 +    notice that there is no warranty (or else, saying that you provide
   1.111 +    a warranty) and that users may redistribute the program under
   1.112 +    these conditions, and telling the user how to view a copy of this
   1.113 +    License.  (Exception: if the Program itself is interactive but
   1.114 +    does not normally print such an announcement, your work based on
   1.115 +    the Program is not required to print an announcement.)
   1.116 +
   1.117 +These requirements apply to the modified work as a whole.  If
   1.118 +identifiable sections of that work are not derived from the Program,
   1.119 +and can be reasonably considered independent and separate works in
   1.120 +themselves, then this License, and its terms, do not apply to those
   1.121 +sections when you distribute them as separate works.  But when you
   1.122 +distribute the same sections as part of a whole which is a work based
   1.123 +on the Program, the distribution of the whole must be on the terms of
   1.124 +this License, whose permissions for other licensees extend to the
   1.125 +entire whole, and thus to each and every part regardless of who wrote it.
   1.126 +
   1.127 +Thus, it is not the intent of this section to claim rights or contest
   1.128 +your rights to work written entirely by you; rather, the intent is to
   1.129 +exercise the right to control the distribution of derivative or
   1.130 +collective works based on the Program.
   1.131 +
   1.132 +In addition, mere aggregation of another work not based on the Program
   1.133 +with the Program (or with a work based on the Program) on a volume of
   1.134 +a storage or distribution medium does not bring the other work under
   1.135 +the scope of this License.
   1.136 +
   1.137 +  3. You may copy and distribute the Program (or a work based on it,
   1.138 +under Section 2) in object code or executable form under the terms of
   1.139 +Sections 1 and 2 above provided that you also do one of the following:
   1.140 +
   1.141 +    a) Accompany it with the complete corresponding machine-readable
   1.142 +    source code, which must be distributed under the terms of Sections
   1.143 +    1 and 2 above on a medium customarily used for software interchange; or,
   1.144 +
   1.145 +    b) Accompany it with a written offer, valid for at least three
   1.146 +    years, to give any third party, for a charge no more than your
   1.147 +    cost of physically performing source distribution, a complete
   1.148 +    machine-readable copy of the corresponding source code, to be
   1.149 +    distributed under the terms of Sections 1 and 2 above on a medium
   1.150 +    customarily used for software interchange; or,
   1.151 +
   1.152 +    c) Accompany it with the information you received as to the offer
   1.153 +    to distribute corresponding source code.  (This alternative is
   1.154 +    allowed only for noncommercial distribution and only if you
   1.155 +    received the program in object code or executable form with such
   1.156 +    an offer, in accord with Subsection b above.)
   1.157 +
   1.158 +The source code for a work means the preferred form of the work for
   1.159 +making modifications to it.  For an executable work, complete source
   1.160 +code means all the source code for all modules it contains, plus any
   1.161 +associated interface definition files, plus the scripts used to
   1.162 +control compilation and installation of the executable.  However, as a
   1.163 +special exception, the source code distributed need not include
   1.164 +anything that is normally distributed (in either source or binary
   1.165 +form) with the major components (compiler, kernel, and so on) of the
   1.166 +operating system on which the executable runs, unless that component
   1.167 +itself accompanies the executable.
   1.168 +
   1.169 +If distribution of executable or object code is made by offering
   1.170 +access to copy from a designated place, then offering equivalent
   1.171 +access to copy the source code from the same place counts as
   1.172 +distribution of the source code, even though third parties are not
   1.173 +compelled to copy the source along with the object code.
   1.174 +
   1.175 +  4. You may not copy, modify, sublicense, or distribute the Program
   1.176 +except as expressly provided under this License.  Any attempt
   1.177 +otherwise to copy, modify, sublicense or distribute the Program is
   1.178 +void, and will automatically terminate your rights under this License.
   1.179 +However, parties who have received copies, or rights, from you under
   1.180 +this License will not have their licenses terminated so long as such
   1.181 +parties remain in full compliance.
   1.182 +
   1.183 +  5. You are not required to accept this License, since you have not
   1.184 +signed it.  However, nothing else grants you permission to modify or
   1.185 +distribute the Program or its derivative works.  These actions are
   1.186 +prohibited by law if you do not accept this License.  Therefore, by
   1.187 +modifying or distributing the Program (or any work based on the
   1.188 +Program), you indicate your acceptance of this License to do so, and
   1.189 +all its terms and conditions for copying, distributing or modifying
   1.190 +the Program or works based on it.
   1.191 +
   1.192 +  6. Each time you redistribute the Program (or any work based on the
   1.193 +Program), the recipient automatically receives a license from the
   1.194 +original licensor to copy, distribute or modify the Program subject to
   1.195 +these terms and conditions.  You may not impose any further
   1.196 +restrictions on the recipients' exercise of the rights granted herein.
   1.197 +You are not responsible for enforcing compliance by third parties to
   1.198 +this License.
   1.199 +
   1.200 +  7. If, as a consequence of a court judgment or allegation of patent
   1.201 +infringement or for any other reason (not limited to patent issues),
   1.202 +conditions are imposed on you (whether by court order, agreement or
   1.203 +otherwise) that contradict the conditions of this License, they do not
   1.204 +excuse you from the conditions of this License.  If you cannot
   1.205 +distribute so as to satisfy simultaneously your obligations under this
   1.206 +License and any other pertinent obligations, then as a consequence you
   1.207 +may not distribute the Program at all.  For example, if a patent
   1.208 +license would not permit royalty-free redistribution of the Program by
   1.209 +all those who receive copies directly or indirectly through you, then
   1.210 +the only way you could satisfy both it and this License would be to
   1.211 +refrain entirely from distribution of the Program.
   1.212 +
   1.213 +If any portion of this section is held invalid or unenforceable under
   1.214 +any particular circumstance, the balance of the section is intended to
   1.215 +apply and the section as a whole is intended to apply in other
   1.216 +circumstances.
   1.217 +
   1.218 +It is not the purpose of this section to induce you to infringe any
   1.219 +patents or other property right claims or to contest validity of any
   1.220 +such claims; this section has the sole purpose of protecting the
   1.221 +integrity of the free software distribution system, which is
   1.222 +implemented by public license practices.  Many people have made
   1.223 +generous contributions to the wide range of software distributed
   1.224 +through that system in reliance on consistent application of that
   1.225 +system; it is up to the author/donor to decide if he or she is willing
   1.226 +to distribute software through any other system and a licensee cannot
   1.227 +impose that choice.
   1.228 +
   1.229 +This section is intended to make thoroughly clear what is believed to
   1.230 +be a consequence of the rest of this License.
   1.231 +
   1.232 +  8. If the distribution and/or use of the Program is restricted in
   1.233 +certain countries either by patents or by copyrighted interfaces, the
   1.234 +original copyright holder who places the Program under this License
   1.235 +may add an explicit geographical distribution limitation excluding
   1.236 +those countries, so that distribution is permitted only in or among
   1.237 +countries not thus excluded.  In such case, this License incorporates
   1.238 +the limitation as if written in the body of this License.
   1.239 +
   1.240 +  9. The Free Software Foundation may publish revised and/or new versions
   1.241 +of the General Public License from time to time.  Such new versions will
   1.242 +be similar in spirit to the present version, but may differ in detail to
   1.243 +address new problems or concerns.
   1.244 +
   1.245 +Each version is given a distinguishing version number.  If the Program
   1.246 +specifies a version number of this License which applies to it and "any
   1.247 +later version", you have the option of following the terms and conditions
   1.248 +either of that version or of any later version published by the Free
   1.249 +Software Foundation.  If the Program does not specify a version number of
   1.250 +this License, you may choose any version ever published by the Free Software
   1.251 +Foundation.
   1.252 +
   1.253 +  10. If you wish to incorporate parts of the Program into other free
   1.254 +programs whose distribution conditions are different, write to the author
   1.255 +to ask for permission.  For software which is copyrighted by the Free
   1.256 +Software Foundation, write to the Free Software Foundation; we sometimes
   1.257 +make exceptions for this.  Our decision will be guided by the two goals
   1.258 +of preserving the free status of all derivatives of our free software and
   1.259 +of promoting the sharing and reuse of software generally.
   1.260 +
   1.261 +			    NO WARRANTY
   1.262 +
   1.263 +  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
   1.264 +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
   1.265 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
   1.266 +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
   1.267 +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
   1.268 +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
   1.269 +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
   1.270 +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
   1.271 +REPAIR OR CORRECTION.
   1.272 +
   1.273 +  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
   1.274 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
   1.275 +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
   1.276 +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
   1.277 +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
   1.278 +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
   1.279 +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
   1.280 +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
   1.281 +POSSIBILITY OF SUCH DAMAGES.
   1.282 +
   1.283 +		     END OF TERMS AND CONDITIONS
   1.284 +
   1.285 +	    How to Apply These Terms to Your New Programs
   1.286 +
   1.287 +  If you develop a new program, and you want it to be of the greatest
   1.288 +possible use to the public, the best way to achieve this is to make it
   1.289 +free software which everyone can redistribute and change under these terms.
   1.290 +
   1.291 +  To do so, attach the following notices to the program.  It is safest
   1.292 +to attach them to the start of each source file to most effectively
   1.293 +convey the exclusion of warranty; and each file should have at least
   1.294 +the "copyright" line and a pointer to where the full notice is found.
   1.295 +
   1.296 +    <one line to give the program's name and a brief idea of what it does.>
   1.297 +    Copyright (C) <year>  <name of author>
   1.298 +
   1.299 +    This program is free software; you can redistribute it and/or modify
   1.300 +    it under the terms of the GNU General Public License as published by
   1.301 +    the Free Software Foundation; either version 2 of the License, or
   1.302 +    (at your option) any later version.
   1.303 +
   1.304 +    This program is distributed in the hope that it will be useful,
   1.305 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1.306 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   1.307 +    GNU General Public License for more details.
   1.308 +
   1.309 +    You should have received a copy of the GNU General Public License
   1.310 +    along with this program; if not, write to the Free Software
   1.311 +    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
   1.312 +
   1.313 +
   1.314 +Also add information on how to contact you by electronic and paper mail.
   1.315 +
   1.316 +If the program is interactive, make it output a short notice like this
   1.317 +when it starts in an interactive mode:
   1.318 +
   1.319 +    Gnomovision version 69, Copyright (C) year  name of author
   1.320 +    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
   1.321 +    This is free software, and you are welcome to redistribute it
   1.322 +    under certain conditions; type `show c' for details.
   1.323 +
   1.324 +The hypothetical commands `show w' and `show c' should show the appropriate
   1.325 +parts of the General Public License.  Of course, the commands you use may
   1.326 +be called something other than `show w' and `show c'; they could even be
   1.327 +mouse-clicks or menu items--whatever suits your program.
   1.328 +
   1.329 +You should also get your employer (if you work as a programmer) or your
   1.330 +school, if any, to sign a "copyright disclaimer" for the program, if
   1.331 +necessary.  Here is a sample; alter the names:
   1.332 +
   1.333 +  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
   1.334 +  `Gnomovision' (which makes passes at compilers) written by James Hacker.
   1.335 +
   1.336 +  <signature of Ty Coon>, 1 April 1989
   1.337 +  Ty Coon, President of Vice
   1.338 +
   1.339 +This General Public License does not permit incorporating your program into
   1.340 +proprietary programs.  If your program is a subroutine library, you may
   1.341 +consider it more useful to permit linking proprietary applications with the
   1.342 +library.  If this is what you want to do, use the GNU Library General
   1.343 +Public License instead of this License.
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/gmyth-stream/client/INSTALL	Wed Apr 11 18:39:39 2007 +0100
     2.3 @@ -0,0 +1,236 @@
     2.4 +Installation Instructions
     2.5 +*************************
     2.6 +
     2.7 +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
     2.8 +Software Foundation, Inc.
     2.9 +
    2.10 +This file is free documentation; the Free Software Foundation gives
    2.11 +unlimited permission to copy, distribute and modify it.
    2.12 +
    2.13 +Basic Installation
    2.14 +==================
    2.15 +
    2.16 +These are generic installation instructions.
    2.17 +
    2.18 +   The `configure' shell script attempts to guess correct values for
    2.19 +various system-dependent variables used during compilation.  It uses
    2.20 +those values to create a `Makefile' in each directory of the package.
    2.21 +It may also create one or more `.h' files containing system-dependent
    2.22 +definitions.  Finally, it creates a shell script `config.status' that
    2.23 +you can run in the future to recreate the current configuration, and a
    2.24 +file `config.log' containing compiler output (useful mainly for
    2.25 +debugging `configure').
    2.26 +
    2.27 +   It can also use an optional file (typically called `config.cache'
    2.28 +and enabled with `--cache-file=config.cache' or simply `-C') that saves
    2.29 +the results of its tests to speed up reconfiguring.  (Caching is
    2.30 +disabled by default to prevent problems with accidental use of stale
    2.31 +cache files.)
    2.32 +
    2.33 +   If you need to do unusual things to compile the package, please try
    2.34 +to figure out how `configure' could check whether to do them, and mail
    2.35 +diffs or instructions to the address given in the `README' so they can
    2.36 +be considered for the next release.  If you are using the cache, and at
    2.37 +some point `config.cache' contains results you don't want to keep, you
    2.38 +may remove or edit it.
    2.39 +
    2.40 +   The file `configure.ac' (or `configure.in') is used to create
    2.41 +`configure' by a program called `autoconf'.  You only need
    2.42 +`configure.ac' if you want to change it or regenerate `configure' using
    2.43 +a newer version of `autoconf'.
    2.44 +
    2.45 +The simplest way to compile this package is:
    2.46 +
    2.47 +  1. `cd' to the directory containing the package's source code and type
    2.48 +     `./configure' to configure the package for your system.  If you're
    2.49 +     using `csh' on an old version of System V, you might need to type
    2.50 +     `sh ./configure' instead to prevent `csh' from trying to execute
    2.51 +     `configure' itself.
    2.52 +
    2.53 +     Running `configure' takes awhile.  While running, it prints some
    2.54 +     messages telling which features it is checking for.
    2.55 +
    2.56 +  2. Type `make' to compile the package.
    2.57 +
    2.58 +  3. Optionally, type `make check' to run any self-tests that come with
    2.59 +     the package.
    2.60 +
    2.61 +  4. Type `make install' to install the programs and any data files and
    2.62 +     documentation.
    2.63 +
    2.64 +  5. You can remove the program binaries and object files from the
    2.65 +     source code directory by typing `make clean'.  To also remove the
    2.66 +     files that `configure' created (so you can compile the package for
    2.67 +     a different kind of computer), type `make distclean'.  There is
    2.68 +     also a `make maintainer-clean' target, but that is intended mainly
    2.69 +     for the package's developers.  If you use it, you may have to get
    2.70 +     all sorts of other programs in order to regenerate files that came
    2.71 +     with the distribution.
    2.72 +
    2.73 +Compilers and Options
    2.74 +=====================
    2.75 +
    2.76 +Some systems require unusual options for compilation or linking that the
    2.77 +`configure' script does not know about.  Run `./configure --help' for
    2.78 +details on some of the pertinent environment variables.
    2.79 +
    2.80 +   You can give `configure' initial values for configuration parameters
    2.81 +by setting variables in the command line or in the environment.  Here
    2.82 +is an example:
    2.83 +
    2.84 +     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
    2.85 +
    2.86 +   *Note Defining Variables::, for more details.
    2.87 +
    2.88 +Compiling For Multiple Architectures
    2.89 +====================================
    2.90 +
    2.91 +You can compile the package for more than one kind of computer at the
    2.92 +same time, by placing the object files for each architecture in their
    2.93 +own directory.  To do this, you must use a version of `make' that
    2.94 +supports the `VPATH' variable, such as GNU `make'.  `cd' to the
    2.95 +directory where you want the object files and executables to go and run
    2.96 +the `configure' script.  `configure' automatically checks for the
    2.97 +source code in the directory that `configure' is in and in `..'.
    2.98 +
    2.99 +   If you have to use a `make' that does not support the `VPATH'
   2.100 +variable, you have to compile the package for one architecture at a
   2.101 +time in the source code directory.  After you have installed the
   2.102 +package for one architecture, use `make distclean' before reconfiguring
   2.103 +for another architecture.
   2.104 +
   2.105 +Installation Names
   2.106 +==================
   2.107 +
   2.108 +By default, `make install' installs the package's commands under
   2.109 +`/usr/local/bin', include files under `/usr/local/include', etc.  You
   2.110 +can specify an installation prefix other than `/usr/local' by giving
   2.111 +`configure' the option `--prefix=PREFIX'.
   2.112 +
   2.113 +   You can specify separate installation prefixes for
   2.114 +architecture-specific files and architecture-independent files.  If you
   2.115 +pass the option `--exec-prefix=PREFIX' to `configure', the package uses
   2.116 +PREFIX as the prefix for installing programs and libraries.
   2.117 +Documentation and other data files still use the regular prefix.
   2.118 +
   2.119 +   In addition, if you use an unusual directory layout you can give
   2.120 +options like `--bindir=DIR' to specify different values for particular
   2.121 +kinds of files.  Run `configure --help' for a list of the directories
   2.122 +you can set and what kinds of files go in them.
   2.123 +
   2.124 +   If the package supports it, you can cause programs to be installed
   2.125 +with an extra prefix or suffix on their names by giving `configure' the
   2.126 +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
   2.127 +
   2.128 +Optional Features
   2.129 +=================
   2.130 +
   2.131 +Some packages pay attention to `--enable-FEATURE' options to
   2.132 +`configure', where FEATURE indicates an optional part of the package.
   2.133 +They may also pay attention to `--with-PACKAGE' options, where PACKAGE
   2.134 +is something like `gnu-as' or `x' (for the X Window System).  The
   2.135 +`README' should mention any `--enable-' and `--with-' options that the
   2.136 +package recognizes.
   2.137 +
   2.138 +   For packages that use the X Window System, `configure' can usually
   2.139 +find the X include and library files automatically, but if it doesn't,
   2.140 +you can use the `configure' options `--x-includes=DIR' and
   2.141 +`--x-libraries=DIR' to specify their locations.
   2.142 +
   2.143 +Specifying the System Type
   2.144 +==========================
   2.145 +
   2.146 +There may be some features `configure' cannot figure out automatically,
   2.147 +but needs to determine by the type of machine the package will run on.
   2.148 +Usually, assuming the package is built to be run on the _same_
   2.149 +architectures, `configure' can figure that out, but if it prints a
   2.150 +message saying it cannot guess the machine type, give it the
   2.151 +`--build=TYPE' option.  TYPE can either be a short name for the system
   2.152 +type, such as `sun4', or a canonical name which has the form:
   2.153 +
   2.154 +     CPU-COMPANY-SYSTEM
   2.155 +
   2.156 +where SYSTEM can have one of these forms:
   2.157 +
   2.158 +     OS KERNEL-OS
   2.159 +
   2.160 +   See the file `config.sub' for the possible values of each field.  If
   2.161 +`config.sub' isn't included in this package, then this package doesn't
   2.162 +need to know the machine type.
   2.163 +
   2.164 +   If you are _building_ compiler tools for cross-compiling, you should
   2.165 +use the option `--target=TYPE' to select the type of system they will
   2.166 +produce code for.
   2.167 +
   2.168 +   If you want to _use_ a cross compiler, that generates code for a
   2.169 +platform different from the build platform, you should specify the
   2.170 +"host" platform (i.e., that on which the generated programs will
   2.171 +eventually be run) with `--host=TYPE'.
   2.172 +
   2.173 +Sharing Defaults
   2.174 +================
   2.175 +
   2.176 +If you want to set default values for `configure' scripts to share, you
   2.177 +can create a site shell script called `config.site' that gives default
   2.178 +values for variables like `CC', `cache_file', and `prefix'.
   2.179 +`configure' looks for `PREFIX/share/config.site' if it exists, then
   2.180 +`PREFIX/etc/config.site' if it exists.  Or, you can set the
   2.181 +`CONFIG_SITE' environment variable to the location of the site script.
   2.182 +A warning: not all `configure' scripts look for a site script.
   2.183 +
   2.184 +Defining Variables
   2.185 +==================
   2.186 +
   2.187 +Variables not defined in a site shell script can be set in the
   2.188 +environment passed to `configure'.  However, some packages may run
   2.189 +configure again during the build, and the customized values of these
   2.190 +variables may be lost.  In order to avoid this problem, you should set
   2.191 +them in the `configure' command line, using `VAR=value'.  For example:
   2.192 +
   2.193 +     ./configure CC=/usr/local2/bin/gcc
   2.194 +
   2.195 +causes the specified `gcc' to be used as the C compiler (unless it is
   2.196 +overridden in the site shell script).  Here is a another example:
   2.197 +
   2.198 +     /bin/bash ./configure CONFIG_SHELL=/bin/bash
   2.199 +
   2.200 +Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
   2.201 +configuration-related scripts to be executed by `/bin/bash'.
   2.202 +
   2.203 +`configure' Invocation
   2.204 +======================
   2.205 +
   2.206 +`configure' recognizes the following options to control how it operates.
   2.207 +
   2.208 +`--help'
   2.209 +`-h'
   2.210 +     Print a summary of the options to `configure', and exit.
   2.211 +
   2.212 +`--version'
   2.213 +`-V'
   2.214 +     Print the version of Autoconf used to generate the `configure'
   2.215 +     script, and exit.
   2.216 +
   2.217 +`--cache-file=FILE'
   2.218 +     Enable the cache: use and save the results of the tests in FILE,
   2.219 +     traditionally `config.cache'.  FILE defaults to `/dev/null' to
   2.220 +     disable caching.
   2.221 +
   2.222 +`--config-cache'
   2.223 +`-C'
   2.224 +     Alias for `--cache-file=config.cache'.
   2.225 +
   2.226 +`--quiet'
   2.227 +`--silent'
   2.228 +`-q'
   2.229 +     Do not print messages saying which checks are being made.  To
   2.230 +     suppress all normal output, redirect it to `/dev/null' (any error
   2.231 +     messages will still be shown).
   2.232 +
   2.233 +`--srcdir=DIR'
   2.234 +     Look for the package's source code in directory DIR.  Usually
   2.235 +     `configure' can determine that directory automatically.
   2.236 +
   2.237 +`configure' also accepts some other, not widely useful, options.  Run
   2.238 +`configure --help' for more details.
   2.239 +
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/gmyth-stream/client/Makefile.am	Wed Apr 11 18:39:39 2007 +0100
     3.3 @@ -0,0 +1,8 @@
     3.4 +SUBDIRS = src test
     3.5 +
     3.6 +pcfiles = gmyth-stream-client.pc
     3.7 +pkgconfigdir = $(libdir)/pkgconfig
     3.8 +pkgconfig_DATA = $(pcfiles)
     3.9 +
    3.10 +EXTRA_DIST = 			\
    3.11 +	ChangeLog
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/gmyth-stream/client/configure.ac	Wed Apr 11 18:39:39 2007 +0100
     4.3 @@ -0,0 +1,79 @@
     4.4 +#                                               -*- Autoconf -*-
     4.5 +# Process this file with autoconf to produce a configure script.
     4.6 +
     4.7 +AC_PREREQ(2.50)
     4.8 +
     4.9 +AC_INIT([gmyth-stream],[0.1])
    4.10 +
    4.11 +AC_CONFIG_MACRO_DIR([m4])
    4.12 +AC_CONFIG_HEADER(config.h)
    4.13 +
    4.14 +AS_VERSION(gmyth-stream, GMYTH_STREAM, 0, 1, 0, 0, GMYTH_STREAM_SVN="no", GMYTH_STREAM_SVN="yes")
    4.15 +GMYTH_STREAM_MAJORMINOR=$GMYTH_STREAM_MAJOR_VERSION.$GMYTH_STREAM_MINOR_VERSION
    4.16 +AC_SUBST(GMYTH_STREAM_MAJORMINOR)
    4.17 +
    4.18 +dnl AM_MAINTAINER_MODE provides the option to enable maintainer mode
    4.19 +AM_MAINTAINER_MODE
    4.20 +dnl make aclocal work in maintainer mode
    4.21 +AC_SUBST(ACLOCAL_AMFLAGS, "-I m4")
    4.22 +
    4.23 +AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
    4.24 +
    4.25 +# Checks for programs.
    4.26 +# check for tools
    4.27 +# Make sure CFLAGS is defined to stop AC_PROC_CC adding -g
    4.28 +CFLAGS="$CFLAGS -Wall"
    4.29 +AC_PROG_CC
    4.30 +AC_PROG_LIBTOOL
    4.31 +
    4.32 +# Checks for libraries.
    4.33 +
    4.34 +# Checks for header files.
    4.35 +AC_HEADER_STDC
    4.36 +
    4.37 +#Test if --disable-debug given
    4.38 +AC_ARG_ENABLE(debug,
    4.39 +	AC_HELP_STRING([--disable-debug], [enable debugging mode]))
    4.40 +if test x"$enable_debug" != xno; then
    4.41 +    CFLAGS="$CFLAGS -g -DGMYTH_STREAM_USE_DEBUG"
    4.42 +else
    4.43 +    CFLAGS="$CFLAGS -O2 -DG_DISABLE_CHECKS"
    4.44 +fi          
    4.45 +
    4.46 +
    4.47 +# Checks required packages ####################################################
    4.48 +###############################################################################
    4.49 +
    4.50 +## Check for pkgconfig ########################################################
    4.51 +###############################################################################
    4.52 +AC_CHECK_PROG(HAVE_PKGCONFIG, pkg-config, yes, no)
    4.53 +if test "x$HAVE_PKGCONFIG" = "xno"; then
    4.54 +  AC_MSG_ERROR(you need to have pkgconfig installed !)
    4.55 +fi
    4.56 +
    4.57 +## Check for Glib2.0 ##########################################################
    4.58 +###############################################################################
    4.59 +PKG_CHECK_MODULES(GLIB, glib-2.0 gobject-2.0, HAVE_GLIB=yes,HAVE_GLIB=no)
    4.60 +if test "x$HAVE_GLIB" = "xno"; then
    4.61 +  AC_MSG_ERROR(you need glib-2.0 installed)
    4.62 +fi
    4.63 +AC_SUBST(GLIB_CFLAGS)
    4.64 +AC_SUBST(GLIB_LIBS)
    4.65 +
    4.66 +AC_SUBST(CFLAGS)
    4.67 +AC_SUBST(LDFLAGS)
    4.68 +AC_SUBST(LIBS)
    4.69 +
    4.70 +AC_OUTPUT([
    4.71 +Makefile
    4.72 +gmyth-stream-client.pc
    4.73 +src/Makefile
    4.74 +test/Makefile
    4.75 +])
    4.76 +
    4.77 +if test "x$enable_debug" != "xno"; then
    4.78 +    AC_MSG_NOTICE([Debug: Enabled])
    4.79 +else
    4.80 +    AC_MSG_NOTICE([Debug: Disabled])
    4.81 +fi          
    4.82 +
     5.1 --- a/gmyth-stream/client/src/Makefile.am	Wed Apr 11 18:12:09 2007 +0100
     5.2 +++ b/gmyth-stream/client/src/Makefile.am	Wed Apr 11 18:39:39 2007 +0100
     5.3 @@ -1,8 +1,13 @@
     5.4  lib_LTLIBRARIES = libgmythstreamclient.la
     5.5  
     5.6 +libgmythstreamclient_includedir = \
     5.7 +    $(pkgincludedir)
     5.8 +
     5.9 +libgmythstreamclient_include_HEADERS = \
    5.10 +	gmyth-stream-client.h
    5.11 +
    5.12  libgmythstreamclient_la_SOURCES = \
    5.13 -	gmyth-stream-client.c \
    5.14 -	gmyth-stream-client.h
    5.15 +	gmyth-stream-client.c
    5.16  
    5.17  libgmythstreamclient_la_CFLAGS = \
    5.18  	$(GLIB_CFLAGS)
    5.19 @@ -10,5 +15,4 @@
    5.20  libgmythstreamclient_la_LDFLAGS = \
    5.21  	$(GLIB_LIBS)
    5.22  
    5.23 -
    5.24  CLEANFILES = 
     6.1 --- a/gmyth-stream/client/src/gmyth-stream-client.c	Wed Apr 11 18:12:09 2007 +0100
     6.2 +++ b/gmyth-stream/client/src/gmyth-stream-client.c	Wed Apr 11 18:39:39 2007 +0100
     6.3 @@ -11,6 +11,7 @@
     6.4  #include <glib/gprintf.h>
     6.5  #include <string.h>
     6.6  
     6.7 +
     6.8  #include "gmyth-stream-client.h"
     6.9  
    6.10  
    6.11 @@ -23,8 +24,10 @@
    6.12  struct _GMythStreamClientPrivate
    6.13  {
    6.14  	GList *streams;
    6.15 +	struct hostent *host;
    6.16  	gint sock;
    6.17  	gboolean connected;
    6.18 +   	struct sockaddr_in addr;
    6.19  };
    6.20  
    6.21  typedef struct _StreamData StreamData;
    6.22 @@ -33,24 +36,26 @@
    6.23  {
    6.24  	guint id;
    6.25  	guint port;
    6.26 +    gint s;
    6.27  };
    6.28  
    6.29 -static void gmyth_stream_client_class_init  (GMythStreamClientClass *klass);
    6.30 -static void gmyth_stream_client_init        (GMythStreamClient *object);
    6.31 -static void gmyth_stream_client_dispose  	(GObject *object);
    6.32 -static void gmyth_stream_client_finalize 	(GObject *object);
    6.33 +static void gmyth_stream_client_class_init				(GMythStreamClientClass *klass);
    6.34 +static void gmyth_stream_client_init					(GMythStreamClient *object);
    6.35 +static void gmyth_stream_client_dispose  				(GObject *object);
    6.36 +static void gmyth_stream_client_finalize 				(GObject *object);
    6.37 +static StreamData* gmtyh_stream_client_get_streamdata 	(GMythStreamClient *self,
    6.38 +														 guint stream_id);
    6.39 +
    6.40  
    6.41  G_DEFINE_TYPE(GMythStreamClient, gmyth_stream_client, G_TYPE_OBJECT)
    6.42  
    6.43  static void
    6.44  gmyth_stream_client_class_init (GMythStreamClientClass *klass)
    6.45 -{   
    6.46 +{
    6.47  	GObjectClass *gobject_class;
    6.48 -
    6.49  	gobject_class = (GObjectClass *) klass;
    6.50  
    6.51  	g_type_class_add_private (klass, sizeof (GMythStreamClientPrivate));
    6.52 -        
    6.53  	gobject_class->dispose  = gmyth_stream_client_dispose;
    6.54  	gobject_class->finalize = gmyth_stream_client_finalize;
    6.55  }
    6.56 @@ -60,20 +65,20 @@
    6.57  {
    6.58  }
    6.59  
    6.60 -static void 
    6.61 +static void
    6.62  gmyth_stream_client_dispose (GObject *object)
    6.63  {
    6.64      gmyth_stream_client_disconnect (GMYTH_STREAM_CLIENT (object));
    6.65  }
    6.66  
    6.67  
    6.68 -static void 
    6.69 +static void
    6.70  gmyth_stream_client_finalize (GObject *object)
    6.71  {
    6.72  }
    6.73  
    6.74 -GMythStreamClient*    	
    6.75 -gmyth_stream_client_new ()                         
    6.76 +GMythStreamClient*
    6.77 +gmyth_stream_client_new ()
    6.78  {
    6.79  	return GMYTH_STREAM_CLIENT (g_object_new (GMYTH_TYPE_STREAM_CLIENT, NULL));
    6.80  }
    6.81 @@ -81,26 +86,22 @@
    6.82  gboolean
    6.83  gmyth_stream_client_connect (GMythStreamClient *self, const gchar *server, guint port)
    6.84  {
    6.85 -    	struct sockaddr_in addr;
    6.86 -     	struct hostent *hp;
    6.87 -
    6.88  	GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
    6.89 -	
    6.90  	g_return_val_if_fail (priv->connected == FALSE, TRUE);
    6.91  
    6.92  	priv->sock = socket (PF_INET, SOCK_STREAM, 0);
    6.93 -	if (priv->sock == -1) {	    
    6.94 +	if (priv->sock == -1) {
    6.95  	    g_debug ("Fail to create sock");
    6.96  	    return FALSE;
    6.97  	}
    6.98  
    6.99 -	memset(&addr, 0, sizeof(addr));
   6.100 -	hp = gethostbyname(server);
   6.101 -	memcpy(&addr, *(hp->h_addr_list),sizeof(struct in_addr));
   6.102 -	addr.sin_family = AF_INET;
   6.103 -	addr.sin_port = htons (port);
   6.104 +	memset(&(priv->addr), 0, sizeof(priv->addr));
   6.105 +	priv->host = gethostbyname(server);
   6.106 +	memcpy(&(priv->addr), *(priv->host->h_addr_list), sizeof(struct in_addr));
   6.107 +	priv->addr.sin_family = AF_INET;
   6.108 +	priv->addr.sin_port = htons (port);
   6.109  
   6.110 -	if (connect (priv->sock, (struct sockaddr *) &addr, sizeof (addr)) == -1) {
   6.111 +	if (connect (priv->sock, (struct sockaddr *) &(priv->addr), sizeof (priv->addr)) == -1) {
   6.112              g_debug ("Fail to connect with server");
   6.113  	    shutdown (priv->sock,  SHUT_RDWR);
   6.114  	    priv->sock = -1;
   6.115 @@ -115,7 +116,7 @@
   6.116  gmyth_stream_client_disconnect (GMythStreamClient *self)
   6.117  {
   6.118      GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
   6.119 -    
   6.120 +
   6.121  	g_return_if_fail (priv->connected == FALSE);
   6.122  
   6.123  	GList *lst = priv->streams;
   6.124 @@ -125,10 +126,10 @@
   6.125  		gmyth_stream_client_close_stream (self, data->id);
   6.126  	}
   6.127  
   6.128 -	close (priv->sock);	
   6.129 +	close (priv->sock);
   6.130  	shutdown (priv->sock, SHUT_RDWR);
   6.131      priv->sock = -1;
   6.132 -    priv->connected = FALSE;	
   6.133 +    priv->connected = FALSE;
   6.134  }
   6.135  
   6.136  guint
   6.137 @@ -144,61 +145,90 @@
   6.138  				guint port,
   6.139  				const gchar* opt)
   6.140  {
   6.141 -	gint stream_id = 0;
   6.142  	gchar *cmd;
   6.143  	StreamData *data = NULL;
   6.144  	GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
   6.145 -	
   6.146 +
   6.147  	g_return_val_if_fail (priv->connected == TRUE, FALSE);
   6.148 -	
   6.149 -	if (send (priv->sock, "SETUP", 5, MSG_CONFIRM) == -1)
   6.150 - 	    return -1;
   6.151 +	g_return_val_if_fail (file_name != NULL, FALSE);
   6.152  
   6.153 -	cmd = g_strdup_printf ("%s %s %s %d %f %s %d %d %d %d %s",
   6.154 -	                file_name, mux, vcodec, vbitrate, fps,
   6.155 -	                acodec, abitrate, width, height, port, opt);
   6.156 -	
   6.157 -	
   6.158 +	cmd = g_strdup_printf ("SETUP %s %s %s %d %f %s %d %d %d %d %s\n",
   6.159 +					file_name,
   6.160 +					(mux == NULL? "X" : mux),
   6.161 +					(vcodec == NULL ? "X" : vcodec),
   6.162 +					vbitrate,
   6.163 +					fps,
   6.164 +					(acodec == NULL ? "X" : acodec),
   6.165 +					abitrate,
   6.166 +					width, height, port,
   6.167 +					(opt == NULL ? "X" : opt));
   6.168 +
   6.169  	if (send (priv->sock, cmd, strlen (cmd), MSG_CONFIRM) == -1) {
   6.170 -	    g_free (cmd);
   6.171 -	    return -1;
   6.172 +		g_free (cmd);
   6.173 +		return -1;
   6.174  	}
   6.175  	g_free (cmd);
   6.176  
   6.177 -	
   6.178 +
   6.179  	data = g_new0 (StreamData, 1);
   6.180 -	data->id = stream_id;
   6.181 -    	data->port = port;
   6.182 +	data->port = port;
   6.183 +	data->id = data->s = socket (PF_INET, SOCK_STREAM, 0);
   6.184 +
   6.185  
   6.186  	priv->streams = g_list_append (priv->streams, data);
   6.187 -	return stream_id;
   6.188 +	return data->id;
   6.189 +}
   6.190 +
   6.191 +static gchar**
   6.192 +_parse_return (int fd)
   6.193 +{
   6.194 +
   6.195  }
   6.196  
   6.197  gboolean
   6.198  gmyth_stream_client_play_stream (GMythStreamClient *self,
   6.199 -				                 guint stream_id)
   6.200 +								guint stream_id)
   6.201  {
   6.202  	GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
   6.203 -	
   6.204 +	StreamData *data;
   6.205 +	struct sockaddr_in addr;
   6.206 +	gchar **retval;
   6.207 +
   6.208  	g_return_val_if_fail (priv->connected == TRUE, FALSE);
   6.209 -    
   6.210 -    	if (send (priv->sock, "PLAY", 4, MSG_MORE) == -1) {
   6.211 -	        return FALSE;
   6.212 -    	}	
   6.213 +
   6.214 +	data = gmtyh_stream_client_get_streamdata (self, stream_id);
   6.215 +	g_return_val_if_fail (data != NULL, FALSE);
   6.216 +
   6.217 +	if (send (priv->sock, "PLAY\n", 5, MSG_MORE) == -1) {
   6.218 +		return FALSE;
   6.219 +	}
   6.220 +
   6.221 +	retval = _read_message (priv->sock);
   6.222 +
   6.223 +	g_usleep (10 * G_USEC_PER_SEC);
   6.224 +
   6.225 +	memset(&addr, 0, sizeof(addr));
   6.226 +	memcpy(&addr, *(priv->host->h_addr_list), sizeof(struct in_addr));
   6.227 +	addr.sin_family = AF_INET;
   6.228 +	addr.sin_port = htons (data->port);
   6.229 +	g_debug ("request connection on port %d", data->port);
   6.230 +	if (connect(data->s,(struct sockaddr*) &addr, sizeof(addr)) == -1)
   6.231 +		g_warning ("Fail to connect to server");
   6.232 +
   6.233  	return TRUE;
   6.234 -}	
   6.235 +}
   6.236  
   6.237  void
   6.238  gmyth_stream_client_pause_stream (GMythStreamClient *self,
   6.239 -				                  guint stream_id)
   6.240 +									guint stream_id)
   6.241  {
   6.242  	GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
   6.243 -	
   6.244 +
   6.245  	g_return_if_fail (priv->connected == TRUE);
   6.246 -    
   6.247 -    if (send (priv->sock, "PAUSE", 5, MSG_MORE) == -1) {
   6.248 -        return;
   6.249 -    }	
   6.250 +
   6.251 +	if (send (priv->sock, "PAUSE\n", 6, MSG_MORE) == -1) {
   6.252 +		return;
   6.253 +	}
   6.254  }
   6.255  
   6.256  void
   6.257 @@ -206,13 +236,27 @@
   6.258                      			  guint stream_id)
   6.259  {
   6.260  	GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
   6.261 -	
   6.262 +
   6.263  	g_return_if_fail (priv->connected == TRUE);
   6.264 -    
   6.265 -    if (send (priv->sock, "STOP", 4, MSG_MORE) == -1) {
   6.266 -        return;
   6.267 -    }
   6.268 -    
   6.269 -    //TODO: remove from streams list
   6.270 -        	
   6.271 +	if (send (priv->sock, "STOP\n", 5, MSG_MORE) == -1) {
   6.272 +		return;
   6.273 +	}
   6.274 +	//TODO: remove from streams list
   6.275  }
   6.276 +
   6.277 +static StreamData*
   6.278 +gmtyh_stream_client_get_streamdata (GMythStreamClient *self,
   6.279 +									guint stream_id)
   6.280 +{
   6.281 +	GMythStreamClientPrivate *priv = GMYTH_STREAM_CLIENT_GET_PRIVATE (self);
   6.282 +	GList *lst;
   6.283 +
   6.284 +	lst = priv->streams;
   6.285 +	for (; lst != NULL; lst = lst->next) {
   6.286 +		StreamData *data = (StreamData *) lst->data;
   6.287 +		if (data->id == stream_id) {
   6.288 +			return data;
   6.289 +		}
   6.290 +	}
   6.291 +	return NULL;
   6.292 +}