initial commit
[meviz.git] / src / main / java / eu / svjatoslav / meviz / encoder / EncodingPlan.java
1 /*
2  * Meviz - Various tools collection to work with multimedia.
3  * Copyright (C) 2012, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
4  * 
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of version 2 of the GNU General Public License
7  * as published by the Free Software Foundation.
8  */
9
10 package eu.svjatoslav.meviz.encoder;
11
12 import java.io.IOException;
13 import java.util.ArrayList;
14
15 public class EncodingPlan {
16
17     public ArrayList<EncodingTask> encodingTasks = new ArrayList<EncodingTask>();
18
19     public void execute(final EncodingOptions encodingOptions) throws IOException {
20         for (final EncodingTask task : encodingTasks) {
21
22             try {
23                 String command = task.getCommand(encodingOptions);
24
25                 if (task.doUseTerminal()) {
26                     command = "xterm -e '" + command + "'";
27                 }
28
29                 System.out.println("Executing command: " + command);
30
31                 final Runtime run = Runtime.getRuntime();
32                 Process pr;
33                 pr = run.exec(new String[] { "/bin/bash", "-c", command });
34
35                 pr.waitFor();
36
37             } catch (final Exception e) {
38                 System.out.println(e.toString());
39                 e.printStackTrace();
40             }
41
42         }
43
44     }
45
46     public void scheduleTask(final EncodingTask encodingTask) {
47         encodingTasks.add(encodingTask);
48     };
49
50 }