------------------------------------------------------------------------
r476 | darwin | 2008-03-02 00:39:45 +0800 (Sun, 02 Mar 2008) | 2 lines

COPYING -> LICENSE, updated docs.

------------------------------------------------------------------------
r442 | darwin | 2008-02-09 21:31:05 +0800 (Sat, 09 Feb 2008) | 3 lines

* pymplayer/README:
Updated.

------------------------------------------------------------------------
r435 | darwin | 2008-02-09 17:59:11 +0800 (Sat, 09 Feb 2008) | 3 lines

* pymplayer/pymplayer.py:
MPlayer.command: reverted back to old behavior, added 'timeout' param.

------------------------------------------------------------------------
r434 | darwin | 2008-02-09 01:29:39 +0800 (Sat, 09 Feb 2008) | 3 lines

* pymplayer/pymplayer.py:
Module can now be run as a script (for testing/demo purposes)

------------------------------------------------------------------------
r433 | darwin | 2008-02-09 01:00:49 +0800 (Sat, 09 Feb 2008) | 4 lines

* pymplayer/pymplayer.py:
Removed useless call to _map.clear() in Server.__init__.
Cleaned up and fixed some comments.

------------------------------------------------------------------------
r432 | darwin | 2008-02-08 22:24:43 +0800 (Fri, 08 Feb 2008) | 3 lines

* pymplayer/pymplayer.py:
Separated 'cmd' from '*args' so that the minimum number of parameters is one.

------------------------------------------------------------------------
r431 | darwin | 2008-02-08 22:03:07 +0800 (Fri, 08 Feb 2008) | 3 lines

* pymplayer/pymplayer.py:
MPlayer.command now returns the output of a valid get_* command.

------------------------------------------------------------------------
r430 | darwin | 2008-02-08 21:40:46 +0800 (Fri, 08 Feb 2008) | 4 lines

* pymplayer/pymplayer.py:
Fixed bug introduced in r429:
_map.pop(file) doesn't work, just use _map.clear().

------------------------------------------------------------------------
r429 | darwin | 2008-02-08 21:37:29 +0800 (Fri, 08 Feb 2008) | 3 lines

* pymplayer/pymplayer.py:
Removed _readlines method and reverted back to old behavior.

------------------------------------------------------------------------
r428 | darwin | 2008-02-08 21:36:52 +0800 (Fri, 08 Feb 2008) | 4 lines

* pymplayer/examples/client.py
* pymplayer/examples/gtkclient.py:
Removed unused imports.

------------------------------------------------------------------------
r427 | darwin | 2008-02-08 09:44:06 +0800 (Fri, 08 Feb 2008) | 4 lines

* pymplayer/pymplayer.py:
Got some ideas from:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/542195

------------------------------------------------------------------------
r426 | darwin | 2008-02-08 09:20:01 +0800 (Fri, 08 Feb 2008) | 3 lines

* pymplayer/pymplayer.py:
Replaced 'executable' property with 'bin' class attribute.

------------------------------------------------------------------------
r422 | darwin | 2008-02-07 12:08:27 +0800 (Thu, 07 Feb 2008) | 3 lines

* pymplayer/pymplayer.py:
Added indentation back to docstrings

------------------------------------------------------------------------
r408 | darwin | 2008-02-03 19:39:10 +0800 (Sun, 03 Feb 2008) | 3 lines

* pymplayer/pymplayer.py:
Restructured code a little bit; bumped __version__ to 0.3.0

------------------------------------------------------------------------
r362 | darwin | 2008-01-24 19:03:06 +0800 (Thu, 24 Jan 2008) | 3 lines

* doc/pymplayer.html:
Added pydoc-generated documentation

------------------------------------------------------------------------
r361 | darwin | 2008-01-24 19:01:55 +0800 (Thu, 24 Jan 2008) | 3 lines

* setup.py:
Removed references to pymplayer and pymplayerd

