Changeset 102

Show
Ignore:
Timestamp:
04/18/06 12:27:19 (3 years ago)
Author:
jlee
Message:

Added ability to save logs, made ConverterOptions? static, improved logging

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/Makefile.am

    r94 r102  
    1515iriverter_source_files = \ 
    1616        org/thestaticvoid/iriverter/Logger.java \ 
     17        org/thestaticvoid/iriverter/LogViewer.java \ 
    1718        org/thestaticvoid/iriverter/DVD.java \ 
    1819        org/thestaticvoid/iriverter/SingleVideoAdapter.java \ 
     
    7172        org/thestaticvoid/iriverter/icons/home-24.png \ 
    7273        org/thestaticvoid/iriverter/icons/forward-24.png \ 
    73         org/thestaticvoid/iriverter/icons/singlevideo-16.png 
     74        org/thestaticvoid/iriverter/icons/singlevideo-16.png \ 
     75        org/thestaticvoid/iriverter/icons/save-24.png 
    7476 
    7577iriverter_resources = \ 
     
    116118        $(iriverter_source_files) \ 
    117119        $(iriverter_icons) \ 
     120        $(iriverter_resources) \ 
    118121        iriverter.desktop \ 
    119122        iriverter.ico \ 
  • trunk/src/org/thestaticvoid/iriverter/Converter.java

    r97 r102  
    77        private List jobs, notSplitVideos; 
    88        private ProgressDialogInfo progressDialogInfo; 
    9         private ConverterOptions converterOptions; 
    109        private Process proc; 
    1110        private boolean isCanceled; 
    1211        private int exitCode; 
    1312         
    14         public Converter(List jobs, ProgressDialogInfo progressDialogInfo, ConverterOptions converterOptions) { 
    15                 this.jobs = Converter.checkForOverwritingFiles(Converter.expandSingleJobsToMultiple(Converter.removeInvalidJobs(jobs, converterOptions), converterOptions)); 
     13        public Converter(List jobs, ProgressDialogInfo progressDialogInfo) { 
     14                this.jobs = Converter.checkForOverwritingFiles(Converter.expandSingleJobsToMultiple(Converter.removeInvalidJobs(jobs))); 
    1615                this.progressDialogInfo = progressDialogInfo; 
    17                 this.converterOptions = converterOptions; 
    1816                isCanceled = false; 
    1917                 
     
    2321        } 
    2422         
    25         public static List removeInvalidJobs(List jobs, ConverterOptions converterOptions) { 
     23        public static List removeInvalidJobs(List jobs) { 
    2624                List newJobs = new ArrayList(); 
    2725                 
     
    3432                                        continue; 
    3533                                 
    36                                 if (!outputVideoInfo.getOutputVideo().endsWith("." + converterOptions.getCurrentProfile().getWrapperFormat()) && !outputVideoInfo.getOutputVideo().equals("")) 
    37                                         outputVideoInfo.setOutputVideo(outputVideoInfo.getOutputVideo() + "." + converterOptions.getCurrentProfile().getWrapperFormat()); 
     34                                if (!outputVideoInfo.getOutputVideo().endsWith("." + ConverterOptions.getCurrentProfile().getWrapperFormat()) && !outputVideoInfo.getOutputVideo().equals("")) 
     35                                        outputVideoInfo.setOutputVideo(outputVideoInfo.getOutputVideo() + "." + ConverterOptions.getCurrentProfile().getWrapperFormat()); 
    3836                                 
    3937                                if (!new File(outputVideoInfo.getOutputVideo()).getParentFile().exists()) 
     
    7371        } 
    7472         
    75         public static List expandSingleJobsToMultiple(List jobs, ConverterOptions converterOptions) { 
     73        public static List expandSingleJobsToMultiple(List jobs) { 
    7674                List newJobs = new ArrayList(); 
    7775                 
    7876                for (int i = 0; i < jobs.size(); i++)    
    7977                        if (jobs.get(i) instanceof DirectoryInfo) 
    80                                 newJobs.addAll(convertDirectoryToSingleVideos((DirectoryInfo) jobs.get(i), converterOptions)); 
     78                                newJobs.addAll(convertDirectoryToSingleVideos((DirectoryInfo) jobs.get(i))); 
    8179                        else if (jobs.get(i) instanceof DVDInfo) 
    8280                                newJobs.addAll(separateDVDChaptersToSingleDVDJobs((DVDInfo) jobs.get(i))); 
     
    8987        } 
    9088         
    91         public static List convertDirectoryToSingleVideos(DirectoryInfo directoryInfo, ConverterOptions converterOptions) { 
     89        public static List convertDirectoryToSingleVideos(DirectoryInfo directoryInfo) { 
    9290                List newJobs = new ArrayList(); 
    9391                 
     
    9694                for (int i = 0; i < directory.length; i++) 
    9795                        if (new File(directoryInfo.getInputDirectory() + File.separator + directory[i]).isDirectory() && directoryInfo.getConvertSubdirectories()) 
    98                                 newJobs.addAll(convertDirectoryToSingleVideos(new DirectoryAdapter(directoryInfo.getInputDirectory() + File.separator + directory[i], directoryInfo.getOutputDirectory() + File.separator + directory[i], directoryInfo.getConvertSubdirectories()), converterOptions)); 
     96                                newJobs.addAll(convertDirectoryToSingleVideos(new DirectoryAdapter(directoryInfo.getInputDirectory() + File.separator + directory[i], directoryInfo.getOutputDirectory() + File.separator + directory[i], directoryInfo.getConvertSubdirectories()))); 
    9997                        else if (new File(directoryInfo.getInputDirectory() + File.separator + directory[i]).isFile()) 
    100                                 newJobs.add(new SingleVideoAdapter(directoryInfo.getInputDirectory() + File.separator + directory[i], directoryInfo.getOutputDirectory() + File.separator + directory[i].substring(0, directory[i].lastIndexOf('.')) + "." + converterOptions.getCurrentProfile().getProfileName() + ".avi")); 
     98                                newJobs.add(new SingleVideoAdapter(directoryInfo.getInputDirectory() + File.separator + directory[i], directoryInfo.getOutputDirectory() + File.separator + directory[i].substring(0, directory[i].lastIndexOf('.')) + "." + ConverterOptions.getCurrentProfile().getProfileName() + ".avi")); 
    10199                         
    102100                return newJobs; 
     
    183181                commandList.add(outputVideo); 
    184182                 
    185                 if (converterOptions.getCurrentProfile().getWrapperFormat().equals("mp4")) { 
     183                if (ConverterOptions.getCurrentProfile().getWrapperFormat().equals("mp4")) { 
    186184                        commandList.add("-of"); 
    187185                        commandList.add("lavf"); 
     
    191189                 
    192190                commandList.add("-ovc"); 
    193                 if (converterOptions.getCurrentProfile().getVideoFormat().equals("h264")) { 
     191                if (ConverterOptions.getCurrentProfile().getVideoFormat().equals("h264")) { 
    194192                        commandList.add("x264"); 
    195193                        commandList.add("-x264encopts"); 
    196                         commandList.add("bitrate=" + converterOptions.getVideoBitrate() + ":bframes=0:level_idc=13:nocabac"); 
     194                        commandList.add("bitrate=" + ConverterOptions.getVideoBitrate() + ":bframes=0:level_idc=13:nocabac"); 
    197195                } else { 
    198196                        commandList.add("xvid"); 
    199197                        commandList.add("-xvidencopts"); 
    200                         commandList.add("bitrate=" + converterOptions.getVideoBitrate() + ":max_bframes=0"); 
     198                        commandList.add("bitrate=" + ConverterOptions.getVideoBitrate() + ":max_bframes=0"); 
    201199                } 
    202200                 
    203201                commandList.add("-oac"); 
    204                 if (converterOptions.getCurrentProfile().getAudioFormat().equals("aac")) { 
     202                if (ConverterOptions.getCurrentProfile().getAudioFormat().equals("aac")) { 
    205203                        commandList.add("faac"); 
    206204                        commandList.add("-faacopts"); 
    207                         commandList.add("br=" + converterOptions.getAudioBitrate() + ":object=1"); 
     205                        commandList.add("br=" + ConverterOptions.getAudioBitrate() + ":object=1"); 
    208206                } else { 
    209207                        commandList.add("mp3lame"); 
    210208                        commandList.add("-lameopts"); 
    211                         commandList.add("mode=2:cbr:br=" + converterOptions.getAudioBitrate()); 
    212                 } 
    213                  
    214                 double ofps = (info.getFrameRate() > converterOptions.getCurrentProfile().getMaxFrameRate() ? converterOptions.getCurrentProfile().getMaxFrameRate() : info.getFrameRate()); 
     209                        commandList.add("mode=2:cbr:br=" + ConverterOptions.getAudioBitrate()); 
     210                } 
     211                 
     212                double ofps = (info.getFrameRate() > ConverterOptions.getCurrentProfile().getMaxFrameRate() ? ConverterOptions.getCurrentProfile().getMaxFrameRate() : info.getFrameRate()); 
    215213                commandList.add("-vf"); 
    216214                commandList.add("filmdint=io=" + ((int) Math.round(info.getFrameRate() * 1000)) + ":" + ((int) Math.round(ofps * 1000))); 
    217215                 
    218                 int scaledWidth = converterOptions.getDimensions().getWidth(); 
    219                 int scaledHeight = (info.getDimensions().getHeight() * converterOptions.getDimensions().getWidth()) / info.getDimensions().getWidth(); 
    220                  
    221                 if (scaledHeight > converterOptions.getDimensions().getHeight()) { 
    222                         scaledWidth = (scaledWidth * converterOptions.getDimensions().getHeight()) / scaledHeight; 
    223                         scaledHeight = converterOptions.getDimensions().getHeight(); 
     216                int scaledWidth = ConverterOptions.getDimensions().getWidth(); 
     217                int scaledHeight = (info.getDimensions().getHeight() * ConverterOptions.getDimensions().getWidth()) / info.getDimensions().getWidth(); 
     218                 
     219                if (scaledHeight > ConverterOptions.getDimensions().getHeight()) { 
     220                        scaledWidth = (scaledWidth * ConverterOptions.getDimensions().getHeight()) / scaledHeight; 
     221                        scaledHeight = ConverterOptions.getDimensions().getHeight(); 
    224222                } 
    225223                 
    226224                commandList.add("-vf-add"); 
    227                 if (converterOptions.getPanAndScan()) 
    228                         commandList.add("scale=" + ((int) ((info.getDimensions().getWidth()) * (((double) converterOptions.getDimensions().getHeight()) / (double) info.getDimensions().getHeight()))) + ":" + converterOptions.getDimensions().getHeight() + ",crop=" + converterOptions.getDimensions().getWidth() + ":" + converterOptions.getDimensions().getHeight()); 
     225                if (ConverterOptions.getPanAndScan()) 
     226                        commandList.add("scale=" + ((int) ((info.getDimensions().getWidth()) * (((double) ConverterOptions.getDimensions().getHeight()) / (double) info.getDimensions().getHeight()))) + ":" + ConverterOptions.getDimensions().getHeight() + ",crop=" + ConverterOptions.getDimensions().getWidth() + ":" + ConverterOptions.getDimensions().getHeight()); 
    229227                else 
    230                         commandList.add("scale=" + scaledWidth + ":" + scaledHeight + ",expand=" + converterOptions.getDimensions().getWidth() + ":" + converterOptions.getDimensions().getHeight()); 
     228                        commandList.add("scale=" + scaledWidth + ":" + scaledHeight + ",expand=" + ConverterOptions.getDimensions().getWidth() + ":" + ConverterOptions.getDimensions().getHeight()); 
    231229                 
    232230                commandList.add("-vf-add"); 
    233231                commandList.add("harddup"); 
    234232                 
    235                 if (converterOptions.getVolumeFilter() == VolumeFilter.VOLNORM) { 
     233                if (ConverterOptions.getVolumeFilter() == VolumeFilter.VOLNORM) { 
    236234                        commandList.add("-af"); 
    237235                        commandList.add("volnorm"); 
    238                 } else if (converterOptions.getVolumeFilter() == VolumeFilter.VOLUME) { 
     236                } else if (ConverterOptions.getVolumeFilter() == VolumeFilter.VOLUME) { 
    239237                        commandList.add("-af"); 
    240                         commandList.add("volume=" + converterOptions.getGain()); 
     238                        commandList.add("volume=" + ConverterOptions.getGain()); 
    241239                } 
    242240                 
     
    246244                commandList.add("44100"); 
    247245                 
    248                 if (!converterOptions.getAutoSync()) { 
     246                if (!ConverterOptions.getAutoSync()) { 
    249247                        commandList.add("-delay"); 
    250                         commandList.add("" + (converterOptions.getAudioDelay() / 1000.0)); 
     248                        commandList.add("" + (ConverterOptions.getAudioDelay() / 1000.0)); 
    251249                } 
    252250                 
     
    427425         
    428426        public void splitVideo(String inputVideo, int length) { 
    429                 if (length < converterOptions.getSplitTime() * 60) 
     427                if (length < ConverterOptions.getSplitTime() * 60) 
    430428                        return; 
    431429                 
    432                 if (!converterOptions.getAutoSplit()) { 
     430                if (!ConverterOptions.getAutoSplit()) { 
    433431                        notSplitVideos.add(inputVideo); 
    434432                        return; 
    435433                } 
    436434                 
    437                 int pieces = (length / (converterOptions.getSplitTime() * 60)) + 1; 
     435                int pieces = (length / (ConverterOptions.getSplitTime() * 60)) + 1; 
    438436                for (int i = 0; i < pieces; i++) { 
    439437                        String outputVideo = inputVideo.substring(0, inputVideo.lastIndexOf('.')) + ".part" + (i + 1) + ".avi"; 
  • trunk/src/org/thestaticvoid/iriverter/ConverterOptions.java

    r81 r102  
    44 
    55public class ConverterOptions { 
    6         private File optionsFile; 
    7  
    8         public ConverterOptions(File optionsFile) { 
    9                 this.optionsFile = optionsFile; 
     6        private static File optionsFile = new File(System.getProperty("user.home") + File.separator + ".iriverter.conf"); 
     7         
     8        public static String getOptionsText() { 
     9                BufferedReader input = null; 
     10                try { 
     11                        input = new BufferedReader(new FileReader(optionsFile)); 
     12                } catch (IOException e) { 
     13                        // empty 
     14                } 
     15                 
     16                String text = ""; 
     17                if (input != null) { 
     18                        try { 
     19                                String line; 
     20                                while ((line = input.readLine()) != null) 
     21                                        text += line + "\n"; 
     22                        } catch (IOException e) { 
     23                                e.printStackTrace(); 
     24                        } 
     25                } 
     26                 
     27                return text; 
    1028        } 
    1129 
    12         public void writeOption(String option, String setting) { 
     30        public static void writeOption(String option, String setting) { 
    1331                try { 
     32                        Logger.logMessage("Setting: " + option + "=" + setting, Logger.INFO); 
     33                         
    1434                        if (!optionsFile.exists()) 
    1535                                optionsFile.createNewFile(); 
     
    4262        } 
    4363 
    44         public String readOption(String option) { 
     64        public static String readOption(String option) { 
    4565                String returnSetting = ""; 
    4666 
     
    6181        } 
    6282 
    63         public void setCurrentProfile(Profile profile) { 
     83        public static void setCurrentProfile(Profile profile) { 
    6484                writeOption("currentProfile", profile.getProfileName()); 
    6585                writeOption("videoBitrate", ""); 
     
    7191        } 
    7292 
    73         public Profile getCurrentProfile() { 
     93        public static Profile getCurrentProfile() { 
    7494                String currentProfile = readOption("currentProfile"); 
    7595                if (currentProfile.equals("")) 
     
    7999        } 
    80100         
    81         public boolean getPanAndScan() { 
     101        public static boolean getPanAndScan() { 
    82102                String panAndScan = readOption("panAndScan"); 
    83103                if (panAndScan.equals("")) 
     
    87107        } 
    88108         
    89         public int getVideoBitrate() { 
     109        public static int getVideoBitrate() { 
    90110                String videoBitrate = readOption("videoBitrate"); 
    91111                if (videoBitrate.equals("")) 
     
    95115        } 
    96116         
    97         public int getAudioBitrate() { 
     117        public static int getAudioBitrate() { 
    98118                String audioBitrate = readOption("audioBitrate"); 
    99119                if (audioBitrate.equals("")) 
     
    103123        } 
    104124 
    105         public Dimensions getDimensions() { 
     125        public static Dimensions getDimensions() { 
    106126                String dimensions = readOption("dimensions"); 
    107127                if (dimensions.equals("")) 
     
    111131        } 
    112132         
    113         public boolean getAutoSync() { 
     133        public static boolean getAutoSync() { 
    114134                String autoSync = readOption("autoSync"); 
    115135                if (autoSync.equals("")) 
     
    119139        } 
    120140         
    121         public int getAudioDelay() { 
     141        public static int getAudioDelay() { 
    122142                String audioDelay = readOption("audioDelay"); 
    123143                if (audioDelay.equals("")) 
     
    127147        } 
    128148         
    129         public boolean getAutoSplit() { 
     149        public static boolean getAutoSplit() { 
    130150                String autoSplit = readOption("autoSplit"); 
    131151                if (autoSplit.equals("")) 
     
    135155        } 
    136156         
    137         public int getSplitTime() { 
     157        public static int getSplitTime() { 
    138158                String splitTime = readOption("splitTime"); 
    139159                if (splitTime.equals("")) 
     
    143163        } 
    144164         
    145         public int getVolumeFilter() { 
     165        public static int getVolumeFilter() { 
    146166                String volumeFilter = readOption("volumeFilter"); 
    147167                if (volumeFilter.equals("") || volumeFilter.equals("none")) 
     
    153173        } 
    154174         
    155         public double getGain() { 
     175        public static double getGain() { 
    156176                String gain = readOption("gain"); 
    157177                if (gain.equals("")) 
  • trunk/src/org/thestaticvoid/iriverter/ConverterUI.java

    r98 r102  
    1313 
    1414public class ConverterUI implements SelectionListener, CTabFolder2Listener, DropTargetListener { 
    15         private ConverterOptions converterOptions; 
    1615        private Display display; 
    1716        private Shell shell; 
     
    2625        private ProgressDialog progressDialog; 
    2726         
    28         public ConverterUI() { 
    29                 converterOptions = new ConverterOptions(new File(System.getProperty("user.home") + File.separator + ".iriverter.conf")); 
    30                  
     27        public ConverterUI() {           
    3128                display = new Display(); 
    3229                 
     
    112109                advancedJobs.setText("&Advanced"); 
    113110 
    114                 advancedJobs.setEnabled(converterOptions.getCurrentProfile().getWrapperFormat().equals("avi")); 
     111                advancedJobs.setEnabled(ConverterOptions.getCurrentProfile().getWrapperFormat().equals("avi")); 
    115112                 
    116113                Menu advancedJobsMenu = new Menu(shell, SWT.DROP_DOWN); 
     
    172169                profileMenuItems = new HashMap(); 
    173170                Profile[] profiles = Profile.getAllProfiles(); 
    174                 Profile currentProfile = converterOptions.getCurrentProfile(); 
     171                Profile currentProfile = ConverterOptions.getCurrentProfile(); 
    175172                 
    176173                Map deviceToProfile = new HashMap(); 
     
    231228                panAndScan.setText("&Pan and Scan\tShift+Ctrl+P"); 
    232229                panAndScan.setAccelerator(SWT.SHIFT + SWT.CTRL + 'P'); 
    233                 panAndScan.setSelection(converterOptions.getPanAndScan()); 
     230                panAndScan.setSelection(ConverterOptions.getPanAndScan()); 
    234231                panAndScan.addSelectionListener(this); 
    235232                 
     
    248245                automaticallySplit.addSelectionListener(this); 
    249246                 
    250                 automaticallySplit.setEnabled(converterOptions.getCurrentProfile().getWrapperFormat().equals("avi")); 
     247                automaticallySplit.setEnabled(ConverterOptions.getCurrentProfile().getWrapperFormat().equals("avi")); 
    251248                 
    252249                volume = new MenuItem(advancedOptionsMenu, SWT.PUSH); 
     
    309306                newDVDTool.addSelectionListener(this); 
    310307        } 
    311          
     308 
    312309        public void widgetDefaultSelected(SelectionEvent e) { 
    313310                // empty 
     
    324321                         
    325322                        progressDialog = new ProgressDialog(shell, SWT.NONE); 
    326                         Converter converter = new Converter(jobs, progressDialog, converterOptions); 
     323                        Converter converter = new Converter(jobs, progressDialog); 
    327324                        converter.start(); 
    328325                        progressDialog.open(); 
     
    415412                        String selectedProfileName = (String) profileMenuItems.get(selectedMenuItem); 
    416413                         
    417                         if (selectedProfileName.equals(converterOptions.getCurrentProfile().getProfileName())) 
     414                        if (selectedProfileName.equals(ConverterOptions.getCurrentProfile().getProfileName())) 
    418415                                return; 
    419416                         
     
    422419                        selectedMenuItem.setSelection(true); 
    423420                         
    424                         converterOptions.setCurrentProfile(Profile.getProfile(selectedProfileName)); 
     421                        ConverterOptions.setCurrentProfile(Profile.getProfile(selectedProfileName)); 
    425422                        profileChanged(); 
    426423                } 
    427424                 
    428425                if (e.getSource() == bitrate) { 
    429                         BitrateDialog bitrateDialog = new BitrateDialog(shell, SWT.NONE, new Bitrate(converterOptions.getCurrentProfile().getMaxVideoBitrate(), converterOptions.getCurrentProfile().getMaxAudioBitrate()), new Bitrate(converterOptions.getVideoBitrate(), converterOptions.getAudioBitrate())); 
     426                        BitrateDialog bitrateDialog = new BitrateDialog(shell, SWT.NONE, new Bitrate(ConverterOptions.getCurrentProfile().getMaxVideoBitrate(), ConverterOptions.getCurrentProfile().getMaxAudioBitrate()), new Bitrate(ConverterOptions.getVideoBitrate(), ConverterOptions.getAudioBitrate())); 
    430427                        Bitrate newBitrate = bitrateDialog.open(); 
    431                         converterOptions.writeOption("videoBitrate", "" + newBitrate.getVideo()); 
    432                         converterOptions.writeOption("audioBitrate", "" + newBitrate.getAudio()); 
     428                        ConverterOptions.writeOption("videoBitrate", "" + newBitrate.getVideo()); 
     429                        ConverterOptions.writeOption("audioBitrate", "" + newBitrate.getAudio()); 
    433430                } 
    434431 
     
    438435                 
    439436                if (e.getSource() == panAndScan) 
    440                         converterOptions.writeOption("panAndScan", "" + panAndScan.getSelection()); 
     437                        ConverterOptions.writeOption("panAndScan", "" + panAndScan.getSelection()); 
    441438                 
    442439                if (e.getSource() == audioSync) { 
    443                         int audioDelay = new AudioSyncDialog(shell, SWT.NONE, (converterOptions.getAutoSync()) ? AudioSyncDialog.AUTO_SYNC : converterOptions.getAudioDelay()).open(); 
     440                        int audioDelay = new AudioSyncDialog(shell, SWT.NONE, (ConverterOptions.getAutoSync()) ? AudioSyncDialog.AUTO_SYNC : ConverterOptions.getAudioDelay()).open(); 
    444441                         
    445442                        if (audioDelay == AudioSyncDialog.AUTO_SYNC) { 
    446                                 converterOptions.writeOption("autoSync", "true"); 
    447                                 converterOptions.writeOption("audioDelay", "0"); 
     443                                ConverterOptions.writeOption("autoSync", "true"); 
     444                                ConverterOptions.writeOption("audioDelay", "0"); 
    448445                        } else { 
    449                                 converterOptions.writeOption("autoSync", "false"); 
    450                                 converterOptions.writeOption("audioDelay", "" + audioDelay); 
     446                                ConverterOptions.writeOption("autoSync", "false"); 
     447                                ConverterOptions.writeOption("audioDelay", "" + audioDelay); 
    451448                        } 
    452449                } 
    453450                 
    454451                if (e.getSource() == automaticallySplit) { 
    455                         int splitTime = new AutomaticallySplitDialog(shell, SWT.NONE, converterOptions.getAutoSplit(), converterOptions.getSplitTime()).open(); 
     452                        int splitTime = new AutomaticallySplitDialog(shell, SWT.NONE, ConverterOptions.getAutoSplit(), ConverterOptions.getSplitTime()).open(); 
    456453                         
    457454                        if (splitTime == AutomaticallySplitDialog.NO_SPLIT) 
    458                                 converterOptions.writeOption("autoSplit", "false"); 
     455                                ConverterOptions.writeOption("autoSplit", "false"); 
    459456                        else { 
    460                                 converterOptions.writeOption("autoSplit", "true"); 
    461                                 converterOptions.writeOption("splitTime", "" + splitTime); 
     457                                ConverterOptions.writeOption("autoSplit", "true"); 
     458                                ConverterOptions.writeOption("splitTime", "" + splitTime); 
    462459                        } 
    463460                } 
    464461                 
    465462                if (e.getSource() == volume) { 
    466                         double volume = new VolumeDialog(shell, SWT.NONE, converterOptions.getVolumeFilter(), converterOptions.getGain()).open(); 
     463                        double volume = new VolumeDialog(shell, SWT.NONE, ConverterOptions.getVolumeFilter(), ConverterOptions.getGain()).open(); 
    467464                         
    468465                        if (volume == VolumeDialog.NONE) 
    469                                 converterOptions.writeOption("volumeFilter", "none"); 
     466                                ConverterOptions.writeOption("volumeFilter", "none"); 
    470467                        else if (volume == VolumeDialog.VOLNORM) 
    471                                 converterOptions.writeOption("volumeFilter", "volnorm"); 
     468                                ConverterOptions.writeOption("volumeFilter", "volnorm"); 
    472469                        else { 
    473                                 converterOptions.writeOption("volumeFilter", "volume"); 
    474                                 converterOptions.writeOption("gain", "" + volume); 
     470                                ConverterOptions.writeOption("volumeFilter", "volume"); 
     471                                ConverterOptions.writeOption("gain", "" + volume); 
    475472                        } 
    476473                } 
     
    503500                dimensionsMenuItems.clear(); 
    504501                 
    505                 Dimensions[] dimensions = converterOptions.getCurrentProfile().getDimensions(); 
    506                 Dimensions currentDimensions = converterOptions.getDimensions(); 
     502                Dimensions[] dimensions = ConverterOptions.getCurrentProfile().getDimensions(); 
     503                Dimensions currentDimensions = ConverterOptions.getDimensions(); 
    507504 
    508505                for (int i = 0; i < dimensions.length; i++) { 
     
    515512                } 
    516513                 
    517                 advancedJobs.setEnabled(converterOptions.getCurrentProfile().getWrapperFormat().equals("avi")); 
    518                 automaticallySplit.setEnabled(converterOptions.getCurrentProfile().getWrapperFormat().equals("avi")); 
     514                advancedJobs.setEnabled(ConverterOptions.getCurrentProfile().getWrapperFormat().equals("avi")); 
     515                automaticallySplit.setEnabled(ConverterOptions.getCurrentProfile().getWrapperFormat().equals("avi")); 
    519516        } 
    520517         
     
    606603        private SingleVideo newSingleVideo() { 
    607604                CTabItem tabItem = new CTabItem(tabFolder, SWT.NONE); 
    608                 SingleVideo singleVideo = new SingleVideo(tabFolder, SWT.NONE, tabItem, converterOptions); 
     605                SingleVideo singleVideo = new SingleVideo(tabFolder, SWT.NONE, tabItem); 
    609606                tabItem.setControl(singleVideo); 
    610607                tabFolder.setSelection(tabItem); 
     
    616613        private Directory newDirectory() { 
    617614                CTabItem tabItem = new CTabItem(tabFolder, SWT.NONE); 
    618                 Directory directory = new Directory(tabFolder, SWT.NONE, tabItem, converterOptions); 
     615                Directory directory = new Directory(tabFolder, SWT.NONE, tabItem); 
    619616                tabItem.setControl(directory); 
    620617                tabFolder.setSelection(tabItem); 
     
    631628                 
    632629                CTabItem tabItem = new CTabItem(tabFolder, SWT.NONE); 
    633                 DVD dvd = new DVD(tabFolder, SWT.NONE, tabItem, converterOptions); 
     630                DVD dvd = new DVD(tabFolder, SWT.NONE, tabItem); 
    634631                tabItem.setControl(dvd); 
    635632                tabFolder.setSelection(tabItem); 
     
    647644        private ManualSplit newManualSplit() { 
    648645                CTabItem tabItem = new CTabItem(tabFolder, SWT.NONE); 
    649                 ManualSplit manualSplit = new ManualSplit(tabFolder, SWT.NONE, tabItem, converterOptions); 
     646                ManualSplit manualSplit = new ManualSplit(tabFolder, SWT.NONE, tabItem); 
    650647                tabItem.setControl(manualSplit); 
    651648                tabFolder.setSelection(tabItem); 
     
    657654        private JoinVideos newJoinVideos() { 
    658655                CTabItem tabItem = new CTabItem(tabFolder, SWT.NONE); 
    659                 JoinVideos joinVideos = new JoinVideos(tabFolder, SWT.NONE, tabItem, converterOptions); 
     656                JoinVideos joinVideos = new JoinVideos(tabFolder, SWT.NONE, tabItem); 
    660657                tabItem.setControl(joinVideos); 
    661658                tabFolder.setSelection(tabItem); 
     
    667664        public static void main(String[] args) { 
    668665                try { 
    669                         ConverterUI ui = new ConverterUI(); 
     666                        new ConverterUI(); 
    670667                } catch (Throwable t) { 
    671                         String message = "An unhandled exception occured: " + t.getMessage() + "\n\n"; 
     668                        String message = "An unhandled exception occured: " + t.getClass() + "\n" + t.getMessage() + "\n\n"; 
    672669                        StackTraceElement[] st = t.getStackTrace(); 
    673670                        for (int i = 0; i < st.length; i++) 
     
    678675                        MessageBox messageBox = new MessageBox(new Shell(Display.getDefault()), SWT.ICON_ERROR | SWT.OK); 
    679676                        messageBox.setText("Error"); 
    680                         messageBox.setMessage("An unhandled exception occured.  Please see the log for details."); 
     677                        messageBox.setMessage("An unhandled exception occured.  The program will close.  Please see the log for details."); 
    681678                        messageBox.open(); 
    682679                } 
  • trunk/src/org/thestaticvoid/iriverter/DVD.java

    r88 r102  
    1313public class DVD extends Composite implements SelectionListener, TabItemControl, DVDInfo { 
    1414        private CTabItem tabItem; 
    15         private ConverterOptions converterOptions; 
    1615        private Combo dvdCombo, titleCombo, audioStreamCombo, subtitlesCombo; 
    1716        private Map titleInfo, audioStreams, subtitles; 
     
    2423        private Process proc; 
    2524         
    26         public DVD(Composite parent, int style, CTabItem tabItem, ConverterOptions converterOptions) { 
     25        public DVD(Composite parent, int style, CTabItem tabItem) { 
    2726                super(parent, style); 
    2827                this.tabItem = tabItem; 
    29                 this.converterOptions = converterOptions; 
    3028                 
    3129                titleInfo = new LinkedHashMap(); 
     
    214212                                        } 
    215213                         
     214                                        String commandStr = ""; 
    216215                                        String[] command = new String[commandList.size()]; 
    217                                         for (int i = 0; i < command.length; i++) 
     216                                        for (int i = 0; i < command.length; i++) { 
    218217                                                command[i] = (String) commandList.get(i); 
     218                                                commandStr += command[i] + " "; 
     219                                        } 
     220                                        Logger.logMessage(commandStr, Logger.INFO); 
    219221                                         
    220222                                        proc = Runtime.getRuntime().exec(command); 
     
    228230                        FileDialog fileDialog = new FileDialog(getShell(), SWT.SAVE); 
    229231                        fileDialog.setText("Output Video"); 
    230                         if (converterOptions.getCurrentProfile().getWrapperFormat().equals("mp4")) { 
     232                        if (ConverterOptions.getCurrentProfile().getWrapperFormat().equals("mp4")) { 
    231233                                fileDialog.setFilterExtensions(new String[]{"*.mp4"}); 
    232234                                fileDialog.setFilterNames(new String[]{"MP4 Video (*.mp4)"}); 
  • trunk/src/org/thestaticvoid/iriverter/Directory.java

    r32 r102  
    1212public class Directory extends Composite implements SelectionListener, TabItemControl, DirectoryInfo { 
    1313        private CTabItem tabItem; 
    14         private ConverterOptions converterOptions; 
    1514        private Text inputDirectoryInput, outputDirectoryInput; 
    1615        private Button inputDirectorySelect, outputDirectorySelect, convertSubdirectories; 
     
    1817        private boolean syncConvertSubdirectories; 
    1918         
    20         public Directory(Composite parent, int style, CTabItem tabItem, ConverterOptions converterOptions) { 
     19        public Directory(Composite parent, int style, CTabItem tabItem) { 
    2120                super(parent, style); 
    2221                this.tabItem = tabItem; 
    23                 this.converterOptions = converterOptions; 
    2422                 
    2523                InputStream is = getClass().getResourceAsStream("icons/directory-16.png"); 
     
    8179                tab.setText("\t"); */ 
    8280                 
    83                 Label emptyLabel = new Label(this, SWT.NONE); 
     81                new Label(this, SWT.NONE); 
    8482                 
    8583                convertSubdirectories = new Button(this, SWT.CHECK); 
     
    10199                        if (directory != null) { 
    102100                                inputDirectoryInput.setText(directory); 
    103                                 outputDirectoryInput.setText(directory + "-" + converterOptions.getCurrentProfile().getProfileName()); 
     101                                outputDirectoryInput.setText(directory + "-" + ConverterOptions.getCurrentProfile().getProfileName()); 
    104102                                tabItem.setText(new File(directory).getName()); 
    105103                        } 
     
    123121                 
    124122                inputDirectoryInput.setText(directory); 
    125                 outputDirectoryInput.setText(directory + "-" + converterOptions.getCurrentProfile().getProfileName()); 
     123                outputDirectoryInput.setText(directory + "-" + ConverterOptions.getCurrentProfile().getProfileName()); 
    126124        } 
    127125         
  • trunk/src/org/thestaticvoid/iriverter/JoinVideos.java

    r32 r102  
    1212public class JoinVideos extends Composite implements SelectionListener, TabItemControl, JoinVideosInfo {         
    1313        private CTabItem tabItem; 
    14         private ConverterOptions converterOptions; 
    1514        private java.util.List inputVideos; 
    1615        private List videosList; 
     
    1918        private String syncOutputVideo; 
    2019         
    21         public JoinVideos(Composite parent, int style, CTabItem tabItem, ConverterOptions converterOptions) { 
     20        public JoinVideos(Composite parent, int style, CTabItem tabItem) { 
    2221                super(parent, style); 
    2322                this.tabItem = tabItem; 
    24                 this.converterOptions = converterOptions; 
    2523                inputVideos = new java.util.ArrayList(); 
    2624                 
  • trunk/src/org/thestaticvoid/iriverter/LogViewer.java

    r99 r102  
    11package org.thestaticvoid.iriverter; 
    22 
     3import java.io.*; 
    34import java.util.*; 
    45 
     
    1011import org.eclipse.swt.custom.*; 
    1112 
    12 public class LogViewer
     13public class LogViewer implements SelectionListener
    1314        private static LogViewer singleton; 
    1415        private Shell shell; 
     16        private ToolItem save; 
    1517        private StyledText text; 
    1618        private java.util.List lineColors; 
     
    2729                shell.setText("Log Viewer"); 
    2830                shell.setLayout(new GridLayout()); 
     31                 
     32                ToolBar toolBar = new ToolBar(shell, SWT.HORIZONTAL | SWT.FLAT); 
     33                 
     34                save = new ToolItem(toolBar, SWT.PUSH); 
     35                InputStream is = getClass().getResourceAsStream("icons/save-24.png"); 
     36                save.setImage(new Image(display, is)); 
     37                save.addSelectionListener(this); 
    2938                 
    3039                text = new StyledText(shell, SWT.BORDER | SWT.WRAP | SWT.V_SCROLL | SWT.READ_ONLY); 
     
    4857        } 
    4958         
     59        public void widgetDefaultSelected(SelectionEvent e) { 
     60                // empty 
     61        } 
     62         
     63        public void widgetSelected(SelectionEvent e) { 
     64                if (e.getSource() == save) { 
     65                        FileDialog fileDialog = new FileDialog(getShell(), SWT.SAVE); 
     66                        fileDialog.setText("Output Video"); 
     67                        fileDialog.setFilterExtensions(new String[]{"*.txt"}); 
     68                        fileDialog.setFilterNames(new String[]{"Text Files (*.txt)"}); 
     69                        String file = fileDialog.open(); 
     70