/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.demo.morenasaneservice;
import SK.gnome.morena.MorenaSource;
import SK.gnome.sane.SaneConnection;
import SK.gnome.sane.SaneException;
import SK.gnome.sane.SaneSource;
import SK.gnome.twain.TwainException;
import SK.gnome.twain.TwainManager;
import SK.gnome.twain.TwainSource;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.event.EventListenerList;
import org.demo.morena.MorenaScanner;
import org.demo.scannerservice.Parameters;
import org.demo.scannerservice.Scanner;
import org.demo.scannerservice.ScannerManager;
import org.demo.scannerservice.ScannerListener;
/**
*
* @author ECO
*/
public class MorenaSaneManager implements ScannerManager {
private final EventListenerList listeners = new EventListenerList();
@Override
public void addListener(ScannerListener listener) {
listeners.add(ScannerListener.class, listener);
}
@Override
public void removeListener(ScannerListener listener) {
listeners.remove(ScannerListener.class, listener);
}
@Override
public void acquire() {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setConfiguration(Parameters cfg) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public Parameters getConfiguration() {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public String getDescription() {
return "Morena Sane Manager";
}
@Override
public String toString() {
return getDescription();
}
@Override
public Collection<Scanner> getListDevices() {
Collection<Scanner> result = new ArrayList<Scanner>();
try {
SaneConnection conn = SaneConnection.connect("localhost");
SaneSource[] listSources = conn.listSources();
for (MorenaSource src : listSources) {
result.add(new MorenaScanner(src));
}
} catch (SaneException ex) {
Logger.getLogger(MorenaSaneManager.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(MorenaSaneManager.class.getName()).log(Level.SEVERE, null, ex);
}
return result;
}
}