// Remote // // Douglas // // Remote.java /* Copyright 2011 Douglas Thrift * * This file is part of Big Screen Bot. * * Big Screen Bot is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Big Screen Bot is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Big Screen Bot. If not, see . */ package net.douglasthrift.bigscreenbot; import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.List; import javax.jmdns.JmDNS; import javax.jmdns.ServiceInfo; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.KeyManager; import javax.net.ssl.KeyManagerFactory; import com.google.anymote.common.AnymoteFactory; import com.google.anymote.common.ErrorListener; import com.google.anymote.device.DeviceAdapter; import com.google.anymote.device.MessageReceiver; import com.google.polo.ssl.DummySSLSocketFactory; public class Remote { private static final String TYPE = "_anymote._tcp.local."; private Settings settings; private JmDNS mdns; public Remote(Settings settings) throws UnknownHostException, IOException { this.settings = settings; String interfaze = settings.getProperty("interface"); if (interfaze != null) mdns = JmDNS.create(InetAddress.getByName(interfaze)); else mdns = JmDNS.create(); } public List listDevices() { List devices = new ArrayList(); for (ServiceInfo info : mdns.list(TYPE)) devices.add(info.getName()); return devices; } public void beginPairDevice(String device) throws NoSuchAlgorithmException, KeyManagementException { ServiceInfo info = mdns.getServiceInfo(TYPE, device); InetAddress address = info.getInetAddresses()[0]; int port = info.getPort(); SSLSocketFactory factory = DummySSLSocketFactory.fromKeyManagers(getKeyManagers()); } @Override protected void finalize() throws IOException { mdns.close(); } private KeyManager[] getKeyManagers() throws NoSuchAlgorithmException { KeyManagerFactory factory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); //factory.init(store, "".toCharArray()); return factory.getKeyManagers(); } } // vim: expandtab