// // Authors // Khaled Mohammed (khaled.mohammed@gmail.com) // // (C) 2006 // using System; using Gst; public class MP3LaunchParse { static void EventLoop (Element pipe) { Bus bus = pipe.Bus; Message message = null; while (true) { message = bus.Poll (MessageType.Any, -1); if (message == null) { Console.Error.WriteLine ("Message is null!!!"); System.Application.Exit(); } switch (message.Type) { case MessageType.Eos: message.Dispose(); return; case MessageType.Warning: case MessageType.Error: message.Dispose(); return; default: message.Dispose(); break; } } } public static void Main (string [] args) { Application.Init(); if (args.Length != 1) { Console.Error.WriteLine ("usage: mono mp3launchparse.exe \n", args[0]); return; } Element bin = (Element) Parse.Launch ("filesrc name=my_filesrc ! mad ! osssink", &error); if (!bin) { Console.Error.WriteLine ("Parse error"); Application.Exit(); } Bin b = (Bin) bin; Element filesrc = b.GetByName ("my_filesrc"); filesrc.SetProperty ("location", args[0]); bin.SetState (State.Playing); EventLoop (bin); bin.SetState (State.Null); return; } }