This project has moved. For the latest updates, please go here.

Access to MCEBuddy remote server

May 25, 2013 at 1:16 AM
Hi,

Where can I find documentation on accessing the remote server on port 23332?

Thank you.

Mike
Coordinator
May 25, 2013 at 2:07 AM
what documentation are you looking for?

The documentation shows how to change the server port. Then just put thta port and ipaddress/name in the client and you're done.


May 25, 2013 at 5:43 AM
rboy1 wrote:
what documentation are you looking for? The documentation shows how to change the server port. Then just put thta port and ipaddress/name in the client and you're done.
I'm looking at writing a client, so i'm interested in the protocols involved in obtaining the data.

Mike
Coordinator
May 25, 2013 at 11:25 AM
Edited May 25, 2013 at 11:26 AM
Ah, unfortunately there is no documentation but I can creates a starting point for you (will take some time toput some up later).
  1. The connection to the engine is done over a SOA 1.1 XML Serialized interface
  2. Open the GUI (status.cs) to get an idea how the current Client connects to the engine. (method TryConnect)
  3. Open Core.cs, at the end all the public interfaces are listed out
  4. ICore is the interface that contains all the publicly exposed interfaces
  5. MCEBuddy.Globals in the class that contains global definitions
  6. MCEBuddy.Configuration is the class the contains the configuration object
Here are a list of interfaces used by clients to connect/control the engine (as of the latest 2.3.13 BETA):
[ServiceContract]
public interface ICore
{
    [OperationContract]
    void CancelJob(int[] jobList);

    [OperationContract]
    void Start();

    [OperationContract]
    void Stop(bool preserveState);

    [OperationContract]
    void StopBySystem();

    [OperationContract]
    void Rescan();

    [OperationContract]
    int NumConversionJobs();

    [OperationContract]
    JobStatus GetJobStatus(int jobNumber);

    [OperationContract]
    List<JobStatus> GetAllJobsInQueueStatus();

    [OperationContract]
    bool Active();

    [OperationContract]
    bool ServiceShutdownBySystem();

    [Obsolete("FileQueue is deprecated, please use GetAllJobsInQueueStatus instead.")]
    [OperationContract]
    List<string[]> FileQueue();

    [OperationContract]
    bool UpdateFileQueue(int currentJobNo, int newJobNo);

    [OperationContract]
    bool EngineRunning();

    [OperationContract]
    bool EngineCrashed();

    [OperationContract]
    bool WithinConversionTimes();

    [OperationContract]
    void SuspendConversion(bool suspend);

    [OperationContract]
    bool IsSuspended();

    [OperationContract]
    void ChangePriority(string processPriority);

    [OperationContract]
    void SetUPnPState(bool enable);

    [OperationContract]
    bool UpdateConfigParameters(ConfSettings configOptions);

    [OperationContract]
    ConfSettings GetConfigParameters();

    [OperationContract]
    List<string[]> GetProfilesSummary();

    [OperationContract]
    void AddManualJob(string videoFilePath);

    [OperationContract]
    MediaInfo GetFileInfo(string videoFilePath);

    [OperationContract]
    void GenerateXML(string fileList);

    [OperationContract]
    bool ShowAnalyzerInstalled();

    [OperationContract]
    List<EventLogEntry> GetWindowsEventLogs();

    [OperationContract]
    bool AllowSuspend();

    [OperationContract]
    void ClearHistory();

    [OperationContract]
    Dictionary<string, SortedList<string, string>> GetConversionHistory();
}
Coordinator
May 25, 2013 at 11:49 AM
For simplicity, in the latest BETA I'm moving the ICore interface class to the MCEBuddy.Globals project so that you need to only reference one namespace
Coordinator
May 25, 2013 at 12:02 PM
Okay here is a starting point, I've started a page on writing a remote client for MCEBuddy, feel free to add to give feedback on how to improve it.

https://mcebuddy2x.codeplex.com/wikipage?title=Writing%20a%20Remote%20Client%20for%20MCEBuddy