Adds a new class for handling converter profiles
This commit is contained in:
		@@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					package net.knarcraft.ffmpegconverter.converter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import net.knarcraft.ffmpegconverter.utility.FileUtil;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.Set;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * The ConverterProfiles class is responsible for loading and retrieving settings for a converter
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class ConverterProfiles {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private Map<String, Map<String, String>> loadedProfiles;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Instantiates a new converter profiles object
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public ConverterProfiles() {
 | 
				
			||||||
 | 
					        loadedProfiles = new HashMap<>();
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            loadProfiles();
 | 
				
			||||||
 | 
					        } catch (IOException e) {
 | 
				
			||||||
 | 
					            e.printStackTrace();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Gets all available converter profiles as a set
 | 
				
			||||||
 | 
					     * @return <p>A set of all loaded converter profiles.</p>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public Set<String> getProfiles() {
 | 
				
			||||||
 | 
					        return loadedProfiles.keySet();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Gets all profile settings for the given converter profile
 | 
				
			||||||
 | 
					     * @param profileName <p>The name of the converter profile to get settings for.</p>
 | 
				
			||||||
 | 
					     * @return <p>Settings for the converter profile.</p>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public Map<String, String> getProfileSettings(String profileName) {
 | 
				
			||||||
 | 
					        return loadedProfiles.get(profileName);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Loads all converter profiles
 | 
				
			||||||
 | 
					     * @throws IOException <p>If unable to read the converter profiles file.</p>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private void loadProfiles() throws IOException {
 | 
				
			||||||
 | 
					        String[] profiles = FileUtil.readFileLines("converter_profiles.txt");
 | 
				
			||||||
 | 
					        for (String profile : profiles) {
 | 
				
			||||||
 | 
					            Map<String, String> profileSettings = new HashMap<>();
 | 
				
			||||||
 | 
					            String[] settings = profile.split("\\|");
 | 
				
			||||||
 | 
					            String profileName = settings[0];
 | 
				
			||||||
 | 
					            for (int i = 1; i < settings.length; i++) {
 | 
				
			||||||
 | 
					                String[] settingParts = settings[i].split(":");
 | 
				
			||||||
 | 
					                profileSettings.put(settingParts[0], settingParts[1]);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            loadedProfiles.put(profileName, profileSettings);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user