From: <ju...@us...> - 2008-05-16 19:58:26
|
Revision: 3079 http://urakawa.svn.sourceforge.net/urakawa/?rev=3079&view=rev Author: julienq Date: 2008-05-16 12:58:23 -0700 (Fri, 16 May 2008) Log Message: ----------- Fixed bug 1965539 stopping recording after pausing it crash Modified Paths: -------------- trunk/urakawa/application/Obi/Obi/Dialogs/EditRoles.Designer.cs trunk/urakawa/application/Obi/Obi/ProjectView/ProjectView.cs trunk/urakawa/application/Obi/Obi/ProjectView/TransportBar.cs Modified: trunk/urakawa/application/Obi/Obi/Dialogs/EditRoles.Designer.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/Dialogs/EditRoles.Designer.cs 2008-05-16 19:02:00 UTC (rev 3078) +++ trunk/urakawa/application/Obi/Obi/Dialogs/EditRoles.Designer.cs 2008-05-16 19:58:23 UTC (rev 3079) @@ -39,25 +39,32 @@ // // mCustomRolesList // + this.mCustomRolesList.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.mCustomRolesList.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.mCustomRolesList.FormattingEnabled = true; - this.mCustomRolesList.Location = new System.Drawing.Point(6, 50); + this.mCustomRolesList.Location = new System.Drawing.Point(12, 52); this.mCustomRolesList.Name = "mCustomRolesList"; - this.mCustomRolesList.Size = new System.Drawing.Size(179, 108); + this.mCustomRolesList.Size = new System.Drawing.Size(287, 132); this.mCustomRolesList.TabIndex = 2; this.mCustomRolesList.KeyUp += new System.Windows.Forms.KeyEventHandler(this.mCustomRolesList_KeyUp); // // mNewCustomRole // - this.mNewCustomRole.Location = new System.Drawing.Point(6, 20); + this.mNewCustomRole.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.mNewCustomRole.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.mNewCustomRole.Location = new System.Drawing.Point(12, 25); this.mNewCustomRole.Name = "mNewCustomRole"; - this.mNewCustomRole.Size = new System.Drawing.Size(179, 20); + this.mNewCustomRole.Size = new System.Drawing.Size(287, 20); this.mNewCustomRole.TabIndex = 0; this.mNewCustomRole.KeyUp += new System.Windows.Forms.KeyEventHandler(this.mNewCustomRole_KeyUp); // // mInstructions // this.mInstructions.AutoSize = true; - this.mInstructions.Location = new System.Drawing.Point(3, 4); + this.mInstructions.Location = new System.Drawing.Point(12, 9); this.mInstructions.Name = "mInstructions"; this.mInstructions.Size = new System.Drawing.Size(187, 13); this.mInstructions.TabIndex = 3; @@ -65,8 +72,10 @@ // // mOk // + this.mOk.Anchor = System.Windows.Forms.AnchorStyles.Bottom; this.mOk.DialogResult = System.Windows.Forms.DialogResult.OK; - this.mOk.Location = new System.Drawing.Point(11, 164); + this.mOk.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.mOk.Location = new System.Drawing.Point(118, 220); this.mOk.Name = "mOk"; this.mOk.Size = new System.Drawing.Size(75, 23); this.mOk.TabIndex = 4; @@ -76,8 +85,10 @@ // // mCancel // + this.mCancel.Anchor = System.Windows.Forms.AnchorStyles.Bottom; this.mCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.mCancel.Location = new System.Drawing.Point(105, 164); + this.mCancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.mCancel.Location = new System.Drawing.Point(199, 220); this.mCancel.Name = "mCancel"; this.mCancel.Size = new System.Drawing.Size(75, 23); this.mCancel.TabIndex = 5; @@ -87,7 +98,9 @@ // // mAdd // - this.mAdd.Location = new System.Drawing.Point(205, 20); + this.mAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.mAdd.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.mAdd.Location = new System.Drawing.Point(305, 22); this.mAdd.Name = "mAdd"; this.mAdd.Size = new System.Drawing.Size(75, 23); this.mAdd.TabIndex = 1; @@ -97,7 +110,9 @@ // // mRemove // - this.mRemove.Location = new System.Drawing.Point(205, 50); + this.mRemove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.mRemove.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.mRemove.Location = new System.Drawing.Point(305, 51); this.mRemove.Name = "mRemove"; this.mRemove.Size = new System.Drawing.Size(75, 23); this.mRemove.TabIndex = 3; @@ -109,7 +124,7 @@ // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(293, 189); + this.ClientSize = new System.Drawing.Size(392, 255); this.Controls.Add(this.mRemove); this.Controls.Add(this.mAdd); this.Controls.Add(this.mCancel); Modified: trunk/urakawa/application/Obi/Obi/ProjectView/ProjectView.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/ProjectView/ProjectView.cs 2008-05-16 19:02:00 UTC (rev 3078) +++ trunk/urakawa/application/Obi/Obi/ProjectView/ProjectView.cs 2008-05-16 19:58:23 UTC (rev 3079) @@ -1369,9 +1369,7 @@ { if (mSelection != null && mSelection.Control != mStripsView) { - NodeSelection s = mSelection; - s.Control = mStripsView; - Selection = s; + Selection = new NodeSelection(mSelection.Node, mStripsView); } } Modified: trunk/urakawa/application/Obi/Obi/ProjectView/TransportBar.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/ProjectView/TransportBar.cs 2008-05-16 19:02:00 UTC (rev 3078) +++ trunk/urakawa/application/Obi/Obi/ProjectView/TransportBar.cs 2008-05-16 19:58:23 UTC (rev 3079) @@ -735,7 +735,7 @@ else { // Stopping again deselects everything - if (mCurrentPlaylist.State == Obi.Audio.AudioPlayerState.Stopped) + if (mState == State.Stopped) { mView.Selection = null; } @@ -858,8 +858,10 @@ } else { - command.append(new Commands.Node.AddNode(mView, phrase, mRecordingSection, - mRecordingInitPhraseIndex + e.PhraseIndex)); + Commands.Node.AddNode add = new Commands.Node.AddNode(mView, phrase, mRecordingSection, + mRecordingInitPhraseIndex + e.PhraseIndex); + add.UpdateSelection = false; + command.append(add); if (emptyNode != null) { phrase.CopyKind(emptyNode); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ju...@us...> - 2008-05-16 21:42:07
|
Revision: 3083 http://urakawa.svn.sourceforge.net/urakawa/?rev=3083&view=rev Author: julienq Date: 2008-05-16 14:42:04 -0700 (Fri, 16 May 2008) Log Message: ----------- Updated inline documentation Modified Paths: -------------- trunk/urakawa/application/Obi/Obi/help_en.html Added Paths: ----------- trunk/urakawa/application/Obi/Obi/help.css trunk/urakawa/application/Obi/Obi/images/obi_create_new_project.jpg trunk/urakawa/application/Obi/Obi/images/obi_meta_editor_small.jpg trunk/urakawa/application/Obi/Obi/images/obi_phrase_and_cursor.jpg trunk/urakawa/application/Obi/Obi/images/obi_prefs_audio.jpg trunk/urakawa/application/Obi/Obi/images/obi_prefs_project.jpg trunk/urakawa/application/Obi/Obi/images/obi_prefs_user_profile.jpg trunk/urakawa/application/Obi/Obi/images/obi_set_pagenumber_dialog.jpg trunk/urakawa/application/Obi/Obi/images/obi_tbar_pre_rec.jpg trunk/urakawa/application/Obi/Obi/images/obi_toc_view.jpg Removed Paths: ------------- trunk/urakawa/application/Obi/Obi/images/manual_audioblockeditoptions.png trunk/urakawa/application/Obi/Obi/images/manual_heading.png trunk/urakawa/application/Obi/Obi/images/manual_importaudio.png trunk/urakawa/application/Obi/Obi/images/manual_mainwindow.png trunk/urakawa/application/Obi/Obi/images/manual_metadata.png trunk/urakawa/application/Obi/Obi/images/manual_newproject.png trunk/urakawa/application/Obi/Obi/images/manual_phrasedetection.png trunk/urakawa/application/Obi/Obi/images/manual_preferences_audio.png trunk/urakawa/application/Obi/Obi/images/manual_preferences_project.png trunk/urakawa/application/Obi/Obi/images/manual_record.png trunk/urakawa/application/Obi/Obi/images/manual_splitdialog.png trunk/urakawa/application/Obi/Obi/images/manual_stripeditoptions.png trunk/urakawa/application/Obi/Obi/images/manual_toceditoptions.png trunk/urakawa/application/Obi/Obi/images/manual_userprofile.png Added: trunk/urakawa/application/Obi/Obi/help.css =================================================================== --- trunk/urakawa/application/Obi/Obi/help.css (rev 0) +++ trunk/urakawa/application/Obi/Obi/help.css 2008-05-16 21:42:04 UTC (rev 3083) @@ -0,0 +1,2 @@ +body { background-color: white; color: black; } +img { border: 0 } Modified: trunk/urakawa/application/Obi/Obi/help_en.html =================================================================== --- trunk/urakawa/application/Obi/Obi/help_en.html 2008-05-16 20:51:17 UTC (rev 3082) +++ trunk/urakawa/application/Obi/Obi/help_en.html 2008-05-16 21:42:04 UTC (rev 3083) @@ -1,899 +1,1692 @@ -<?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> - <title>Reference manual for Obi 1.0</title> - <style type="text/css"> - .todo { background-color: yellow; font-weight: bold } - </style> + <title>Obi: User manual</title> + <link rel="stylesheet" href="help.css"/> </head> - <body> - <div id="top"> - - <h1>Reference manual for Obi 1.0</h1> - </div> - <p> - <code>$Id: manual.html 2934 2008-03-08 16:01:59Z julienq $</code> - </p> - <div id="toc"> - <h2>Table of contents</h2> - - <ul> - <li> - <a href="#id18412">Views</a> - <ul> - <li> - <a href="#id18421">Strips view</a> - <ul> - <li> - - <a href="#id18435">Strips</a> - </li> - <li> - <a href="#id18468">Blocks</a> - </li> - <li> - <a href="#id18487">Different kinds of blocks</a> - - </li> - </ul> - </li> - <li> - <a href="#id18565">TOC view</a> - </li> - <li> - <a href="#id18589">Metadata view</a> - - </li> - <li> - <a href="#id18602">Transport bar and peak meter</a> - </li> - </ul> - </li> - <li> - <a href="#id18617">Selection</a> - - <ul> - <li> - <a href="#id18633">What is selectable?</a> - </li> - <li> - <a href="#id18706">Label editing</a> - </li> - </ul> - - </li> - <li> - <a href="#id18731">Transport bar and peak meter</a> - <ul> - <li> - <a href="#id18735">Transport bar buttons</a> - </li> - <li> - - <a href="#id18803">Unedited notes</a> - </li> - <li> - <a href="#id19032">Peak meter</a> - </li> - </ul> - </li> - <li> - - <a href="#id19038">Metadata editing</a> - </li> - <li> - <a href="#id19072">Menus</a> - <ul> - <li> - <a href="#id19080">File menu (<code>Alt+F</code>)</a> - - </li> - <li> - <a href="#id19301">Edit menu (<code>Alt+E</code>)</a> - </li> - <li> - <a href="#id19602">View menu (<code>Alt+V</code>)</a> - - </li> - <li> - <a href="#id19752">TOC menu (<code>Alt+C</code>)</a> - </li> - <li> - <a href="#id19858">Strips menu (<code>Alt+S</code>)</a> - - </li> - <li> - <a href="#id19964">Blocks menu (<code>Alt+B</code>)</a> - </li> - <li> - <a href="#id20077">Transport menu (<code>Alt+R</code>)</a> - - </li> - <li> - <a href="#id20159">Tools menu</a> - </li> - <li> - <a href="#id20162">Help menu</a> - </li> - </ul> - - </li> - </ul> - </div> - <p>This is a reference manual for Obi, and for the moment a placeholder for the -final documentation. If you are a user and not a developer, you can ignore the -<span class="todo">TODO</span> items below. This manual describes version 1.0 Alpha at the moment and -may still be incomplete.</p> - <h2 id="id18412">Views</h2> - <p>The work area of Obi is composed of several views, as described below. All -views (except for the strips view) can be shown or hidden as necessary.</p> - - <h3 id="id18421">Strips view</h3> - <p>The main view is the <em>strips view</em>. This is the view in which the contents of -the book are edited. There is a strip for every section in the book and they -appear in book order in the strips view. Inside each strip the actual contents -appear as blocks.</p> - <h4 id="id18435">Strips</h4> - <p>A <em>strip</em> represents a section and its contents. Subsections are represented as -other strips that follow in the strip view. Contents are represented as blocks -which are shown in book order inside the strip. A strip fills the entire width -of the strips view and has two parts:</p> - - <ol> - <li> - <p>an editable label showing the title of the section;</p> - </li> - <li> - <p>a sequence of zero or more blocks.</p> - </li> - </ol> - - <p><span class="todo">TODO</span>: fix the strip width.</p> - <h4 id="id18468">Blocks</h4> - <p>A <em>block</em> is used to represent an unit of content in the strips view. A block -can be empty or contain audio. The audio content of a block is called a -<em>phrase</em> as it allows for the reader to skip easily from phrase to phrase -when the book is exported to DAISY. Obi does not impose any limitations on -the amount of audio that a block may contain.</p> - <h4 id="id18487">Different kinds of blocks</h4> - - <ul> - <li> - <p><em>Empty blocks</em> are blocks that contain no audio. They can be used as -placeholders for adding audio at a later time. An empty block only contains -an information label.</p> - </li> - <li> - <p><em>Plain blocks</em> are blocks that contain audio. In addition to the information -label, the waveform of the audio is displayed.</p> - - </li> - <li> - <p><em>Page blocks</em> are blocks that represent a page number. The corresponding -phrase is usually a reading of the page number. An actual number is -associated with the block. Example: page number 42 in the book can be -represented by a page block bearing the number 42 and the phrase "page -42." In the exported DAISY book, a page block will be skippable.</p> - </li> - <li> - <p><em>Heading blocks</em> are used to mark the heading of a section. By default, this -is the first used block in the section, but any other can be chosen. There -can be at most one heading block per section. <span class="todo">TODO</span>: maintain this when -merging sections.</p> - - </li> - <li> - <p><em>Silence blocks</em> are used for phrase detection; see below.</p> - </li> - <li> - <p><em>Custom blocks</em> are blocks that have some additional property in the current -book (such as producer notes, side bars, etc.) These can be defined by the -producer of the book as needed. In the exported DAISY book, custom blocks -will be skippable.</p> - - </li> - </ul> - <p><strong>Note:</strong> future versions of Obi will have <em>container blocks</em> that can hold -other blocks to create escapable structures, such as lists or audio tables, -but they are not included in the current release of Obi.</p> - <h3 id="id18565">TOC view</h3> - <p>The <em>table of contents view</em> (<em>TOC view</em> for short) shows the table of contents -of the book in a hierarchical way. Each entry in the table of contents is -called a <em>section</em>; this is a generic Obi term, and can be a book part, -chapter, section, subsection, etc. The level of each section is shown by its -indentation. As noted above, there is a corresponding strip for every section -in the TOC view.</p> - - <h3 id="id18589">Metadata view</h3> - <p>The <em>metadata view</em> shows the metadata of the book: information such as title, -narrator, date of publication, etc. Metadata entries can be edited in this -view.</p> - <h3 id="id18602">Transport bar and peak meter</h3> - <p>The <em>transport bar</em> is used for recording and playback of the book. It has -buttons such as play, record, or stop; a time display; and a textual peak -meter. In addition to the transport bar, an external peak meter can also be -shown alongside Obi's main window.</p> - - <h2 id="id18617">Selection</h2> - <p>All edits in Obi are based on the current selection. In the current version of -Obi, only a single selection can be made at once (future versions of Obi will -have multiple selection.)</p> - <p class="indent">In general, selection is performed by clicking (and possibly dragging) on the -object or area to select; keyboard users can navigate to the desired region -to select (see keyboard navigation below.)</p> - <h3 id="id18633">What is selectable?</h3> - <ul> - <li>In the strips view: -<ul><li>A strip is selectable.</li><li>The label of a strip is selectable. When selected, the label becomes -editable.</li><li>A position inside a strip is selectable. The position can be before the -first block, after the last block, or between two blocks.</li><li>A block inside a strip is selectable. To select a block, click on its label -or its outer edge.</li><li>The waveform in a block is selectable; either a position or a range of -audio. To select a position in the waveform, click once; to select a range, -click then drag, or press shift then click after a position or a range was -already selected. Finally, double-clicking will select all the audio from -the block.</li><li><span class="todo">TODO</span>: keyboard alternative.</li></ul></li> - - <li>In the TOC view: -<ul><li>A section is selectable.</li><li>The text label of a section is selectable. When selected, it becomes -editable.</li></ul></li> - <li>In the metadata view: -<ul><li>A metadata entry in the metadata view is selectable.</li><li>The text inside a metadata entry is selectable. When selected, it becomes -editable.</li></ul></li> - </ul> - <h3 id="id18706">Label editing</h3> - <p>The label of a strip or a section, and the value of a metadata entry (<span class="todo">TODO</span>) can -be directly edited by clicking them. When typing <code>Enter</code>, the new name is -committed; typing <code>Esc</code> cancels the edit. Strips also have an <code>OK</code> and <code>Cancel</code> - -button which achieve the same effects.</p> - <h2 id="id18731">Transport bar and peak meter</h2> - <h3 id="id18735">Transport bar buttons</h3> - <ul> - <li> - <p><strong>Play button</strong> (<code>Ctrl+Space</code>): this button gives Play All command while -starting playback from currently selected block in strip view or currently -selected node in tree view.</p> - - <ul> - <li>If there is no in phrase selection, (technically termed as audio -selection) this button starts playback from starting of selected block or -selected tree node.</li> - <li>If there is Audio selection and cursor has a position marked inside -phrase, this button starts playback from this cursor position.</li> - <li><span class="todo">TODO</span>: <code>Ctrl+Space</code> doesn't seem to work? And should play all; -<code>Ctrl+Shift+Space</code> to play selection (see menu)?</li> - - </ul> - </li> - <li> - <p><strong>Pause button</strong> (<code>Space</code>): pause both playback as well as recording (which -ever is active). Pause position and cursor position are synchronised with -each other so pause position also acts as cursor position for operations -like split and insert recording.</p> - </li> - <li> - - <p><strong>Stop button</strong>: stop playback or recording which ever is active.</p> - </li> - </ul> - <h3 id="id18803">Unedited notes</h3> - <p>This is a temporary write up for transport bar which should be copied to main manual. -The write up contains description about transportbar buttons and other transport bar functions which are to be invoked through drop down menus and keyboard shortcuts.</p> - <p class="indent">Description about buttons: -1. Play button. -This button gives Play All command while starting playback from currently selected block in strip view or currently selected node in tree view. -1.1. If there is no in phrase selection, ( technically termed as audio selection ) this button starts playback from starting of selected block or selected tree node. -1.2. If there is Audio selection and cursor has a position marked inside phrase, this button starts playback from this cursor position. -Keyboard shortcut: Control+Space.</p> - - <ol> - <li>Pause button:</li> - <li>It pauses both playback as well as recording ( which ever is active ). </li> - <li> - <p>Pause position and cursor position are synchronised with each other so pause position also acts as cursor position for operations like split and insert recording. -Keyboard shortcut: Space bar.</p> - </li> - <li> - - <p>Stop button:</p> - </li> - <li> - <p>It stops playback or recording which ever is active. -Keyboard shortcut: control + T </p> - </li> - <li> - <p>Rewind: It plays small dhunks of audio while jumping backward in time.</p> - - </li> - <li> - <p>Rewind continues across phrase boundaries.</p> - </li> - <li> - <p>FastForward button: -It plays small chunks of audio while jumping forward in time.</p> - </li> - <li> - - <p>FastForward continues across phrase boundaries.</p> - </li> - <li> - <p>Prev phrase, prev section, prev page buttons: -Currently these buttons work only while playback and move to prev phrase, prev section, prev page phrase nodes in playlist.</p> - </li> - <li> - <p>Next phrase, Next section, Next page buttons: -During playback: -These buttons move to next phrase, next section , next page phrase nodes in current playlist.</p> - - </li> - </ol> - <p>During recording: -These buttons become markup buttons i.e. -Next Phrase button create a new phrase on the fly. -Next section button creates a new section, creates a new phrase in this new section and continue recording in this new phrase. -The rules for creating new section is same as that of creating a new section in TOC view. -Next Page creates a new phrase and marks custom page class on this new phrase on the fly. The numbering of pages is automatic i.e. an increment of previous page number and "1" if there is no preceding phrase block.</p> - <ol> - <li> - <p>Custom class mark button: -While recording it is used for marking custom class on currently recording phrase on the fly. The default name used is "Custom". -It creats a new audio block and mark custom class on it. -These custom blocks can later on be reclassed. -In all other conditions, this button mark custom class on currently selected audio block.</p> - </li> - <li> - - <p>Fast play rate combobox: -This combobox increases playback rate above the normal playback rate for quick navigation / editting purpose and proof reading purpose. -It contains valuse upto 2.0 times which is twice the normal playback rate. -It works both on the fly with playback and also off the fly. -The strips view keyboard shortcuts for this combobox are:</p> - </li> - <li>F: Increses FastPlay rate by one combobox value.</li> - <li>S: decreases FastPlay rate by one combobox value.</li> - <li>D: moves back to normal playback rate.</li> - <li> - <p>E: Move back to normal playback rate with 1.5 seconds of rewind. This is helpfull in determining exact splitting position while playing at higher speeds.</p> - - </li> - <li> - <p>Record button: -Pressing this button first time starts listening and displays input values of microphone in graphical peak meter as well in text peak meter. Recording starts when this button is pressed second time. -However user can start direct recording and bypass listening state by pressing -Control + shift + R. -or selecting direct recording sub menu item for record menu item of transport drop down menu. -Recording can be done in normal mode or in append only mode. -User can check or uncheck Append only sub menu item from recording item of transport drop down menu. -10.1 In append only mode, recording is non distructive i.e. a new recording is appended to selected block or filled in a null audio block without inserting or overwriting existing recordings. -10.2. In normal mode recording works as follows:</p> - </li> - <li>If selected block do not contain any audio e.g. empty page blocks, recording fills audio inside these blocks.</li> - <li>If there is a single point in-phrase selection, recording splits the selected block at cursor position and inserts new blocks between two splitted blocks.</li> - <li>If there is a part of audio selected inside a phrase using in-phrase Selection Start and in-phrase Selection End commands then the selected block is split in three blocks and the middle one is replaced by newly recorded blocks.</li> - - </ol> - <p>Pausing recording: -Recording can be paused at any time using pause button. When recording is paused, user can use playback to verify recording. -Recording will resume by pressing record button again ( no listening stage will be there while resuming paused recording ).</p> - <p class="indent">Other transport bar functions operatable from drop down menus and keyboard shortcuts. -11. Preview playback: -It includes three functions. -1.1. Preview from current position: -provides 1.5 seconds of playback starting from current cursor position. -Strips View shortcut: V</p> - <p class="indent">1.2. Preview upto current position: -Provides playback of duration of 1.5 seconds starting from 1.5 seconds before current position so that playback ends at current position. -Strips view shortcut: X</p> - <p class="indent">1.3. Preview selected audio: -It provides playback of audio chumk lying between two audio mark points. -Strips view Shortcut: C</p> - <ol> - <li>Play selection: -It starts playback of currently selected blocks As Obi currently can select only one block at a time so in current senario it plays selected block in strips view or selected tree node in TOC view.</li> - - <li>If there is no in-phrase selection i.e. cursor is not active, playback starts from begining of phrase </li> - <li> - <p>if there is a in-phrase selection i.e. cursor is active, then playback starts from the cursor position. -Keyboard shortcut: Space bar. -This shortcut is same as pause. As it toggles between play selection and pause and also pauses play all command.</p> - </li> - <li> - <p>Time display: -Transport bar has a time display which displays both playback as well as recording time. -13.1. Playback time. -The display of playback time is configurable with an adjusant combobox. The available options are: -13.1.1. Elapsed: This displays elapsed selection time. -13.1.2. Elapsed (total): This displays elapsed time with respect to whole book. -13.1.3. Remaining: This displays remaining time for current selection. -13.1.4. Remaining (Total): This displays remaining time with respect to whole book.</p> - </li> - - </ol> - <p>13.2. Recording time: -This displays time of recording since it was started i.e. recording session time.</p> - <ol> - <li>Text Peak Meter: -This control displays numerical values for peak meter which can be captured by screenreader. -It has two textboxes for left and right channels. -Keyboard shortcuts: -Focus Left channel value: Alt+l -Focus right channel value: Alt+i -The value displayed is relative to the peak value of audio with upper range of 0 db.</li> - </ol> - <p>Whenever overload is reached, the "OL" tag appears before numerical value of that particular channel. -This tag remains in text display of respective channel till reset button on text meter is pressed. -Remark: reset button is not visible till overload is reached.</p> - <h3 id="id19032">Peak meter</h3> - - <p>The peak meter allows to monitor the input sound level (while recording) or -output level (while playing back), and especially shows when overload occurs. -Overload should be avoided while recording because the recorded audio is -clipped. When overload occurs, the red box above the channel while turn red -with a number indicating the number of occurrences. Users can modify their -audio settings (getting further away from the microphone or turning its volume -down) to reach an acceptable audio level. Clicking on a red overload box will -reset it.</p> - <h2 id="id19038">Metadata editing</h2> - <p>Metadata editing is done in the metadata view. For adding and deleting entries, -see the <code>Edit</code> menu below. There are two simple tasks that can be executed in -the metadata view:</p> - <ol> - <li> - <p>Editing the content of an entry. The content is treated as a simple text -string. <span class="todo">TODO</span>: some entries should check for validity of content, and allow -extra attributes. TODO: add some text for how this is changed.</p> - - </li> - <li> - <p>Changing the name of an entry. This can be done by selecting an existing -name from the combo box, or by typing a new name. Note that some names are not -available if an entry of this kind cannot be added, and if an entry cannot be -removed, it also cannot be renamed.</p> - </li> - </ol> - <h2 id="id19072">Menus</h2> - <p>This is a description of the main menubar in Obi.</p> - - <h3 id="id19080">File menu (<code>Alt+F</code>)</h3> - <p>Creating and opening projects:</p> - <ul> - <li> - <p><strong>New project</strong> (<code>Ctrl+N</code>): create a new project. If there is a project -currently open, Obi will attempt to close it first. A dialog is shown where -the user can enter a title for the project and choose a location for saving -it. <span class="todo">TODO</span>: add instructions in the dialog.</p> - - </li> - <li> - <p><strong>New project from import</strong> (<code>Ctrl+Shift+N</code>): create a new project by -importing an XHTML file containing the structure of the project. You will -have to choose a title (if different from the one given in the file) and -a location for saving the project.</p> - <ul> - <li><span class="todo">TODO</span>: better error handling (completely undo the import.)</li> - - <li><span class="todo">TODO</span>: the expected input format must be documented.</li> - </ul> - </li> - <li> - <p><strong>Open project</strong> (<code>Ctrl+O</code>): bring up a file chooser and select a project -to open. Obi projects are normally named with a <code>.obi</code> suffix, although Obi -normally saves project inside a directory along with another directory -containing audio data.</p> - - </li> - <li> - <p><strong>Close project</strong> (<code>Ctrl+W</code>): close the current project. If there are -unsaved changes, the user is given the choice to save or not, or cancel.</p> - </li> - </ul> - <p>Saving projects, cleaning and exporting:</p> - - <ul> - <li> - <p><strong>Save project</strong> (<code>Ctrl+S</code>): save the project and its data. The project is -saved under the location specified when the project was first created. Saving -is possible only when a change was made (as shown in the titlebar by an -asterisk * following the project title.)</p> - </li> - <li> - <p><strong>Save project as</strong> (<code>Ctrl+Shift+S</code>): save the project under a different -location and switch to the new copy. The original project is <strong>not</strong> saved. -It is always possible to save a project under a new location.</p> - - </li> - <li> - <p><strong>Clean unreferenced audio</strong> (<code>Ctrl+L</code>): clean unreferenced audio from the -project. Obi keeps unused audio data so that changes can be undone, but -sometime there is audio data in the project that is not referenced anywhere -(<em>i.e.</em>, there is no phrase with this audio data, nor any command in the -undo stack that concerns this data.) In order to save disk space, it is -possible to clean the project by removing all this data. It is recommended -to save right after cleaning the project, otherwise there may be problems -when reopening the project. Cleaning the project at the beginning of the -session makes sure that all of the data not referenced in the project itself -has been removed.</p> - </li> - <li> - - <p><strong>Export as DAISY</strong> (<code>Ctrl+E</code>): export the project to DAISY 3. The user can -choose a directory to export to. The directory should be new or empty; if it -contains files already (<em>e.g.</em>, from a previous export), those can be -deleted before export. A note about exporting: a section is exported if and -only if its corresponding strip has at least one used, non-empty block. If -a section has no such content, then it is not exported, and neither are its -subsections, even if <em>those</em> have content.</p> - <ul> - <li><span class="todo">TODO</span>: find a way to warn about sections that are not exported.</li> - - </ul> - </li> - </ul> - <p>Opening recent projects:</p> - <ul> - <li><strong>Recent project</strong>: a list of recently opened project allows the user -to choose between different recent projects. -<ul><li><strong>Clear list</strong>: clear the list of recent projects. This cannot be undone.</li></ul></li> - - </ul> - <p>Quitting Obi:</p> - <ul> - <li><strong>Exit</strong> (<code>Alt+F4</code>): quit Obi. If there is a project with unsaved changes -currently opened, changes can be saved before quitting, or quitting can be -cancelled. Quitting can also be achieved by closing the main Obi window.</li> - </ul> - <h3 id="id19301">Edit menu (<code>Alt+E</code>)</h3> - - <p>Obi stores all executed commands in an <em>undo stack</em> so that commands can be -undone later. All commands executed since the current project was loaded are -stored so an unlimited number of commands can be undone. Undone commands are -also stored in a <em>redo stack</em> so that an undone command can be redone. Whenever -a new command is executed, the redo stack is cleared.</p> - <ul> - <li> - <p><strong>Undo</strong> (<code>Ctrl+Z</code>): undo the last executed command.</p> - - <ul> - <li><span class="todo">TODO</span>: save the undo stack in the XUK file.</li> - </ul> - </li> - <li> - <p><strong>Redo</strong> (<code>Ctrl+Y</code>): redo the last undone command.</p> - - </li> - </ul> - <p>Obi maintains a clipboard that contains the last cut or copied item. Undoing a -cut or copy operation restores the previous value of the clipboard.</p> - <ul> - <li> - <p><strong>Cut</strong> (<code>Ctrl+X</code>): delete the selected item (strip, section, block or audio) -and place it in the clipboard. <span class="todo">TODO</span>: works for text as well, but only through -shortcut; not well integrated.</p> - - </li> - <li> - <p><strong>Copy</strong> (<code>Ctrl+C</code>): copy the selected item (strip, section, block or audio) -and place it in the clipboard. <span class="todo">TODO</span>: works for text as well, but only through -shortcut; not well integrated.</p> - </li> - <li> - - <p><strong>Paste</strong> (<code>Ctrl+V</code>): paste the item from the clipboard in or after the -selection.</p> - <ul> - <li>If the clipboard contains a section node, it can be pasted after the -selected section in the TOC view or the selected strip in the strip view.</li> - <li>If the clipboard contains a block, it can be pasted after the selected -block, at the end of the selected strip, or at the selection point inside -a strip. If the selection is a waveform cursor, then the audio of the block -is inserted at that point; if it is a waveform selection, then the audio -of the block is pasted in place of the selection.</li> - <li>If the clipboard contains audio, the audio can be pasted as a new block -in the selected strip or at the selected point inside a strip, or at the -end of the selected block. If the selection is a waveform cursor, then the -audio is inserted at that point; if it is a waveform selection, then the -audio is pasted in place of the selection.</li> - - <li>Note: metadata entries cannot be cut, copied or pasted. The text inside -entries (content) can be copied.</li> - <li><span class="todo">TODO</span>: text.</li> - </ul> - </li> - <li> - <p><strong>Paste before</strong> (<code>Ctrl+Alt+V</code>): when a section is selected and a section is -in the clipboard, paste the section from the clipbaord before the selected -section and at the same level.</p> - - </li> - <li> - <p><strong>Paste inside</strong> (<code>Ctrl+Shift+V</code>): when a section is selected and a section -is in the clipboard, paste the section from the clipboard as a subsection of -the selected section. The child is added last.</p> - </li> - <li> - <p><strong>Delete</strong> (<code>Del</code>): delete the selected item. If it is a section, then all -subsections are deleted as well. If it is a strip, then only this strip is -deleted. If the corresponding section has subsection, the first subsection -is moved to the level of the deleted section so that the consistency of the -TOC is preserved. If it is a metadata entry, it can only be deleted if the -deletion of the entry does not render the project invalid (for instance, the -project <em>must</em> have a <code>dc:Title</code> entry so the last one cannot be deleted.)</p> - - </li> - <li> - <p><strong>Select nothing</strong>: deselect any item that was selected.</p> - </li> - </ul> - <p>In addition to cleaning up unreferenced audio data, it is possible to also -clean up <em>unused</em> data from the project.</p> - - <ul> - <li><strong>Delete unused data</strong> (<code>Ctrl+Shift+L</code>): delete all sections and phrases -marked as being unused. This can be undone, just like any deletion in Obi.</li> - </ul> - <p>Athough Obi is an audio editing tool, a large project can still contain a non -trivial amount of text (section headings, metadata, annotations) so a search -function is provided.</p> - <ul> - <li> - - <p><strong>Find</strong> (<code>Ctrl+F</code>): bring the search bar in focus and let the user type some -text to find. The first item containing this text is selected (in the case -of section titles, the strip corresponding to the section is selected.)</p> - </li> - <li> - <p><strong>Find next</strong> (<code>F3</code>): find the next item. <span class="todo">TODO</span>: more details.</p> - - </li> - <li> - <p><strong>Find previous</strong> (<code>Shift+F3</code>): find the previous item. <span class="todo">TODO</span>: more details.</p> - </li> - </ul> - - <p>New metadata entries can be created through this menu.</p> - <ul> - <li><strong>Add metadata entry</strong> (no shortcut): this menu opens a submenu where the -user can choose which kind of entry they want to add. Only user-modifiable -entries, as well as entries that can be added at this point are shown. (For -example, if the project already has a <code>dtb:sourceTitle</code> entry, another such -entry cannot be added as it is not repeatable.) -<ul><li><span class="todo">TODO</span>: add a custom kind (like block roles.)</li><li><span class="todo">TODO</span>: delete custom kinds (like block roles.)</li><li><span class="todo">TODO</span>: focus on the entry so that content can be added (like sections.)</li></ul></li> - - </ul> - <h3 id="id19602">View menu (<code>Alt+V</code>)</h3> - <p>Various views can be shown or hidden. By default, all are shown, except for the -search bar which only appears when searching. Each menu item has a checkbox -that indicate the visibility of the corresponding view (checked meaning -visible.) <span class="todo">TODO</span>: all the shortcuts will change as they interfere with screen -readers.</p> - <ul> - <li> - <p><strong>Show TOC view</strong> (<code>Alt+Shift+T</code>): show or hide the TOC view.</p> - - </li> - <li> - <p><strong>Show metadata view</strong> (<code>Alt+Shift+M</code>): show or hide the metadata view.</p> - </li> - <li> - <p><strong>Show search bar</strong> (<code>Alt+Shift+S</code>): show or hide the search bar.</p> - - </li> - <li> - <p><strong>Show transport bar</strong> (<code>Alt+Shift+B</code>): show or hide the transport bar.</p> - </li> - <li> - <p><strong>Show status bar</strong> (<code>Alt+Shift+U</code>): show or hide the status bar.</p> - - </li> - </ul> - <p>For easy navigation, there are some shortcuts to move to the main views.</p> - <ul> - <li> - <p><strong>Focus on TOC view</strong> (<code>F6</code>): move the focus to the TOC view. If there was -a selection in the strips view, the corresponding section is selected. <span class="todo">TODO</span>: -there is a display bug so the section doesn't appear as being selected, but -it is.</p> - - </li> - <li> - <p><strong>Focus on Strips view</strong> (<code>F7</code>): move the focus to the strips view. If a -section is selected in the TOC view, its strip gets selected in the strips -view.</p> - </li> - <li> - <p><strong>Focus on Transport bar</strong> (<code>F8*</code>): not yet implemented (<span class="todo">TODO</span>).</p> - - </li> - </ul> - <p>Obi also has external views which open in different windows. Again, shortcuts -are subject to change.</p> - <ul> - <li> - <p><strong>Show peak meter</strong> (<code>Alt+Shift+P</code>): show or hide the peak meter view.</p> - - </li> - <li> - <p><strong>Show source view</strong> (<code>Alt+R</code>): show the source of the XUK file for this -project. This is mainly useful for debugging and may be removed from the -release version.</p> - </li> - </ul> - <h3 id="id19752">TOC menu (<code>Alt+C</code>)</h3> - - <p>The TOC menu provides operations on the table of contents.</p> - <ul> - <li> - <p><strong>Add section</strong> (<code>Ctrl+A</code>): add a new section after the selected section -and at the same level. If no section is selected, then add a new section at -the top level and at the end.</p> - </li> - <li> - - <p><strong>Ad sub-section</strong> (<code>Ctrl+Shift+A</code>): add a new section as the last child of -the selected section.</p> - </li> - <li> - <p><strong>Insert section</strong> (<code>Ctrl+Alt+A</code>): insert a new section before the selected -section and at the same level.</p> - - </li> - <li> - <p><strong>Rename section</strong> (<code>F2</code>): start editing the label of the section. The new -name cannot be empty. The change is committed when pressing <code>Return</code> or -cancelled when pressing <code>Esc</code>.</p> - </li> - - <li> - <p><strong>Move section in</strong> (<code>Ctrl+Shift+Left</code>): increase the level of the section -by one. The section becomes the first subsection of its previous sibling -section; as a consequence, the first subsection of a section cannot be -moved in. Only the section moves, not its subsections.</p> - </li> - <li> - <p><strong>Move section out</strong> (<code>Ctrl+Shift+Right</code>): decrease the level of the section -by one. Only sections without subsections can be moved out. Top-level -sections can obviously not be moved out.</p> - - </li> - <li> - <p><strong>Section is used</strong> (<code>Ctrl+K</code>): when a section is selected, the menu -item shows whether the section is used or not with a checkbox. The checkbox -is checked if the section is currently used. Selecting this item toggles the -used status of the section (from used to unused, and from unused to used.) -When the used status of the section changes, all subsections change to the -same status as well. The status of a section can only be changed if its -parent section is used (or if it is a top-level section), as there cannot -be used subsections of unused sections.</p> - </li> - </ul> - <h3 id="id19858">Strips menu (<code>Alt+S</code>)</h3> - - <ul> - <li> - <p><strong>Add strip</strong> (<code>Ctrl+A</code>): add a new strip after the selected strip. The -corresponding section will be at the same level as the section of the -selected strip. If the section of the selected strip had subsections, they -become subsections of the new section.</p> - </li> - <li> - <p><strong>Insert strip</strong> (<code>Ctrl+Alt+A</code>): insert a new strip before the selected -strip.</p> - - </li> - <li> - <p><strong>Rename strip</strong> (<code>F2</code>): start editing the label of the strip. The new name -cannot be empty. The change is committed when pressing <code>Return</code> or cancelled -when pressing <code>Esc</code>.</p> - </li> - - <li> - <p><strong>Split strip</strong> (<code>Ctrl+Shift+P</code>): split the strip at the selected position -in the strip, or from the selected block. The new strip has the same label -and level as the original strip, and all the blocks starting from the split -position. If the first block or position is selected, there is no effect.</p> - </li> - <li> - <p><strong>Merge strip with next</strong> (<code>Ctrl+Shift+M</code>): merge the selected strip with the -next one; that is, all the blocks in the following strip are appended to the -selected strip. The following strip is then removed from the project. If the -following strip has a lower level than the selected strip, merging is not -possible.</p> - - </li> - <li> - <p><strong>Strip is used</strong> (<code>Ctrl+K</code>): when a strip is selected, the menu -item shows whether the strip is used or not with a checkbox. The checkbox -is checked if the strip is currently used. Selecting this item toggles the -used status of the strip (from used to unused, and from unused to used.) -This operation can only be executed if the corresponding section has no -subsection; <em>i.e.</em> if the operation affects only the selected strip. The -contents of the strip are affected as well.</p> - </li> - </ul> - - <h3 id="id19964">Blocks menu (<code>Alt+B</code>)</h3> - <ul> - <li> - <p><strong>Add empty block</strong> (<code>Ctrl+B</code>): add a new empty block at the end of the -selected strip, or after the selected item in the strip.</p> - </li> - - <li> - <p><strong>Add empty page blocks</strong> (<code>Ctrl+Shift+B</code>): add one or more empty blocks -with a page number. A dialog opens where the user can choose the page -number for the first block, the number of blocks to add, and whether to -renumber subsequent page blocks automatically. The page number increases by -one for each block (<em>e.g.</em> if three pages are added starting at page number -4, the three page blocks will be numbered 4, 5 and 6) and for subsequent -pages if the user chooses to renumber them (<em>e.g.</em> following pages would be -renumbered 7, 8, 9, etc.)</p> - </li> - - <li> - <p><strong>Split block</strong> (<code>Ctrl+P</code>): split the block at the current cursor position. -The block is split in two blocks, one with all the audio data before the -cursor position, followed by one with the all the audio data after the cursor -position.</p> - <ul> - <li><span class="todo">TODO</span>: handle different kinds gracefully.</li> - <li><span class="todo">TODO</span>: how to split nested blocks?</li> - - </ul> - </li> - <li> - <p><strong>Merge block with next</strong> (<code>Ctrl+M</code>): merge this audio block with the -following block. The two blocks are replaced with a block that contains -the audio of both blocks.</p> - <ul> - <li><span class="todo">TODO</span>: if the blocks were of a different kind, the kind of the first block -is kept. This means that page numbers may disappear, etc.</li> - - </ul> - </li> - <li> - <p><strong>Block is used</strong> (<code>Ctrl+K</code>): when a block is selected, the menu item shows -whether the block is used or not with a checkbox. The checkbox is checked if -the block is currently used. Selecting this item toggles the used status of -the block (from used to unused, and from unused to used.)</p> - </li> - </ul> - - <p><span class="todo">TODO</span>: update the rest of the document!</p> - <h3 id="id20077">Transport menu (<code>Alt+R</code>)</h3> - <ul> - <li> - <p><strong>Play</strong>: playback sub-menu.</p> - - <ul> - <li><strong>Play all</strong> (Ctrl+Space): play from the current selection, or the -beginning of the book if nothing is selected, until the end of the book is -reached.</li> - <li><strong>Play selection</strong> (<code>Ctrl+Shift+Space</code>): play the current selection, or -if a cursor is positionned inside a block, until the end of the block.</li> - </ul> - </li> - - <li> - <p><strong>Pause/Resume</strong>: pause or resume playback.</p> - </li> - <li> - <p><strong>Stop</strong>: stop playback.</p> - </li> - <li> - - <p><strong>Record</strong>: recording sub-menu.</p> - <ul> - <li><strong>Start listening</strong>:</li> - <li><strong>Start recording</strong>:</li> - <li><strong>Allow overwrite</strong>:</li> - - </ul> - </li> - </ul> - <h3 id="id20159">Tools menu</h3> - <h3 id="id20162">Help menu</h3> - </body> - + <body> + <h1 id="ObiUsermanual">Obi User manual</h1> + <p> +This is the Obi User Manual, accompanying Obi version beta 1 (2008-05-16). +</p> + <p> + <i>To track the state of the final features being added to Obi, visit the <a class="ext-link" href="http://sourceforge.net/tracker/?group_id=149942&atid=776242"><span class="icon">Obi bug tracker</span></a>, and the Obi <a class="ext-link" href="http://daisy-trac.cvsdude.com/obi/wiki/Beta%20version%20checklist"><span class="icon">Beta version checklist</span></a>.</i> + </p> + <p> +This manual is a work in progress, and will be completed at the time of release of Obi 1.0. +</p> + <p> + <div class="wiki-toc"> + <h4>Table of Contents</h4> + <ul> + <li> + <a href="#WhatisObi">What is Obi?</a> + </li> + <li> + <a href="#Obi-Installationandsystemrequirements">Obi - Installation and system requirements</a> + </li> + <li> + <a href="#InformationBeyondthisManual">Information Beyond this Manual</a> + </li> + <li> + <a href="#Obi-GettingStarted">Obi - Getting Started</a> + </li> + <ul> + <li> + <a href="#ScreenLayout">Screen Layout</a> + </li> + <li> + <a href="#Step-by-stepGuidetoDTBCreationwithObi">Step-by-step Guide to DTB Creation with Obi</a> + </li> + <ul> + <li> + <a href="#CreatingaNewProject">Creating a New Project</a> + </li> + <li> + <a href="#EditingtheTableofContents">Editing the Table of Contents</a> + </li> + <li> + <a href="#AddingandEditingAudioContent">Adding and Editing Audio Content</a> + </li> + <ul> + <li> + <a href="#LiveAudioRecording">Live Audio Recording</a> + </li> + <li> + <a href="#ImportingAudioFiles">Importing Audio Files</a> + </li> + <li> + <a href="#EditingContents">Editing Contents</a> + </li> + <li> + <a href="#PagesandSpecialRoles">Pages and Special Roles</a> + </li> + </ul> + <li> + <a href="#EditingMetadata">Editing Metadata</a> + </li> + <li> + <a href="#ExportingtoDAISY">Exporting to DAISY</a> + </li> + </ul> + <li> + <a href="#UsefulShortcutKeys">Useful Shortcut Keys</a> + </li> + </ul> + <li> + <a href="#Obi-ProReference">Obi - Pro Reference</a> + </li> + <ul> + <li> + <a href="#ContentsView">Contents View</a> + </li> + <ul> + <li> + <a href="#MovingfromPhrasestoSections">Moving from Phrases to Sections</a> + </li> + <li> + <a href="#PlaybackinContentsView">Playback in Contents View</a> + </li> + <li> + <a href="#PlaybackwithRespecttoNavigation">Playback with Respect to Navigation</a> + </li> + </ul> + <li> + <a href="#ThePreferencesDialog">The Preferences Dialog</a> + </li> + <ul> + <li> + <a href="#ProjectPreferences">Project Preferences</a> + </li> + <li> + <a href="#AudioPreferences">Audio Preferences</a> + </li> + <li> + <a href="#UserProfilePreferences">User Profile Preferences</a> + </li> + </ul> + <li> + <a href="#Keyboardshortcuts">Keyboard shortcuts</a> + </li> + <ul> + <li> + <a href="#FileMenu">File Menu</a> + </li> + <li> + <a href="#EditMenu">Edit Menu</a> + </li> + <li> + <a href="#ViewMenu">View Menu</a> + </li> + <li> + <a href="#SectionsMenu">Sections Menu</a> + </li> + <li> + <a href="#PhrasesMenu">Phrases Menu</a> + </li> + <li> + <a href="#TransportMenu">Transport Menu</a> + </li> + <li> + <a href="#ToolsMenu">Tools Menu</a> + </li> + </ul> + <li> + <a href="#Transportbarshortcutsusefulincontentsview">Transport bar shortcuts useful in contents view</a> + </li> + <li> + <a href="#OtherContentsviewshortcuts">Other Contents view shortcuts</a> + </li> + <li> + <a href="#Indexofshortcuts">Index of shortcuts</a> + </li> + </ul> + </ul> + </div> + </p> + <h2 id="WhatisObi">What is Obi?</h2> + <p> +Obi is a production tool for DAISY DTBs. It can produce DAISY/NISO 2005 "NCX-Only" DTBs natively. +</p> + <p> +Obi is free to use, internationalized and accessible. Obi has been designed to be easy to learn and use. +</p> + <h2 id="Obi-Installationandsystemrequirements">Obi - Installation and system requirements</h2> + <p> +Obi runs on Windows XP (SP2) and Vista. The software requires the use of Microsoft's .Net and DirectX for audio. +<i>This section remains to be written</i> +</p> + <h2 id="InformationBeyondthisManual">Information Beyond this Manual</h2> + <p> +If you want more information about Obi, you can +</p> + <ul> + <li>Visit the <a class="ext-link" href="http://www.daisy.org/support/forums.shtml"><span class="icon">Obi Forum</span></a>, where you can ask questions, and have them answered by an expert. +</li> + <li>Visit the <a class="ext-link" href="http://daisy-trac.cvsdude.com/obi/wiki/"><span class="icon">Obi Wiki</span></a> which contains additional documentation. The Wiki also always contains the latest version of <a class="ext-link" href="http://daisy-trac.cvsdude.com/obi/wiki/User%20manual"><span class="icon">this manual</span></a>. +</li> + </ul> + <p> + +</p> + <h2 id="Obi-GettingStarted">Obi - Getting Started</h2> + <p> +This section of the Obi manual contains a "quick start" guide briefly describing how to use Obi. A more detailed description of Obi features and functions will be available in the <a href="#Obi-ProReference">Obi - Pro Reference</a> section. +</p> + <h3 id="ScreenLayout">Screen Layout</h3> + <p> +The Obi screen is divided into the following views: +</p> + <ul> + <li>Table of Contents (TOC) view (<tt>F6</tt>); +</li> + <li>Content View (<tt>F7</tt>); +</li> + <li>Transport Bar (<tt>F8</tt>); +</li> + <li>Metadata view; +</li> + </ul> + <p> +We can navigate among these views by pressing <tt>Ctrl+Tab</tt> or <tt>Shift+Ctrl+Tab</tt>. There are splitters between the content view, the TOC view, and the metadata views to change the size of these views. +</p> + <h3 id="Step-by-stepGuidetoDTBCreationwithObi">Step-by-step Guide to DTB Creation with Obi</h3> + <h4 id="CreatingaNewProject">Creating a New Project</h4> + <p> +Open Obi, and create a new project (<tt>File > New project</tt>, or <tt>Ctrl+N</tt>.) Choose a title for your project, and a location on your system where it will be saved. You can also tell Obi to automatically create a title section using the title of your project. +</p> + <p> + <a style="padding:0; border:none" href="images/obi_create_new_project.jpg"> + <img src="images/obi_create_new_project.jpg" alt="The new project creation dialog" title="Obi New Project Dialog" /> + </a> + </p> + <p> +Alternatively, you can create a new project by importing an existing structure from an XHTML source document containing headings (<tt>h1</tt> through <tt>h6</tt>) and pages (<tt>span</tt>); choose <tt>File > New project from import</tt> or press <tt>Ctrl+Shift+N</tt>. You can choose a title for your project (which defaults to the <tt>title</tt> value in the XHTML file) and a location for saving it. +</p> + <p> +You can save your project at any time (<tt>File > Save project</tt> or <tt>Ctrl+S</tt>.) There is currently no auto-save in Obi so you should save your changes often to minimize the risk of losing important data. You can then reopen your project at a later time by choosing <tt>File > Open project</tt> or pressing <tt>Ctrl+O</tt>. It is also possible to configure Obi to automatically reopen the last open project when starting, or to quickly find recently open projects through the <tt>File > Recent projects</tt> menu item (<tt>Alt+F, R</tt>.) +</p> + <h4 id="EditingtheTableofContents">Editing the Table of Contents</h4> + <p> + <a style="padding:0; border:none" href="images/obi_toc_view.jpg"> + <img src="images/obi_toc_view.jpg" alt="The TOC tree view" title="Obi TOC View" /> + </a> + </p> + <p> +You can then create or modify the main structure elements in the TOC view by the following commands: +</p> + <ul> + <li>Adding a new section (<tt>Sections > Add section</tt>, or <tt>Ctrl+H</tt>) <i>after</i> the selected section, or at the end of the project if no section is selected. +</li> + <li>Inserting a new section (<tt>Sections > Insert section</tt>, or <tt>Ctrl+Alt+H</tt>) <i>before</i> the selected section. +</li> + <li>Adding a new subsection (<tt>Sections > Add subsection</tt>, or <tt>Ctrl+Shift+H</tt>) under the selected section. +</li> + </ul> + <p> +When a new section or subsection is created, it appears in both the TOC view (where the TOC is viewed as a tree) and in the content view (as a strip where audio content can be added.) The newly created section is also selected and can be named immediately. +</p> + <p> +During structure editing, you may also find the following commands useful: +</p> + <ul> + <li>Renaming a section (<tt>Sections > Rename section</tt>, or <tt>F2</tt>) to edit the heading of a section. +</li> + <li>Changing the level of a section (<tt>Sections > Decrease section level</tt>, or <tt>Ctrl+Shift+Left</tt>; and <tt>Sections > Increase section level</tt>, or <tt>Ctrl+Shift+Right</tt>). +</li> + <li>Basic edit commands such as copy (<tt>Edit > Copy</tt>, or <tt>Ctrl+C</tt>), paste (<tt>Edit > Paste</tt>, or <tt>Ctrl+V</tt>;<tt>Edit > Paste before</tt>, or <tt>Ctrl+Alt+V</tt>; and <tt>Edit > Paste inside</tt>, or <tt>Ctrl+Shift+V</tt>), delete (<tt>Edit > Delete</tt>, or <tt>Del</tt>) and cut (<tt>Edit > Cut</tt>, or <tt>Ctrl+X</tt>.) Copying and deleting affect the whole selected section, including its subsections. +</li> + </ul> + <h4 id="AddingandEditingAudioContent">Adding and Editing Audio Content</h4> + <p> +After creating sections, audio can be added to these sections either by live recording, or by importing existing audio files. +</p> + <h5 id="LiveAudioRecording">Live Audio Recording</h5> + <p> +Select the section that you want to record in in the contents view and click on the record button in the transport bar, or press <tt>Ctrl+R</tt> for starting pre-recording monitoring. +</p> + <p> + <a style="padding:0; border:none" href="images/obi_tbar_pre_rec.jpg"> + <img src="images/obi_tbar_pre_rec.jpg" alt="The transport bar while pre-record monitoring" title="Obi Transport Bar while pre-record monitoring" /> + </a> + </p> + <p> +The amplitude of the microphone input will be displayed in the graphical peak meter (which can be shown or hidden by the command <tt>View > Show peak meter</tt>, or <tt>Ctrl+Alt+P</tt>) as well as a text peak meter located in the transport bar. You can then change the settings for your microphone through system settings. You should set your recording level so that the audio level is loud enough to be heard comfortably, but not so loud as to create clipping and distortion. You should also try to maintain the volume consistently throughout the book. +</p> + <p> +When the audio levels are to your liking, click the record button one more time in the transport bar, or press <tt>Ctrl+R</tt> again to start recording. If you want to skip pre-recording monitoring and start recording directly, you can also press <tt>Ctrl+Shift+R</tt>. Everytime you start recording, a new phrase is created in the selected section. If nothing is selected, a new section is added to record in, and if a phrase is selected, recording starts after this phrase. You can record <i>before</i> a given phrase by selecting the position before this phrase. +</p> + <p> +During recording, you can create new phrases, pages and sections on the fly using the transport bar: +</p> + <ul> + <li>Press the next phrase button, or <tt>K</tt>, to create a new phrase and continue recording in this phrase. +</li> + <li>Press the next page button, or <tt>P</tt>, to create a new page. +</li> + <li>Press the next section button, or <tt>H</tt>, to create a new section. +</li> + </ul> + <h5 id="ImportingAudioFiles">Importing Audio Files</h5> + <p> +You can import external audio files into new phrases with the command <tt>Phrases > Import audio files</tt> (<tt>Ctrl+I</tt>). You are then presented with a file dialog to choose one or several WAV files (usually having a <tt>.wav</tt> extension) to import. Note that the files must have the same audio settings as the book (<i>i.e.</i>, same number of channels, sample rate and bit depth.) For every selected file, a new phrase is created with the corresponding audio in the selected section or after the selected phrase or position in a strip. +</p> + <h5 id="EditingContents">Editing Contents</h5> + <p> +After recording, contents can be edited more finely. You can navigate through the content view by pressing arrow keys (up and down to move from section to section, while left and right move from phrase to phrase); you can also click on a phrase or a section to select it if you are using a mouse. +</p> + <p> +Phrases can be <i>split</i> and <i>merged</i>. To split a phrase in two, select a phrase and play it using the play button in the transport bar or by pressing the space bar. Pause at the time where the phrase should be split (by pressing the pause button in the transport bar or the space bar again), then choose <tt>Phrases > Split phrase</tt> (<tt>Ctrl+Q</tt>). +</p> + <p> + <a style="padding:0; border:none" href="images/obi_phrase_and_cursor.jpg"> + <img src="images/obi_phrase_and_cursor.jpg" alt="A selected phrase with the cursor positioned at an appropriate split position" /> + </a> + </p> + <p> +A new phrase is created following the current phrase, and the audio following the split point is moved to the new phrase. The converse operation is merging two phrases: select a phrase, then choose <tt>Phrase > Merge phrase with next</tt> (<tt>Ctrl+M</tt>) to merge the audio of the selected phrase with the next one into a single phrase. +</p> + <p> +A related operation is phrase detection, to split a phrase automatically according to silent chunks within the phrase (<tt>Phrases > Apply phrase detection</tt>, or <tt>Ctrl+Shift+P</tt>.) +</p> + <p> +Sections can also be split and merged (<tt>Sections > Split section</tt>, or <tt>Ctrl+Shift+Q</tt>; and <tt>Sections > Merge section with next</tt>, or <tt>Ctrl+Shift+M</tt>). The split point for a section is a phrase. +</p> + <p> +Basic edit commands such as copy (<tt>Edit >... [truncated message content] |
From: <avn...@us...> - 2008-05-20 11:06:51
|
Revision: 3091 http://urakawa.svn.sourceforge.net/urakawa/?rev=3091&view=rev Author: avneeshsingh Date: 2008-05-20 04:06:18 -0700 (Tue, 20 May 2008) Log Message: ----------- Menu items updated for toggle TOC views/Content View function. Enabling / Disabling not looking perfect yet. Modified Paths: -------------- trunk/urakawa/application/Obi/Obi/ObiForm.cs trunk/urakawa/application/Obi/Obi/ObiForm.resx trunk/urakawa/application/Obi/Obi/ProjectView/ProjectView.cs Modified: trunk/urakawa/application/Obi/Obi/ObiForm.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/ObiForm.cs 2008-05-20 07:26:09 UTC (rev 3090) +++ trunk/urakawa/application/Obi/Obi/ObiForm.cs 2008-05-20 11:06:18 UTC (rev 3091) @@ -326,8 +326,8 @@ mShowMetadataViewToolStripMenuItem.Enabled = mSession.HasProject; mShowTransportBarToolStripMenuItem.Enabled = mSession.HasProject; mShowStatusBarToolStripMenuItem.Enabled = true; - mFocusOnTOCViewToolStripMenuItem.Enabled = mProjectView.CanFocusOnTOCView; - mFocusOnStripsViewToolStripMenuItem.Enabled = mProjectView.CanFocusOnContentView; + mFocusOnTOCViewToolStripMenuItem.Enabled = mProjectView.CanFocusOnTOCView && !mProjectView.CanToggleFocusToContentsView ; + mFocusOnStripsViewToolStripMenuItem.Enabled = mProjectView.CanFocusOnContentView && mProjectView.CanToggleFocusToContentsView ; mFocusOnTransportBarToolStripMenuItem.Enabled = mSession.HasProject; mSynchronizeViewsToolStripMenuItem.Enabled = mSession.HasProject; mShowOnlySelectedSectionToolStripMenuItem.Enabled = mProjectView.CanShowOnlySelectedSection; @@ -358,12 +358,13 @@ private void mFocusOnTOCViewToolStripMenuItem_Click(object sender, EventArgs e) { - mProjectView.FocusOnTOCView(); + if (mProjectView != null) mProjectView.ToggleFocusBTWTOCViewAndContentsView(); } private void mFocusOnStripsViewToolStripMenuItem_Click(object sender, EventArgs e) { - mProjectView.FocusOnContentView(); + if (mProjectView != null) + mProjectView.ToggleFocusBTWTOCViewAndContentsView(); } private void mFocusOnTransportBarToolStripMenuItem_Click(object sender, EventArgs e) Modified: trunk/urakawa/application/Obi/Obi/ObiForm.resx =================================================================== --- trunk/urakawa/application/Obi/Obi/ObiForm.resx 2008-05-20 07:26:09 UTC (rev 3090) +++ trunk/urakawa/application/Obi/Obi/ObiForm.resx 2008-05-20 11:06:18 UTC (rev 3091) @@ -117,13 +117,13 @@ <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> - <metadata name="mMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="mMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing"> <value>0, 0</value> - </metadata> + </data> <data name="mNewProjectToolStripMenuItem.AccessibleName" xml:space="preserve"> <value>New project Ctrl+N</value> </data> - <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <data name="mNewProjectToolStripMenuItem.ImageTransparentColor" type="System.Drawing.Color, System.Drawing"> <value>Magenta</value> </data> @@ -498,10 +498,10 @@ <value>Focus on TO&C view</value> </data> <data name="mFocusOnStripsViewToolStripMenuItem.AccessibleName" xml:space="preserve"> - <value>Focus on content view F7</value> + <value>Focus on content view F6</value> </data> <data name="mFocusOnStripsViewToolStripMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> - <value>F7</value> + <value>F6</value> </data> <data name="mFocusOnStripsViewToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> <value>259, 22</value> @@ -1368,9 +1368,9 @@ <data name=">>mMenuStrip.ZOrder" xml:space="preserve"> <value>2</value> </data> - <metadata name="mStatusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <data name="mStatusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing"> <value>0, 606</value> - </metadata> + </data> <data name="mStatusLabel.Size" type="System.Drawing.Size, System.Drawing"> <value>0, 17</value> </data> @@ -1425,9 +1425,9 @@ <data name=">>mProjectView.ZOrder" xml:space="preserve"> <value>0</value> </data> - <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <data name="$this.Localizable" type="System.Boolean, mscorlib"> <value>True</value> - </metadata> + </data> <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing"> <value>6, 13</value> </data> Modified: trunk/urakawa/application/Obi/Obi/ProjectView/ProjectView.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/ProjectView/ProjectView.cs 2008-05-20 07:26:09 UTC (rev 3090) +++ trunk/urakawa/application/Obi/Obi/ProjectView/ProjectView.cs 2008-05-20 11:06:18 UTC (rev 3091) @@ -1208,9 +1208,9 @@ { return (key == (Keys)(Keys.Control | Keys.Tab) && SelectViewsInCycle(true)) || (key == (Keys)(Keys.Control | Keys.Shift | Keys.Tab) && SelectViewsInCycle(false)) || - (key == (Keys)(Keys.F6) && ToggleFocusBTWTOCViewAndContentsView ()) || - (key == (Keys)(Keys.Shift | Keys.Space) && TogglePlayPause(UseSelection)) || - (key == Keys.Space && TogglePlayPause(UseAudioCursor)) || + (key == (Keys)(Keys.F6) && ToggleFocusBTWTOCViewAndContentsView() ) || + (key == (Keys)(Keys.Shift | Keys.Space) && TogglePlayPause(UseSelection)) || + (key == Keys.Space && TogglePlayPause(UseAudioCursor)) || base.ProcessCmdKey(ref msg, key); } @@ -1372,6 +1372,22 @@ mPanelInfoLabelButton.Text = ""; } + public bool CanToggleFocusToContentsView + { + get + { + if (mTOCView.ContainsFocus) + return true; + else if (mStripsView.ContainsFocus) + return false; + else if (mTOCView.Visible) // if neither of views has focus then check if toc is visible, if visible and focus on it + return false; + else // if neither of view has focus and TOC is not visible, focus on contents view. + return true; + } + } + + public bool ToggleFocusBTWTOCViewAndContentsView () { if (mTOCView.ContainsFocus) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <avn...@us...> - 2008-05-22 19:45:28
|
Revision: 3097 http://urakawa.svn.sourceforge.net/urakawa/?rev=3097&view=rev Author: avneeshsingh Date: 2008-05-22 12:45:22 -0700 (Thu, 22 May 2008) Log Message: ----------- New To_do implementation works from front end. remaining work : make it work for transport bar and cleaning of old implementation. Modified Paths: -------------- trunk/urakawa/application/Obi/Obi/ObiForm.cs trunk/urakawa/application/Obi/Obi/ProjectView/StripsView.cs Modified: trunk/urakawa/application/Obi/Obi/ObiForm.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/ObiForm.cs 2008-05-22 19:09:54 UTC (rev 3096) +++ trunk/urakawa/application/Obi/Obi/ObiForm.cs 2008-05-22 19:45:22 UTC (rev 3097) @@ -1557,12 +1557,15 @@ } else { + mProjectView.ToggleEmptyNodeTo_DoMark(); + /* EmptyNode node = mProjectView.SelectedNodeAs<EmptyNode>(); if (node != null) { mProjectView.Presentation.getUndoRedoManager().execute(new Commands.Node.ChangeCustomType(mProjectView, node, EmptyNode.Kind.TODO)); } + */ } } Modified: trunk/urakawa/application/Obi/Obi/ProjectView/StripsView.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/ProjectView/StripsView.cs 2008-05-22 19:09:54 UTC (rev 3096) +++ trunk/urakawa/application/Obi/Obi/ProjectView/StripsView.cs 2008-05-22 19:45:22 UTC (rev 3097) @@ -945,7 +945,7 @@ { for (ObiNode n = mView.SelectedNodeAs<ObiNode>().FollowingNode; n != null; n = n.FollowingNode) { - if (n is EmptyNode && ((EmptyNode)n).NodeKind == EmptyNode.Kind.TODO) + if (n is EmptyNode && ((EmptyNode)n).IsTo_Do) { mView.Selection = new NodeSelection(n, this); return; @@ -954,7 +954,7 @@ } for (ObiNode n = mView.Presentation.RootNode.FirstLeaf; n != null; n = n.FollowingNode) { - if (n is EmptyNode && ((EmptyNode)n).NodeKind == EmptyNode.Kind.TODO) + if (n is EmptyNode && ((EmptyNode)n).IsTo_Do) { mView.Selection = new NodeSelection(n, this); return; @@ -971,7 +971,7 @@ { for (ObiNode n = mView.SelectedNodeAs<ObiNode>().PrecedingNode; n != null; n = n.PrecedingNode) { - if (n is EmptyNode && ((EmptyNode)n).NodeKind == EmptyNode.Kind.TODO) + if (n is EmptyNode && ((EmptyNode)n).IsTo_Do ) { mView.Selection = new NodeSelection(n, this); return; @@ -980,7 +980,7 @@ } for (ObiNode n = mView.Presentation.RootNode.LastLeaf; n != null; n = n.PrecedingNode) { - if (n is EmptyNode && ((EmptyNode)n).NodeKind == EmptyNode.Kind.TODO) + if (n is EmptyNode && ((EmptyNode)n).IsTo_Do) { mView.Selection = new NodeSelection(n, this); return; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |