public void Disconnect() { if (jr != null) { Marshal.FinalReleaseComObject(jr); } jr = null; }
public bool Connect() { Logger.Log("Connecting to JRiver"); Connected = CheckConnection(); if (Connected) { return(true); } try { // connect to existing instance Logger.Log("Connect: getting existing MediaCenter instance"); jr = (IMJAutomation)Marshal.GetActiveObject("MediaJukebox Application"); Connected = CheckConnection(); if (Connected) { return(true); } else { Logger.Log("Connect to existing instance failed!"); } } catch { Logger.Log("JRiverAPI.Connect() - MediaCenter is probably not running"); } try { Logger.Log("Connect: creating new MediaCenter instance"); jr = new MCAutomation(); Connected = CheckConnection(); if (!Connected) { Logger.Log("Connect via MCAutomation object failed!"); } } catch (Exception ex) { Logger.Log(ex, "JRiverAPI.Connect() - failed to create new instance"); } return(Connected); }