------------------------------------------------------------------------
r360 | darwin | 2008-01-24 19:00:24 +0800 (Thu, 24 Jan 2008) | 5 lines

* README:
* COPYING:
* examples/COPYING:
Added files

------------------------------------------------------------------------
r359 | darwin | 2008-01-24 18:53:52 +0800 (Thu, 24 Jan 2008) | 2 lines

* examples/gtkclient.py: Added GPL 3 license clause

------------------------------------------------------------------------
r358 | darwin | 2008-01-24 18:20:19 +0800 (Thu, 24 Jan 2008) | 2 lines

Updated path to Glade file (client.glade -> gtkclient.glade)

------------------------------------------------------------------------
r357 | darwin | 2008-01-24 18:19:17 +0800 (Thu, 24 Jan 2008) | 2 lines

Moved Python programs to examples/

------------------------------------------------------------------------
r348 | darwin | 2008-01-18 19:57:18 +0800 (Fri, 18 Jan 2008) | 3 lines

* Added connect/disconnect and refresh buttons to gtkclient
* Default state now is disconnected

------------------------------------------------------------------------
r347 | darwin | 2008-01-18 19:52:02 +0800 (Fri, 18 Jan 2008) | 3 lines

* Increased the _ClientHandler -> Client connection buffer size to 512
* Some refactoring and docstrings/comments improvement

------------------------------------------------------------------------
r346 | darwin | 2008-01-14 19:31:05 +0800 (Mon, 14 Jan 2008) | 2 lines

Moved the 'pause' command checking from pymplayer to ma3x.mplayer

------------------------------------------------------------------------
r344 | darwin | 2008-01-13 22:54:56 +0800 (Sun, 13 Jan 2008) | 2 lines

Show paused/unpaused status in 'Now playing: ' label

------------------------------------------------------------------------
r343 | darwin | 2008-01-13 22:42:11 +0800 (Sun, 13 Jan 2008) | 2 lines

Bugfix: r341 didn't fix the pause/unpause bug; this commit will.

------------------------------------------------------------------------
r342 | darwin | 2008-01-13 22:04:36 +0800 (Sun, 13 Jan 2008) | 2 lines

client.glade: made default window width wider

------------------------------------------------------------------------
r341 | darwin | 2008-01-13 22:03:44 +0800 (Sun, 13 Jan 2008) | 3 lines

Bugfix: accept only the 'pause' command when paused,
if not paused, accept all commands.

------------------------------------------------------------------------
r340 | darwin | 2008-01-13 19:51:53 +0800 (Sun, 13 Jan 2008) | 2 lines

Moved gtkclient.py and client.glade out of gtk/

------------------------------------------------------------------------
r339 | darwin | 2008-01-13 19:48:18 +0800 (Sun, 13 Jan 2008) | 2 lines

Added PyGTK front-end for Client

------------------------------------------------------------------------
r337 | darwin | 2008-01-13 19:42:14 +0800 (Sun, 13 Jan 2008) | 2 lines

Added support for bi-directional "chat" between Client and Server

------------------------------------------------------------------------
r331 | darwin | 2008-01-13 12:26:42 +0800 (Sun, 13 Jan 2008) | 2 lines

Improved/fixed more docstrings

------------------------------------------------------------------------
r330 | darwin | 2008-01-13 11:56:40 +0800 (Sun, 13 Jan 2008) | 3 lines

* Modified module description
* Bumped __version__ to 0.2.0

------------------------------------------------------------------------
r329 | darwin | 2008-01-13 11:50:51 +0800 (Sun, 13 Jan 2008) | 2 lines

Added more classifiers

------------------------------------------------------------------------
r328 | darwin | 2008-01-13 11:50:04 +0800 (Sun, 13 Jan 2008) | 2 lines

Fixed/improved more docstrings

------------------------------------------------------------------------
r327 | darwin | 2008-01-13 03:49:53 +0800 (Sun, 13 Jan 2008) | 2 lines

Don't use dict.keys()

