Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.05 KB | None | 0 0
  1. using System;
  2. using System.Net;
  3. using System.Net.Sockets;
  4. using System.Text;
  5. using AudioSwitcher.AudioApi.CoreAudio;
  6.  
  7. namespace AC
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             CoreAudioDevice defaultPlaybackDevice = new CoreAudioController().DefaultPlaybackDevice;
  14.  
  15.             int recv;
  16.             byte[] data = new byte[1024];
  17.             IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 6789);
  18.  
  19.             Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  20.  
  21.             newsock.Bind(ipep);
  22.             newsock.Listen(10);
  23.             Console.WriteLine("Waiting for a client...");
  24.             Socket client = newsock.Accept();
  25.             IPEndPoint clientep =
  26.                         (IPEndPoint)client.RemoteEndPoint;
  27.             Console.WriteLine("Connected with {0} at port {1}",
  28.                             clientep.Address, clientep.Port);
  29.      
  30.             while(true)
  31.             {
  32.                 data = new byte[1024];
  33.                 recv = client.Receive(data);
  34.                 if (recv == 0)
  35.                     break;
  36.        
  37.                 var response = Encoding.ASCII.GetString(data, 0, recv);
  38.                 if (response.Equals("currentVolume"))
  39.                 {
  40.                     Console.WriteLine("Current volume: " + defaultPlaybackDevice.Volume);
  41.                     var vol = Encoding.ASCII.GetBytes(defaultPlaybackDevice.Volume.ToString());
  42.                     client.Send(vol, vol.Length, SocketFlags.None);
  43.                 }
  44.                 else
  45.                 {
  46.                     // TODO: Siryi, make this values configurable (also network properties: host, port, etc.)
  47.                     const int minVolume = 0;
  48.                     const int maxVolume = 100;
  49.                     int newVolume = 0;
  50.                     if (Int32.TryParse(response, out newVolume) && minVolume <= newVolume && maxVolume >= newVolume)
  51.                     {
  52.                         Console.WriteLine("Volume to set: " + response);
  53.                         defaultPlaybackDevice.Volume = newVolume;
  54.                     }
  55.                     else
  56.                     {
  57.                         Console.Write(String.Format("Invalid response received: {0}. ", response));
  58.                         Console.WriteLine(String.Format("New volume should be a valid integer between {0} and {1}", minVolume, maxVolume));
  59.                     }
  60.                 }
  61.             }
  62.             Console.WriteLine("Disconnected from {0}",
  63.                             clientep.Address);
  64.             client.Close();
  65.             newsock.Close();
  66.         }
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement