Program TODO list in plain text format:
	=====================================
	 Sub Studio SAMI "What To DO" list.
	=====================================
	$Id: todo.html,v 1.2 2001/09/05 16:25:20 antonz Exp $

==============================================================================
NOTE: This file can contain technical information hard to understand
by most of users. Beware! ;-)
==============================================================================

==============================================================================
>>>	Features that must be done in 1.0.0 release (End of July 2001):
----------------------------------------------------------------------------
TODO ID	|	Text
----------------------------------------------------------------------------
#0.1[~95%]	Users registration support.
#0.2[~90%]	SAMI format open & save.
#0.3[----]	Import of:
    [ 95%]	MicroDVD format,
    [ 95%]	*.SRT (SubRIP) format.
#0.4[----]	Export of:
    [ 95%]	MicroDVD format,
    [ 95%]	*.SRT (SubRIP) format.
#0.5[ 90%]	Media Player:
    [ 99%]	Stop, play, pause, rewind.
    [ 99%]	Display: current time, current frame.
#0.6[----]	Subtitle Bar:
    [ 90%]	Display SYNCs, select SYNCs. select multiple SYNCs.
    [ 90%]	Delete selected SYNC(s).
    [ 50%]	Split selected SYNC.
    [  0%]	Join SYNCs.
#0.7[----]	Selected SYNC Bar:
    [ 80%]	Edit text.
    [ 90%]	Process Non-breaking space "nbsp", "lt" "gt" and others (only popular) entities.
    [ 80%]	Process "BR" tag.
    [ 70%]	Switching of styles. [Maybe in 1.1 release???].
#0.8[----]	SAMI file options:
    [100%]	TITLE.
    [ 90%]	Statistics.
    [ 99%]	Generator information.
    [  0%]	Author.
    [  0%]	Other (???).
#0.9[----]	Misc:

==============================================================================
>>>	Features planned for implementation in upcoming 1.x.x releases 
	(v1.1 estimated ~ at End of August 2001 -- Begin of September 2001).
----------------------------------------------------------------------------
TODO ID	|	Text
----------------------------------------------------------------------------
#1.01	Import/Export of many others subtitle formats 
	(SSA, SubViewer [*.SUB], other...).
#1.02	More editable "SamiParam"s to support: Copyright, Description etc.
#1.03	Editing of multiple CSS style blocks. Support of special
	CSS blocks: Multi-Language, SourceID, "#Block"s.
#1.04	SAMI 'file layer' services:
	* Save/load/import/export selected region.
	* Save/load/import/export selected language SYNCs.
	* Join of current SAMI file with other SAMi file or another
	  format file.
	* Overlay other SAMI file or another format file on top
	  of current (maybe as option to previous feature or load/import
	  feature.
#1.05	SAMI 'SYNC layer' services:
	* Support Bold, Italic and other "in-line" features.
#1.06	More fast SAMI parser (for example: minimize use of classes
	and AnsiString's in parser, do all tasks with static char arrays).
#1.07	Make tags parsing mechanism more errors recoverable.
	If found invalid or not supported tag then warning and prompt for
	continue then skip all text until closing tag.
#1.08	Move long-time CPU consuming operations (save, load, import,
	export, parse) to own Thread so User Interface will not be locked
	by this operations.
#1.09	Add multilanguage UI support (resources or ini-like files).
#1.10	Implement MRU (Most recent used) list in file menu.
#1.11	Store windows position and state (maximized/minimized) in
	Registry.
#1.12	Video stream centering and zooming.
#1.13	Dumping log to file by "Dump" button in log window or on exit.
#1.14	Full support of SAMI standard: "SAMIParam"s in Microsoft
	style ("ParamName {Param1:Value1; Param2:Value2}"). 
	(Already partially done).
	H1-H6 and other HTML tags, "ShowImg" & "SpanID" tags.
#1.15	[DONE] Keyboard shortcuts to all operations: select sync, set sync time,
	video play/pause/stop/frame back/frame fwd operations.
#1.16	Undo/Redo system.
#1.17	Edit menu and Cut/Copy/Paste for Sync's or maybe for text only???
#1.18	Draw selection bar while selecting and dragging cursor 
	(not only after end of selection).
#1.19	Display useful information in Hint of Timeline:
	Start + End time while selecting, current sync number and start
	time while cursor over "Working Area" timeline... and other.
#1.20	WYSIWYG preview of subtitles while playing video (Maybe through
	WMP interfaces).
#1.21	TRegistryWrapper for easy work with registry (with default
	values for not existent params and without this damn
	Registry exceptions).
#1.22	Do backup of old file on save/export and delete this
	backup file after successful operation.
#1.23	Do write (or maybe even read) locking on working file
	to prevent conflict situations caused by two programs working on
	same file simultaneously on one machine or through network.
#1.24	Implement "Repaint" procedure on MediaPanel while Media is paused
	so frame content will not be cleared by overlaying windows etc...
#1.25	Indicator of MediaPlayer status (possible as small PaintBox
	with media icons on Media ToolBar.
#1.26	"Select Sync at current position" button, Ctrl-Enter shortcut.
#1.27	Small example video (~50-100Kb, low-bitrate, low-quality, MPEG4v2)
	with ~30 sec. length and very small multilanguage/multistyle
	SAMI example.
#1.28	"Select All" feature by Double-Clicking on "Total Timeline".
#1.29	Move "Slack time" option to Registry
	(currently stored in each file in SamiParam's section).
#1.30	Full support of MicroDVD standard: "unclosed ending frame",
	"control codes", and "default values".
	(I must read help of MicroDVD player for details).
#1.31	Support SAMIParam's in another (third) format:
	"variable=value".

==============================================================================
>>>	Features planned for implementation in far future 
	2.x.x releases (End of 2001 year -- Begin of 2002 year).
----------------------------------------------------------------------------
TODO ID	|	Text
----------------------------------------------------------------------------
#2.01	Embedding subtitles to video stream.
#2.02	MDI (Multi Document Interface) UI. ???
#2.03	OCR Scan of subtitles from video stream (most brain-consuming
	task to implement).
#2.04	Develop extensions to SAMI format (compatible with standard 
	format) that allows placing many SYNCs in any position on frame
	independent one from other (maybe group them to so-called layers).
	Lets call this format RichSAMI.
	Or use SMIL W3C standard format for this purposes.
#2.05	[Maybe as separate project]. Tool to remove subtitles
	from video streams.
#2.06	[As separate project]. Freeware SAMI, SMIL & RichSAMI renderer
	implemented as DirectShow filter. So rendering subtitles
	will be independent from player.
#2.07	Switch to parsing SAMI files by IE (through COM interfaces?)
	or other standard library (maybe DOM standard also help?).
#2.08	Move to MFC library and VisualC++. ???
#2.09	Do all operations with video using multimedia API
	or DirectShow API (currently standard TMediaPlayer component used).

==============================================================================
	The End.
==============================================================================


Last Changed: $Date: 2001/09/05 16:25:20 $