------------------------------------------------------------------------
r322 | darwin | 2008-01-13 00:14:22 +0800 (Sun, 13 Jan 2008) | 2 lines

Removed support for string args as it proved to be buggy

------------------------------------------------------------------------
r321 | darwin | 2008-01-12 23:00:05 +0800 (Sat, 12 Jan 2008) | 5 lines

* Removed setup_handlers method
* Added create_handler and remove_handler methods. These methods
  should be overridden for integration with GUI toolkits, etc.
* Client now uses asyncore.socket_map, loop = asyncore.loop

------------------------------------------------------------------------
r320 | darwin | 2008-01-12 15:10:29 +0800 (Sat, 12 Jan 2008) | 2 lines

MPlayer: Added support for custom 'I/O watchers' like gobject.io_add_watch

------------------------------------------------------------------------
r317 | darwin | 2008-01-12 12:33:38 +0800 (Sat, 12 Jan 2008) | 2 lines

Removed debugging stuff committed in r316

------------------------------------------------------------------------
r316 | darwin | 2008-01-12 12:30:16 +0800 (Sat, 12 Jan 2008) | 3 lines

bugfix: Use the path property upon calling
the start method, not upon setting the args.

------------------------------------------------------------------------
r315 | darwin | 2008-01-12 12:03:03 +0800 (Sat, 12 Jan 2008) | 2 lines

MAX_CMD_LENGTH -> MAX_CMD_LEN

------------------------------------------------------------------------
r314 | darwin | 2008-01-12 12:02:22 +0800 (Sat, 12 Jan 2008) | 3 lines

* Added restart method to MPlayer
* Refactored the stop and command methods of MPlayer

------------------------------------------------------------------------
r313 | darwin | 2008-01-12 11:45:20 +0800 (Sat, 12 Jan 2008) | 2 lines

pymplayer: import os instead of os.path (according to os.path.__doc__)

------------------------------------------------------------------------
r312 | darwin | 2008-01-12 11:43:56 +0800 (Sat, 12 Jan 2008) | 2 lines

setup.py: Updated URL and added classifiers

------------------------------------------------------------------------
r309 | darwin | 2008-01-11 01:54:47 +0800 (Fri, 11 Jan 2008) | 2 lines

A few more little changes before tagging pymplayer-0.1.1

------------------------------------------------------------------------
r308 | darwin | 2008-01-11 01:05:54 +0800 (Fri, 11 Jan 2008) | 3 lines

pymplayer: check the connection by issuing a send()
(No more "Transport endpoint is not connected" errors)

------------------------------------------------------------------------
r307 | darwin | 2008-01-11 00:00:40 +0800 (Fri, 11 Jan 2008) | 2 lines

Removed __author__, __license__, __copyright__; placed info as comments (header)

------------------------------------------------------------------------
r305 | darwin | 2008-01-10 15:02:49 +0800 (Thu, 10 Jan 2008) | 2 lines

pymplayerd: Added signal handler for SIGTERM, backported to 0.1.0

------------------------------------------------------------------------
r303 | darwin | 2008-01-10 13:56:55 +0800 (Thu, 10 Jan 2008) | 2 lines

Updating licenses, preparing for 0.1.0 release

------------------------------------------------------------------------
r302 | darwin | 2008-01-10 13:51:26 +0800 (Thu, 10 Jan 2008) | 2 lines

Updating __copyright__ and a few other minor details

------------------------------------------------------------------------
r301 | darwin | 2008-01-10 12:59:36 +0800 (Thu, 10 Jan 2008) | 4 lines

Yet another rename:
pymp -> pymplayer
pympd -> pymplayerd

------------------------------------------------------------------------
r300 | darwin | 2008-01-10 12:34:28 +0800 (Thu, 10 Jan 2008) | 2 lines

Use a custom socket_map (pymplayer._socket_map) for all Client instances

