Example #1
0
    public bool startProducer(IVoiceTarget targetManager)
    {
        if (OperatingSystem.IsWindows())
        {
            informChannel(Ts3Client, "Windows Version");

            Task.Factory.StartNew(() =>
            {
                //Starting a Task bc WaitForConnection blocks execution

                var stream = new NamedPipeServerStream(spotifyPluginConfig.getPipeName(), PipeDirection.In, 1, PipeTransmissionMode.Byte, PipeOptions.None);
                stream.WaitForConnection();
                producer = new SpotifyStreamAudioProducer(stream, player, rootConf);
            });
        }
        else
        {
            informChannel(Ts3Client, "Linux Version");
            var fifo = "/tmp/" + spotifyPluginConfig.getPipeName();
            if (!File.Exists(fifo))
            {
                var output = ("mkfifo " + fifo).Bash();
                Console.WriteLine(output);
            }
            FileStream s = new FileStream("/tmp/" + spotifyPluginConfig.getPipeName(), FileMode.Open);
            producer = new SpotifyStreamAudioProducer(s, player, rootConf);
        }

        spotifyInstance = new SpotifyInstance(spotifyPluginConfig, activeSpotifyAccount);
        spotifyInstance.startProcess();

        int tries = 0;

        while (!spotifyInstance.connected && tries++ < 4)
        {
            Thread.Sleep(500);
        }

        if (!spotifyInstance.connected || spotifyInstance.hasExited())
        {
            return(false);
        }

        targetManager.SendMode = TargetSendMode.Voice;

        producer.start();
        return(true);
    }
Example #2
0
    private void stopSpotify()
    {
        lock (_lock)
        {
            if (spotifyInstance != null && !spotifyInstance.hasExited())
            {
                spotifyInstance.stopProcess();
            }

            producer?.Dispose();
            producer             = null;
            spotifyInstance      = null;
            activeSpotifyControl = null;
            activeSpotifyAccount = null;
        }
    }
Example #3
0
    public string commandSpotifyTestsample(ClientCall invoker, IVoiceTarget targetManager)
    {
        if (producer == null)
        {
            FileStream s = new FileStream("testfile", FileMode.Open);
            producer = new SpotifyStreamAudioProducer(s, player, rootConf);
        }

        targetManager.SendMode = TargetSendMode.Voice;

        producer.startTestSample();

        informChannel(Ts3Client, "Mixed in :-)");

        return("asd");
    }