The main documentation of jMythAPI is written in JavaDoc.
The JavaDoc API documents are available here.

Protocol Version related Infos

Beyond a typical JavaDoc documentation, the jMythAPI JavaDoc pages provide additional infos, which are important for developers:

Protocol Version Changelog

Which protocol versions are supported by jMythAPI and which changes were done to a specific version in comparison to the predecessor version can be seen in the JavaDoc of the Enumeration ProtocolVersion.

For each protocol version the following infos are provided:

Protocol version enumeration

Protocol Changes:

In this section newly added, changed or removed protocol-commands or -properties are listed.

Protocol Version Info:

In this section you can see in which Git commit(s) the changes to the protocol were done.
If a given protocol version is used by a MythTV release version, the "MythTV-Release" is also listed.

Protocol Version Range

In which protocol versions a protocol command or a request- or response-parameter is supported, is specified via protocol version range. This protocol version range is documented using the @since and the @deprecated JavaDoc tags.

Additionally the JavaDoc of each protocol-related class or function contains the following info table:

Protocol version range

Version Ranges:

The "Added" version is the version, when a command or parameter was added to the protocol.
The "Removed" version specifies the version number, when a protocol element was removed.
If there are any significant changes to an element, this is listed as "Changed" version.

Fallback Versions:

If a function is usable beyond the given protocol range, e.g. because an alternative set of functions can be used to achieve the same result, a "fallback" version is given.
In this case you should always read the "Protocol Version Hint" section of the functions JavaDoc to see, if there are any drawbacks when using the function outside its intended range.

Protocol Version Matrix

Many protocol response objects have multiple properties. Some of them were added in version X, some were removed in version Y, others are available in all versions.
To make it easier to get an overview, which properties are available in which version, a following protocol version matrix is displayed.

Protocol version matrix

In the above example you can see, that the property DUP_CHECK_NEW_EPI is only available in the protocol versions 12 and 13.

Accessing Property Values:

Don't worry about how to access a specific property value within the list of response-parameters. Almost all jMythAPI objects are property-aware. This means that each object has a set of enumeration constants, that can be used to get the value of a property, within the property value list. When using this enumeration constants, you do not need to take care about the proper position or valid protocol version number. If a property is not available for the current protocol-version, "null" is returned as value.

Protocol Commands

Although jMythAPI provides classes and functions to hide the protocol level details from the API user, all supported commands are documented in the following way:

Protocol commands

Protocol Example:

For almost all supported commands at least one request- and response-example is included in the JavaDoc.

Protocol Parameters:

Furthermore the JavaDoc shows which command-, request- and response-parameters are required for a given protocol command.

Protocol version range:

If a given protocol command is not available in all protocol versions, a version range table is show.

Getting started

To get started with jMythAPI you should read the following JavaDoc pages:

Supported protocol versions

See here for all protocol versions supported by jMythAPI.

Supported protocol commands

See here for all protocol commands supported by jMythAPI.

Work with a MythTV backend

See here how to send commands to a MythTV backend.

Work with a MythTV recorder

See here how to control a MythTV recorder.

Work with a MythTV encoder

See here how to work with a MythTV encoder.