------------------------------------------------------------------------
r299 | darwin | 2008-01-10 12:21:02 +0800 (Thu, 10 Jan 2008) | 4 lines

Refactored Client class:
* connect: Don't run asyncore.loop implicitly,
  accept host and port args.

------------------------------------------------------------------------
r298 | darwin | 2008-01-10 11:18:50 +0800 (Thu, 10 Jan 2008) | 2 lines

Refactoring: Just do object passing instead of overriding methods

------------------------------------------------------------------------
r293 | darwin | 2008-01-09 22:13:02 +0800 (Wed, 09 Jan 2008) | 7 lines

MPlayer:
* Added support for string args. e.g. '-loop 0 -quiet -fs'
* Set default args to '-slave -idle -quiet'
* _handle_data and _handle_error: only call the corresponding
  handle_* method if the data/error is not empty.
class rename: _Channel -> _ClientHandler

------------------------------------------------------------------------
r292 | darwin | 2008-01-09 22:02:59 +0800 (Wed, 09 Jan 2008) | 2 lines

pympd: Adapted to new Server API (forgot to do this)

------------------------------------------------------------------------
r291 | darwin | 2008-01-09 03:24:08 +0800 (Wed, 09 Jan 2008) | 2 lines

Bugfix: update the map with the new fds of MPlayer's stdout and stderr

------------------------------------------------------------------------
r288 | darwin | 2008-01-09 02:00:35 +0800 (Wed, 09 Jan 2008) | 8 lines

* Finally, MPlayer is now GObject-free! Yay! ;-)
  MPlayer now uses asyncore.loop (via poll_output method)
  for polling stdout and stderr
* Made some methods static (staticmethod)
* Server now exposes the MPlayer API and properties:
  that is, server.mplayer.command(cmd) -> server.command(cmd)
* Added/improved more docstrings

------------------------------------------------------------------------
r283 | darwin | 2008-01-08 16:21:42 +0800 (Tue, 08 Jan 2008) | 2 lines

Set svn:ignore: *.pyc, *~ to pymplayer dir

------------------------------------------------------------------------
r282 | darwin | 2008-01-08 16:06:11 +0800 (Tue, 08 Jan 2008) | 4 lines

Renamed:
client.py -> pymp
server.py -> pympd

------------------------------------------------------------------------
r281 | darwin | 2008-01-08 16:01:22 +0800 (Tue, 08 Jan 2008) | 2 lines

Adapted to new MPlayer API: run gobject.MainLoop in server.py

------------------------------------------------------------------------
r276 | darwin | 2008-01-07 13:06:07 +0800 (Mon, 07 Jan 2008) | 7 lines

* Added/improved more docstrings
* Increase MAX_CMD_LENGTH from 150 to 256
* Buffer sizes are now equal to MAX_CMD_LENGTH
* Removed MetaData class
* Minor cleanups
server.py: Change default port to 1025

------------------------------------------------------------------------
r271 | darwin | 2008-01-07 09:45:27 +0800 (Mon, 07 Jan 2008) | 7 lines

* Server is now a subclass solely of asyncore.dispatcher,
  an MPlayer instance is now a "property".
* Each Server instance now uses a separate socket_map
* Added log method for optional logging support
* Server.start is now blocking since asyncore.loop will run in the same thread
* Minor API changes and code cleanups

------------------------------------------------------------------------
r265 | darwin | 2008-01-05 23:36:27 +0800 (Sat, 05 Jan 2008) | 3 lines

* path is now a property()
* Added/improved docstrings

------------------------------------------------------------------------
r261 | darwin | 2008-01-05 20:15:27 +0800 (Sat, 05 Jan 2008) | 10 lines

pymplayer:
* stdout and stderr are now PIPEd and are "io watched"
* Added handle_data and handle_error methods (gobject-dependent)
* Renamed method isrunning -> isalive
* Removed embed_into method
* Updated setup.py
datascreen:
* Took advantage of the new MPlayer methods: handle_data and handle_error
* Adapted to API change

