package ctbrec.ui.sites.fc2live; import java.io.IOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ctbrec.Model; import ctbrec.sites.ConfigUI; import ctbrec.sites.fc2live.Fc2Live; import ctbrec.sites.fc2live.Fc2Model; import ctbrec.ui.Player; import ctbrec.ui.TabProvider; import ctbrec.ui.sites.AbstractSiteUi; public class Fc2LiveSiteUi extends AbstractSiteUi { private static final transient Logger LOG = LoggerFactory.getLogger(Fc2LiveSiteUi.class); private Fc2Live fc2live; private Fc2TabProvider tabProvider; public Fc2LiveSiteUi(Fc2Live fc2live) { this.fc2live = fc2live; this.tabProvider = new Fc2TabProvider(fc2live); } @Override public TabProvider getTabProvider() { return tabProvider; } @Override public ConfigUI getConfigUI() { return null; } @Override public boolean login() throws IOException { return false; } @Override public boolean play(Model model) { new Thread(() -> { Fc2Model m = (Fc2Model) model; try { boolean opened = m.openWebsocket(); if(opened) { LOG.debug("Opened new websocket for player"); } else { LOG.debug("Using existing websocket for player"); } LOG.debug("Starting player"); Player.play(model, false); if(opened) { LOG.debug("Closing websocket for player"); m.closeWebsocket(); } else { LOG.debug("Leaving websocket for player open"); } } catch (InterruptedException | IOException e) { LOG.error("Error opening websocket connection", e); } }).start(); return true; } }