/// <summary> /// Constructor -- creates a new Recorder that will use the GStreamerMiniBinding to connect itself to the player tee for recording streams /// </summary> public Recorder() { try { if (Marshaller.Initialize()) { encoders.Add(new Encoder("None (unchanged stream)", "! identity ", null)); has_lame = Marshaller.CheckGstPlugin("lamemp3enc") && Marshaller.CheckGstPlugin("id3v2mux"); Hyena.Log.Debug("[Streamrecorder] GstPlugin lame" + (has_lame ? "" : " not") + " found"); if (has_lame) { encoders.Add(new Encoder(lame_name, lame_pipeline, lame_extension)); } has_vorbis = Marshaller.CheckGstPlugin("vorbisenc") && Marshaller.CheckGstPlugin("oggmux") && Marshaller.CheckGstPlugin("oggmux"); Hyena.Log.Debug("[Streamrecorder] GstPlugin vorbis" + (has_vorbis ? "" : " not") + " found"); if (has_vorbis) { encoders.Add(new Encoder(vorbis_name, vorbis_pipeline, vorbis_extension, true)); } has_flac = Marshaller.CheckGstPlugin("flacenc") && Marshaller.CheckGstPlugin("flactag"); Hyena.Log.Debug("[Streamrecorder] GstPlugin flac" + (has_flac ? "" : " not") + " found"); if (has_flac) { encoders.Add(new Encoder(flac_name, flac_pipeline, flac_extension)); } } else { Hyena.Log.Debug("[Streamrecorder] an error occurred during gstreamer initialization, aborting."); } } catch (Exception e) { Hyena.Log.Information("[Streamrecorder] An exception occurred during gstreamer initialization"); Hyena.Log.Debug(e.StackTrace); } is_recording = false; }
void IExtensionService.Initialize() { Marshaller.Init(); has_karaoke = Marshaller.CheckGstPlugin("audiokaraoke"); Hyena.Log.Debug("[Karaoke] GstPlugin audiokaraoke" + (has_karaoke ? "" : " not") + " found"); if (!has_karaoke) { Hyena.Log.Warning("[Karaoke] audiokaraoke is not available, please install gstreamer-good-plugins"); return; } action_service = ServiceManager.Get <InterfaceActionService> (); actions = new Gtk.ActionGroup("Karaoke"); actions.Add(new Gtk.ActionEntry[] { new Gtk.ActionEntry("KaraokeAction", null, AddinManager.CurrentLocalizer.GetString("_Karaoke"), null, null, null), new Gtk.ActionEntry("KaraokeConfigureAction", Gtk.Stock.Properties, AddinManager.CurrentLocalizer.GetString("_Configure"), null, AddinManager.CurrentLocalizer.GetString("Configure the Karaoke extension"), OnConfigure) }); Gdk.Pixbuf icon = new Gdk.Pixbuf(System.Reflection.Assembly.GetExecutingAssembly() .GetManifestResourceStream("microphone.png")); Gtk.IconSet iconset = new Gtk.IconSet(icon); Gtk.IconFactory iconfactory = new Gtk.IconFactory(); iconfactory.Add("microphone", iconset); iconfactory.AddDefault(); actions.Add(new Gtk.ToggleActionEntry[] { new Gtk.ToggleActionEntry("KaraokeEnableAction", "microphone", AddinManager.CurrentLocalizer.GetString("_Activate Karaoke mode"), null, AddinManager.CurrentLocalizer.GetString("Activate Karaoke mode"), OnActivateKaraoke, karaoke_enabled) }); action_service.UIManager.InsertActionGroup(actions, 0); ui_menu_id = action_service.UIManager.AddUiFromResource("KaraokeMenu.xml"); ui_button_id = action_service.UIManager.AddUiFromResource("KaraokeButton.xml"); }