------------------------------------------------------------------------
r235 | darwin | 2008-01-03 23:30:27 +0800 (Thu, 03 Jan 2008) | 3 lines

* Added option for PIPE'ing stdout via pipe_stdout arg.
* Server.start(): return retcode of MPlayer.start()

------------------------------------------------------------------------
r232 | darwin | 2008-01-03 22:02:33 +0800 (Thu, 03 Jan 2008) | 3 lines

* Updated Copyright years (2007-2008)
* Removed MPlayer locks (threading.Lock). IMO, this should be implemented at a higher level.

------------------------------------------------------------------------
r224 | darwin | 2008-01-03 16:25:24 +0800 (Thu, 03 Jan 2008) | 2 lines

Updating version to 20080103, getting ready to tag.

------------------------------------------------------------------------
r223 | darwin | 2008-01-03 16:21:55 +0800 (Thu, 03 Jan 2008) | 2 lines

Don't echo 'connected' upon client connection

------------------------------------------------------------------------
r222 | darwin | 2008-01-03 16:19:25 +0800 (Thu, 03 Jan 2008) | 2 lines

Changing license of pymplayer module from GPL 3 to LGPL 3

------------------------------------------------------------------------
r207 | darwin | 2007-12-19 01:34:42 +0800 (Wed, 19 Dec 2007) | 5 lines

* set svn:keywords "Id"
* refactored and cleaned up client.py
* added some checks to server.py
* moved re_cmd_quit checking to the Client class

------------------------------------------------------------------------
r202 | darwin | 2007-12-18 11:59:50 +0800 (Tue, 18 Dec 2007) | 2 lines

pymplayer.py: fixed MPlayer._get_args()

------------------------------------------------------------------------
r197 | darwin | 2007-12-17 01:07:45 +0800 (Mon, 17 Dec 2007) | 2 lines

added check for asyncore.loop()

------------------------------------------------------------------------
r194 | darwin | 2007-12-16 14:26:57 +0800 (Sun, 16 Dec 2007) | 3 lines

* API cleanup (breaks backward compatibility)
* now using asyncore and asynchat instead of socket

------------------------------------------------------------------------
r149 | darwin | 2007-11-14 17:20:32 +0800 (Wed, 14 Nov 2007) | 2 lines

Bumped pymplayer version to 20071114

------------------------------------------------------------------------
r131 | darwin | 2007-11-08 00:47:49 +0800 (Thu, 08 Nov 2007) | 2 lines

* Moved the quit_cmd regex to pymplayer.py

------------------------------------------------------------------------
r114 | darwin | 2007-09-20 16:30:09 +0800 (Thu, 20 Sep 2007) | 4 lines

client.py:
* using a key-to-command mapping (command_map)
  instead of a very long if-elif-else block

------------------------------------------------------------------------
r101 | darwin | 2007-09-15 15:09:22 +0800 (Sat, 15 Sep 2007) | 1 line

pymplayer: bump version to 20070915
------------------------------------------------------------------------
r96 | darwin | 2007-09-14 00:00:22 +0800 (Fri, 14 Sep 2007) | 1 line

Correcting svn:keywords
------------------------------------------------------------------------
r95 | darwin | 2007-09-13 23:56:41 +0800 (Thu, 13 Sep 2007) | 1 line

svn propset (for version bookkeeping)
------------------------------------------------------------------------
r94 | darwin | 2007-09-13 23:43:26 +0800 (Thu, 13 Sep 2007) | 1 line

Trying out svn:keywords. Thanks to Marte Soliza (aka myrtactle)
------------------------------------------------------------------------
r70 | darwin | 2007-09-02 17:39:16 +0800 (Sun, 02 Sep 2007) | 1 line

bug fix: unhandled EOFError when trying to unpickle data
------------------------------------------------------------------------
r69 | darwin | 2007-09-02 17:29:34 +0800 (Sun, 02 Sep 2007) | 1 line

