http://www.rpi.edu/~schneg/ops-v4.tar.gz
Made a bunch of additions:
-Download file works
-Upload file works (although to overwrite you have to click on the directory the file is in and have your file named like the one your overwriting. Overwriting by clicking on the file directly doesn't work because of a bug. WARNING: in general, make sure the program's behavior is consistent (possibly by overwriting a harmless movie file as practice) before writing over the files your camcorder needs to live. See disclaimer below
- double-clicking on a file in the tree-view gets its file size and file name
- delete file delete's a file
- uploading and downloading files now uses a
progress bar. Doing this requires threads (gthread-2.0 library to be exact) so keep that in mind if compiling for another platform. I believe MingW should still stupport this but I'll try to compile it later and find out myself.
In general everything now works mostly, just:
- 'download all movies' is neglected; just download each file separately
- 'upload movie' can be done through 'upload file'
- see above comment about uploading
Where BillW's ops outputs its log data to a box on screen, this version outputs to standard error in a text console (although since everything goes to Log() this could be changed easily by altering Log()'s behavior).
The source code is a mess mostly, and I might make an attempt to clean out all the useless comments and the temporary globals and etc. I assume the program is thread-safe since only one global variable is written to during the thread's operation.
The tree is basically a set of data which is a filename and a pointer to a block of file data. This block is malloc'ed and kept track of, but it isn't cleaned out in the end. However, any refreshing of the file tree frees up the memory so the only potential problem is at the end of the program.
DISCLAIMER: I don't take responsibility for anything you do with this program. Please be careful and triple check everything. I'll try to answer questions about error messages (log output isn't organized in the least) or bad experiences, but keep in mind that I'm going back to college in a few days so I might be too busy to respond.
It's GPL'd, just like the ops program I stole a bunch of its source code from. In the tarball is the source code + Makefile, and an i386 linux executable. I don't know if it'll compile with Macs. In general, it uses GTK+ 2.0 with glib threading (which I assume is implied with GTK 2.0) and libusb so any platform which supports both GTK and libusb should be able to compile the source code... maybe. Have fun :)
Thanks to everybody who contributed in some small way to my understanding of things... billw for writing ops, morcheeba for the usb protocol web pages and other firmware stuff, corscaria for writing SaturnDownload, zapped for the monitor experments, brite_eye for this web site, and everybody else I didn't mention!
A screenshot:
