Révision 2198
| tmp/org.txm.backtomedia.rcp/src/org/txm/backtomedia/commands/function/BackToMedia.java (revision 2198) | ||
|---|---|---|
| 107 | 107 |
int startTime = 0; |
| 108 | 108 |
int endTime = 0; |
| 109 | 109 |
//boolean useWordProperty = Platform.getPreferencesService().getBoolean(Application.PLUGIN_ID, BackToMediaPreferences.USEWORDPROPERTY, false, null); |
| 110 |
boolean useWordProperty = BackToMediaPreferences.getInstance().getBoolean(BackToMediaPreferences.USEWORDPROPERTY);
|
|
| 110 |
String sync_mode = BackToMediaPreferences.getInstance().getString(BackToMediaPreferences.SYNCMODE);
|
|
| 111 | 111 |
|
| 112 | 112 |
StructuralUnit textS = corpus.getStructuralUnit("text"); //$NON-NLS-1$
|
| 113 | 113 |
Property textP = textS.getProperty("id"); //$NON-NLS-1$
|
| ... | ... | |
| 115 | 115 |
|
| 116 | 116 |
Log.fine(MessagesMP.BackToMedia_7+textid); |
| 117 | 117 |
|
| 118 |
if (useWordProperty) {
|
|
| 118 |
if (BackToMediaPreferences.WORDMODE.equals(sync_mode)) {
|
|
| 119 | 119 |
String pTimeName = BackToMediaPreferences.getInstance().getString(BackToMediaPreferences.WORD_PROPERTY); |
| 120 | 120 |
if ("".equals(pTimeName)) pTimeName = "time"; //$NON-NLS-1$ //$NON-NLS-2$
|
| 121 | 121 |
|
| ... | ... | |
| 131 | 131 |
String[] times = CQPSearchEngine.getCqiClient().cpos2Str(timeP.getQualifiedName(), positions); |
| 132 | 132 |
sStartTime = times[0]; |
| 133 | 133 |
sEndTime = times[1]; |
| 134 |
} else {
|
|
| 134 |
} else if (BackToMediaPreferences.STRUCTUREMODE.equals(sync_mode)){
|
|
| 135 | 135 |
StructuralUnit structure = corpus.getStructuralUnit(structurePropertyName); |
| 136 | 136 |
if (structure == null) {
|
| 137 | 137 |
System.out.println(MessagesMP.bind(MessagesMP.BackToMedia_12, structurePropertyName)); |
| ... | ... | |
| 151 | 151 |
System.out.println(MessagesMP.bind(MessagesMP.BackToMedia_17, endPropertyName)); |
| 152 | 152 |
return null; |
| 153 | 153 |
} |
| 154 |
sEndTime = Match.getValueForProperty(endProperty, line.getMatch().getStart());
|
|
| 154 |
sEndTime = Match.getValueForProperty(endProperty, line.getMatch().getEnd());
|
|
| 155 | 155 |
Log.fine(MessagesMP.BackToMedia_19+sEndTime); |
| 156 |
} else {
|
|
| 157 |
StructuralUnit structure = corpus.getStructuralUnit(structurePropertyName); |
|
| 158 |
if (structure == null) {
|
|
| 159 |
System.out.println(MessagesMP.bind(MessagesMP.BackToMedia_12, structurePropertyName)); |
|
| 160 |
return null; |
|
| 161 |
} |
|
| 162 |
Property startProperty = structure.getProperty(startPropertyName); |
|
| 163 |
if (startProperty == null) {
|
|
| 164 |
System.out.println(MessagesMP.bind(MessagesMP.BackToMedia_14, startPropertyName)); |
|
| 165 |
return null; |
|
| 166 |
} |
|
| 167 |
|
|
| 168 |
sStartTime = Match.getValueForProperty(startProperty, line.getMatch().getStart()); |
|
| 169 |
|
|
| 170 |
int end = line.getMatch().getEnd()+1; |
|
| 171 |
sEndTime = Match.getValueForProperty(startProperty, end); // should be after the next milestone |
|
| 172 |
Log.fine(MessagesMP.BackToMedia_16+sStartTime); |
|
| 156 | 173 |
} |
| 157 | 174 |
|
| 158 | 175 |
// try {
|
| tmp/org.txm.backtomedia.rcp/src/org/txm/backtomedia/preferences/BackToMediaPreferencePage.java (revision 2198) | ||
|---|---|---|
| 36 | 36 |
import org.eclipse.swt.layout.RowLayout; |
| 37 | 37 |
import org.eclipse.swt.widgets.Group; |
| 38 | 38 |
import org.eclipse.ui.IWorkbench; |
| 39 |
import org.eclipse.ui.preferences.ScopedPreferenceStore;
|
|
| 39 |
import org.txm.rcp.jface.ComboFieldEditor;
|
|
| 40 | 40 |
import org.txm.rcp.preferences.TXMPreferencePage; |
| 41 | 41 |
import org.txm.rcp.preferences.TXMPreferenceStore; |
| 42 | 42 |
|
| 43 | 43 |
import vlcplayerrcp.MessagesMP; |
| 44 |
// TODO: Auto-generated Javadoc |
|
| 44 |
|
|
| 45 | 45 |
/** |
| 46 | 46 |
* This class represents a preference page that is contributed to the |
| 47 | 47 |
* Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we |
| ... | ... | |
| 58 | 58 |
/** The Constant ID. */ |
| 59 | 59 |
public static final String ID = "org.txm.backtomedia.preferences.BackToMediaPreferencePage"; //$NON-NLS-1$ |
| 60 | 60 |
|
| 61 |
/** The preferences. */ |
|
| 62 |
private ScopedPreferenceStore preferences; |
|
| 63 |
|
|
| 64 | 61 |
/** |
| 65 | 62 |
* The display parts count in chart title state. |
| 66 | 63 |
*/ |
| 67 | 64 |
private BooleanFieldEditor loopProperty; |
| 68 |
private BooleanFieldEditor useWordProperty;
|
|
| 65 |
private ComboFieldEditor useWordProperty;
|
|
| 69 | 66 |
private StringFieldEditor defaultStructure; |
| 70 | 67 |
private StringFieldEditor defaultStructureStartProperty; |
| 71 | 68 |
private StringFieldEditor defaultStructureEndProperty; |
| ... | ... | |
| 102 | 99 |
loopProperty = new BooleanFieldEditor(BackToMediaPreferences.REPEAT,MessagesMP.BackToMediaPreferencePage_1, getFieldEditorParent()); |
| 103 | 100 |
addField(loopProperty); |
| 104 | 101 |
|
| 105 |
useWordProperty = new BooleanFieldEditor(BackToMediaPreferences.USEWORDPROPERTY,MessagesMP.BackToMediaPreferencePage_2, getFieldEditorParent()); |
|
| 102 |
String [][] choices = {{BackToMediaPreferences.WORDMODE, BackToMediaPreferences.WORDMODE},
|
|
| 103 |
{BackToMediaPreferences.STRUCTUREMODE, BackToMediaPreferences.STRUCTUREMODE},
|
|
| 104 |
{BackToMediaPreferences.MILESTONEMODE, BackToMediaPreferences.MILESTONEMODE}
|
|
| 105 |
}; |
|
| 106 |
useWordProperty = new ComboFieldEditor(BackToMediaPreferences.SYNCMODE,MessagesMP.BackToMediaPreferencePage_2, choices, getFieldEditorParent()); |
|
| 107 |
|
|
| 106 | 108 |
addField(useWordProperty); |
| 107 | 109 |
|
| 108 | 110 |
spanGroup = new Group(getFieldEditorParent(), SWT.NONE); |
| ... | ... | |
| 127 | 129 |
defaultStructureEndProperty = new StringFieldEditor(BackToMediaPreferences.STRUCTURE_END_PROPERTY,MessagesMP.BackToMediaPreferencePage_7, spanGroup); |
| 128 | 130 |
addField(defaultStructureEndProperty); |
| 129 | 131 |
|
| 130 |
updateEnables(useWordProperty.getBooleanValue());
|
|
| 132 |
updateEnables(useWordProperty.getStringValue());
|
|
| 131 | 133 |
} |
| 132 | 134 |
|
| 133 |
public void updateEnables(boolean useWordPropertyValue) {
|
|
| 134 |
defaultStructure.setEnabled(!useWordPropertyValue, spanGroup); |
|
| 135 |
defaultStructureStartProperty.setEnabled(!useWordPropertyValue, spanGroup); |
|
| 136 |
defaultStructureEndProperty.setEnabled(!useWordPropertyValue, spanGroup); |
|
| 137 |
defaultWordTimeProperty.setEnabled(useWordPropertyValue, spanGroup); |
|
| 135 |
public void updateEnables(String sync_mode) {
|
|
| 136 |
if (BackToMediaPreferences.WORDMODE.equals(sync_mode)) {
|
|
| 137 |
defaultStructure.setEnabled(false, spanGroup); |
|
| 138 |
defaultStructureStartProperty.setEnabled(false, spanGroup); |
|
| 139 |
defaultStructureEndProperty.setEnabled(false, spanGroup); |
|
| 140 |
defaultWordTimeProperty.setEnabled(true, spanGroup); |
|
| 141 |
} else if (BackToMediaPreferences.STRUCTUREMODE.equals(sync_mode)) {
|
|
| 142 |
defaultStructure.setEnabled(true, spanGroup); |
|
| 143 |
defaultStructureStartProperty.setEnabled(true, spanGroup); |
|
| 144 |
defaultStructureEndProperty.setEnabled(true, spanGroup); |
|
| 145 |
defaultWordTimeProperty.setEnabled(false, spanGroup); |
|
| 146 |
} else { // milestones
|
|
| 147 |
defaultStructure.setEnabled(true, spanGroup); |
|
| 148 |
defaultStructureStartProperty.setEnabled(true, spanGroup); |
|
| 149 |
defaultStructureEndProperty.setEnabled(false, spanGroup); |
|
| 150 |
defaultWordTimeProperty.setEnabled(false, spanGroup); |
|
| 151 |
} |
|
| 138 | 152 |
} |
| 139 | 153 |
|
| 140 | 154 |
@Override |
| 141 | 155 |
public void propertyChange(PropertyChangeEvent event) {
|
| 142 | 156 |
String prefName = ((FieldEditor) event.getSource()).getPreferenceName(); |
| 143 |
if (prefName.equals(BackToMediaPreferences.USEWORDPROPERTY)) {
|
|
| 144 |
updateEnables(useWordProperty.getBooleanValue());
|
|
| 157 |
if (prefName.equals(BackToMediaPreferences.SYNCMODE)) {
|
|
| 158 |
updateEnables(useWordProperty.getStringValue());
|
|
| 145 | 159 |
} |
| 146 | 160 |
} |
| 147 | 161 |
} |
| tmp/org.txm.backtomedia.rcp/src/org/txm/backtomedia/preferences/BackToMediaPreferences.java (revision 2198) | ||
|---|---|---|
| 13 | 13 |
public static final String PREFERENCES_PREFIX = "backtomedia_"; |
| 14 | 14 |
|
| 15 | 15 |
public static final String REPEAT = "backtomedia_loop"; //$NON-NLS-1$ |
| 16 |
public static final String USEWORDPROPERTY = "backtomedia_type"; //$NON-NLS-1$ |
|
| 16 |
public static final String SYNCMODE = "sync_mode"; //$NON-NLS-1$ |
|
| 17 |
|
|
| 17 | 18 |
public static final String STRUCTURE = "backtomedia_structure"; //$NON-NLS-1$ |
| 18 | 19 |
public static final String STRUCTURE_START_PROPERTY = "backtomedia_startproperty"; //$NON-NLS-1$ |
| 19 | 20 |
public static final String STRUCTURE_END_PROPERTY = "backtomedia_endproperty"; //$NON-NLS-1$ |
| 20 | 21 |
public static final String WORD_PROPERTY = "backtomedia_time_property"; //$NON-NLS-1$ |
| 21 | 22 |
|
| 23 |
// the sync modes |
|
| 24 |
public static final String WORDMODE = "Word"; |
|
| 25 |
public static final String STRUCTUREMODE = "Structure"; |
|
| 26 |
public static final String MILESTONEMODE = "Milestone"; |
|
| 22 | 27 |
|
| 23 | 28 |
public BackToMediaPreferences() {
|
| 24 | 29 |
// TODO Auto-generated constructor stub |
| ... | ... | |
| 30 | 35 |
|
| 31 | 36 |
Preferences preferences = DefaultScope.INSTANCE.getNode(getPreferencesNodeQualifier()); |
| 32 | 37 |
preferences.putBoolean(REPEAT, true); |
| 33 |
preferences.putBoolean(USEWORDPROPERTY, false);
|
|
| 34 |
preferences.put(STRUCTURE, "sp");
|
|
| 35 |
preferences.put(STRUCTURE_START_PROPERTY, "starttime");
|
|
| 36 |
preferences.put(STRUCTURE_END_PROPERTY, "endtime");
|
|
| 38 |
preferences.put(SYNCMODE, MILESTONEMODE);
|
|
| 39 |
preferences.put(STRUCTURE, "u");
|
|
| 40 |
preferences.put(STRUCTURE_START_PROPERTY, "start"); |
|
| 41 |
preferences.put(STRUCTURE_END_PROPERTY, "end"); |
|
| 37 | 42 |
preferences.put(WORD_PROPERTY, "time"); |
| 38 | 43 |
} |
| 39 | 44 |
|
| tmp/org.txm.backtomedia.rcp/src/org/txm/backtomedia/editors/vlcplayer/VLCPlayer.java (revision 2198) | ||
|---|---|---|
| 61 | 61 |
private EmbeddedMediaPlayer vlcPlayer; |
| 62 | 62 |
private Composite videoComposite; |
| 63 | 63 |
private CanvasVideoSurface playerCanvas; |
| 64 |
private Scale rateField; |
|
| 65 |
private Label rateValueLabel; |
|
| 64 | 66 |
private Scale volumeField; |
| 67 |
private Label volumeValueLabel; |
|
| 68 |
|
|
| 65 | 69 |
private Button playButton; |
| 66 | 70 |
private Button repeatButton; |
| 67 | 71 |
|
| 68 | 72 |
protected String currentlyPlayed = ""; //$NON-NLS-1$ |
| 69 |
private Scale rateField; |
|
| 73 |
|
|
| 70 | 74 |
//private String startTime, endTime; |
| 71 | 75 |
private int start, end; |
| 72 | 76 |
|
| ... | ... | |
| 82 | 86 |
long previous = 0; |
| 83 | 87 |
long time, mins, secs; |
| 84 | 88 |
|
| 89 |
|
|
| 85 | 90 |
static {
|
| 86 | 91 |
//uncomment to enable VLC logs |
| 87 | 92 |
//Logger.setLevel(Level.TRACE); |
| ... | ... | |
| 240 | 245 |
GridData gdata4 = new GridData(SWT.FILL, SWT.CENTER, false, false); |
| 241 | 246 |
gdata4.widthHint = 100; |
| 242 | 247 |
rateField.setLayoutData(gdata4); |
| 243 |
rateField.setMaximum(150);
|
|
| 244 |
rateField.setMinimum(60);
|
|
| 248 |
rateField.setMaximum(140);
|
|
| 249 |
rateField.setMinimum(70);
|
|
| 245 | 250 |
rateField.setSelection(100); |
| 246 | 251 |
rateField.setPageIncrement (5); |
| 252 |
|
|
| 247 | 253 |
rateField.addSelectionListener(new SelectionListener() {
|
| 248 | 254 |
@Override |
| 249 | 255 |
public void widgetSelected(SelectionEvent e) {
|
| 250 | 256 |
float rate = rateField.getSelection()/100.0f; |
| 251 | 257 |
vlcPlayer.setRate(rate); |
| 258 |
rateValueLabel.setText(""+rateField.getSelection()+"%");
|
|
| 252 | 259 |
} |
| 253 | 260 |
|
| 254 | 261 |
@Override |
| 255 | 262 |
public void widgetDefaultSelected(SelectionEvent e) { }
|
| 256 | 263 |
}); |
| 257 | 264 |
|
| 265 |
rateValueLabel = new Label(this, SWT.NONE); |
|
| 266 |
rateValueLabel.setText("100%");
|
|
| 267 |
|
|
| 258 | 268 |
l = new Label(this, SWT.NONE); |
| 259 | 269 |
l.setText(MessagesMP.volume); |
| 260 | 270 |
|
| ... | ... | |
| 271 | 281 |
public void widgetSelected(SelectionEvent e) {
|
| 272 | 282 |
vlcPlayer.setVolume(volumeField.getSelection()); |
| 273 | 283 |
volume = volumeField.getSelection(); |
| 284 |
volumeValueLabel.setText(""+volume+"%");
|
|
| 274 | 285 |
} |
| 275 | 286 |
|
| 276 | 287 |
@Override |
| 277 | 288 |
public void widgetDefaultSelected(SelectionEvent e) { }
|
| 278 | 289 |
}); |
| 290 |
|
|
| 291 |
volumeValueLabel = new Label(this, SWT.NONE); |
|
| 292 |
volumeValueLabel.setText("100%");
|
|
| 279 | 293 |
|
| 280 | 294 |
vlcPlayer.addMediaPlayerEventListener(new MediaPlayerEventAdapter() {
|
| 281 | 295 |
@Override |
Formats disponibles : Unified diff