client.py: fixed screwed up curses UI
------------------------------------------------------------------------
r65 | darwin | 2007-09-01 15:57:26 +0800 (Sat, 01 Sep 2007) | 1 line

Reverted pymplayer.py back to r63, cleaned up some codes
------------------------------------------------------------------------
r64 | darwin | 2007-09-01 15:43:09 +0800 (Sat, 01 Sep 2007) | 1 line

Fixing bugs in client.py
------------------------------------------------------------------------
r62 | darwin | 2007-08-30 23:27:29 +0800 (Thu, 30 Aug 2007) | 1 line

Renamed mplayer-scripts to pymplayer
------------------------------------------------------------------------
r51 | darwin | 2007-08-25 16:55:12 +0800 (Sat, 25 Aug 2007) | 11 lines

pymplayer.py:
* added timeout for MPlayerServer for a more graceful termination
* more code cleanups

client.py
* changed indentation to 4 spaces
* code cleanups

setup.py:
* modified description

------------------------------------------------------------------------
r49 | darwin | 2007-08-24 22:19:20 +0800 (Fri, 24 Aug 2007) | 12 lines

pymplayer.py:
* totally removed MPlayerControl class
* improved MPlayer class
* moved ClientThread class from server.py
 - added client connection timeout check
* added MPlayerServer class based on server.py
* bug fixes, code cleanups, and tons of other improvements

server.py:
* moved all code to pymplayer.py
* uses MPlayerServer to serve client.py

------------------------------------------------------------------------
r48 | darwin | 2007-08-24 22:10:50 +0800 (Fri, 24 Aug 2007) | 3 lines

client.py:
* added option to change server port

------------------------------------------------------------------------
r42 | darwin | 2007-08-22 18:30:31 +0800 (Wed, 22 Aug 2007) | 10 lines

mplayer-scripts:
* code cleanups (PEP 8)
* merged base.py and control.py into pymplayer.py

client.py:
* improved CLI

server.py:
* added CLI

------------------------------------------------------------------------
r40 | darwin | 2007-08-21 13:11:11 +0800 (Tue, 21 Aug 2007) | 4 lines

client.py:
* added no curses option
* bumped version to 0.6.1

------------------------------------------------------------------------
r33 | darwin | 2007-08-18 16:09:45 +0800 (Sat, 18 Aug 2007) | 14 lines

pymplayer/base.py:
* added GPL3 notice
* bumped version to 0.2.0

server.py:
* added GPL3 notice
* bumped version to 0.6.0

client.py:
* added GPL3 notice
* bumped version to 0.6.0

* Added setup.py (for installation)

------------------------------------------------------------------------
r26 | darwin | 2007-08-10 14:23:59 +0800 (Fri, 10 Aug 2007) | 3 lines

client.py:
* Added OSD command key

------------------------------------------------------------------------
r23 | darwin | 2007-08-08 22:53:47 +0800 (Wed, 08 Aug 2007) | 4 lines

pymplayer/base.py:
* Bumped version to 0.1.6
* Don't pipe stdout and stderr in MPlayer subprocess

------------------------------------------------------------------------
r22 | darwin | 2007-08-08 21:58:31 +0800 (Wed, 08 Aug 2007) | 10 lines

server.py:
* Bumped to version 0.5.4
* Print the errors to stderr instead of printing to stdout

client.py:
* Bumped to version 0.5.0
* Print the errors to stderr instead of printing to stdout
* Added CLI (via optparse)
* Added non-interactive mode via '-c' or '--command' option

------------------------------------------------------------------------
r18 | darwin | 2007-08-08 00:32:08 +0800 (Wed, 08 Aug 2007) | 3 lines

* Putting the right file versions
* Tagging mplayer-scripts-20070808

------------------------------------------------------------------------
r12 | darwin | 2007-08-06 14:49:25 +0800 (Mon, 06 Aug 2007) | 1 line

Moving files to mplayer-scripts
------------------------------------------------------------------------
