Jump to content


Photo

EnigmaSettings .NET Library

enigma1 enigma2 settings

  • Please log in to reply
No replies to this topic

#1 shax

  • Senior Member
  • 90 posts

+16
Neutral

Posted 30 December 2013 - 21:19

enigmasettings_featured.jpg

 

EnigmaSettings is open source library for Enigma1 & Enigma2 settings management.

It does all heavy work with settings loading, manipulation and saving so you don’t have to.
If you’ve ever thought about writing your own settings editor (like DreamboxEdit, Dreamset…)
but didn’t know anything about Enigma settings – this library is for you.

It’s written in C# and compatible with Mono 2.8 and higher.

If you’re not software developer you can probably skip this smile.png

Main features

• It’s FREE
• It’s open source library licensed under permissive MIT license. Anyone can use it.
• It’s easy to use, has excellent logging support, and commented code.
• It works on Windows XP SP2 and newer (.NET framework 3.5), Linux and MacOS X (Mono 2.8 and higher). I suppose it will work on iOS and Android too when compiled as Portable Library, but I didn’t have time to test it.
• It’s fast. It will load up huge motor settings in under 500 ms.
• It supports Enigma1, Enigma2 ver3 and Enigma2 ver4 settings and automatic conversion between them.
• Implemented background threading for settings loading and saving  (Async methods)
• Full interface based objective model
• Every part of library can be replaced by custom code via custom instance factory (Inversion of Concerns)
• Fully prepared for GUI data binding (IEditable and IPropertyChanged interfaces implemented)
• It’s used in open source project Simple Enigma Settings Editor

DIRECT DOWNLOAD

Windows (.NET 3.5 Client Profile) download:   HERE
Mono / .NET Framework 4.0 (Linux, MacOS X, Windows):   HERE
Help file (.chm):   HERE

Source code on GitHub: https://github.com/s.../EnigmaSettings

Examples

Too see library used in a real application check out SESE aplication available on https://github.com/shaxxx/SESE

 

// C#

//list location (lamedb or services file)
string fileName = "C:\\Settings\\lamedb";

//initialize default list load / save handler
Krkadoni.EnigmaSettings.SettingsIO settingsIO = new Krkadoni.EnigmaSettings.SettingsIO();

//load list
Krkadoni.EnigmaSettings.Settings settings = settingsIO.Load("");

//change satellite position for Thor satellite from 1.0 W to 0.8 W
//Changes satellite position to new position for satellite and belonging transponders
var satelliteThor = settings.Satellites.Single(x => Int32.Parse(x.Position) == -10);
settings.ChangeSatellitePosition(satelliteThor, -8);

//remove all stream services
settings.RemoveStreams();

//remove empty bouquets
settings.RemoveEmptyBouquets();

//remove satellite on position 23.0 E
settings.RemoveSatellite(230);

//update service parameters
var service = settings.Services.First(); //take first service as an example
service.Name = "Service name";
service.ProgNumber = "0";
service.ServiceSecurity = Enums.ServiceSecurity.BlackListed;
service.SID = "24";
//etc...

//save settings to current folder
settingsIO.Save(new DirectoryInfo(AppSettings.CurrentDir), settings );
'VB.net

'list location (lamedb or services file)
Dim fileName As String = "C:\Settings\lamedb"

'initialize default list load / save handler
Dim settingsIO As New Krkadoni.EnigmaSettings.SettingsIO()

'load list
Dim settings As Krkadoni.EnigmaSettings.Settings = settingsIO.Load("")

'change satellite position for Thor satellite from 1.0 W to 0.8 W
'Changes satellite position to new position for satellite and belonging transponders
Dim satelliteThor = settings.Satellites.[Single](Function(x) Int32.Parse(x.Position) = -10)
settings.ChangeSatellitePosition(satelliteThor, -8)

'remove all stream services
settings.RemoveStreams()

'remove empty bouquets
settings.RemoveEmptyBouquets()

'remove satellite on position 23.0 E
settings.RemoveSatellite(230)

'update service parameters
Dim service = settings.Services.First()
'take first service as an example
service.Name = "Service name"
service.ProgNumber = "0"
service.ServiceSecurity = Enums.ServiceSecurity.BlackListed
service.SID = "24"
'etc...

'save settings to current folder
settingsIO.Save(New DirectoryInfo(AppSettings.CurrentDir), settings)

Edited by shax, 30 December 2013 - 21:20.




Also tagged with one or more of these keywords: enigma1, enigma2, settings

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users