Basic MythTV plugin configuration: Difference between revisions

From Bitpost wiki
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 3: Line 3:
# In the mythplugins project, select an existing plugin to clone, and copy the directory.
# In the mythplugins project, select an existing plugin to clone, and copy the directory.
# In the mythplugins project, update the configuration file to build your new plugin.
# In the mythplugins project, update the configuration file to build your new plugin.
# In the mythtv project, add a button to the XML ui to access your plugin.
# In your plugin's main.cpp, update setupKeys(), replacing REG_JUMP actions with new ones.
# In the mythtv project, add a button to the XML ui to access your plugin via your new REG_JUMP action.
# Bang away on your new plugin!
# Bang away on your new plugin!


Line 20: Line 21:
  mv mythmusic.pro mythdj.pro
  mv mythmusic.pro mythdj.pro
  emacs mythdj.pro (s&r as needed)
  emacs mythdj.pro (s&r as needed)
</pre></li>
</pre>
Then I search-and-replaced all instances of [mythmusic] with [mythdj], and [MythMusic] with [MythDJ], in the entire mythdj plugin folder.
</li>
<li>Here's what I needed to add to [mythplugins/configure]:
<li>Here's what I needed to add to [mythplugins/configure]:
<pre>
<pre>
Line 48: Line 51:
  (basically a copy of MythMusic with s&r of 'music' with 'dj')
  (basically a copy of MythMusic with s&r of 'music' with 'dj')
</pre>
</pre>
</li>
<li>In my case, I removed all REG_JUMP, REG_JUMPEX, REG_KEY and REG_MEDIA_HANDLER macros from setupKeys(), and replaced them with one new REG_JUMP action "Start DJ".
</li>
</li>
<li>In my case, I added the following block to [mythtv/programs/mythfrontend/library.xml]:
<li>In my case, I added the following block to [mythtv/programs/mythfrontend/library.xml]:

Latest revision as of 21:37, 26 November 2008

Plugin support in MythTV is great, but a little rough around the edges to set up. Here is a quick setup HOWTO.

  1. In the mythplugins project, select an existing plugin to clone, and copy the directory.
  2. In the mythplugins project, update the configuration file to build your new plugin.
  3. In your plugin's main.cpp, update setupKeys(), replacing REG_JUMP actions with new ones.
  4. In the mythtv project, add a button to the XML ui to access your plugin via your new REG_JUMP action.
  5. Bang away on your new plugin!

Details

  1. I chose to clone mythmusic.
     cd mythplugins
     cp -r mythmusic mythdj
     cd mythdj
     mv mythmusic.pro mythdj.pro
     emacs mythdj.pro (s&r as needed)
     mv mythmusic mythdj
     cd mythdj
     mv mythmusic.pro mythdj.pro
     emacs mythdj.pro (s&r as needed)
    

    Then I search-and-replaced all instances of [mythmusic] with [mythdj], and [MythMusic] with [MythDJ], in the entire mythdj plugin folder.

  2. Here's what I needed to add to [mythplugins/configure]:
     dj="yes"
     ---
     MythDJ related options:
       --enable-mythdj          MDM build the mythdj plugin [$dj]
     ---
      --enable-mythdj) dj="yes"
      ;;
      --disable-mythdj) dj="no"
      ;;
     ---
     if test "$dj" = "yes" ; then
       echo "        MythDJ         plugin will be built"
       echo "SUBDIRS += mythdj" >> ./config.pro
     else
       echo "        MythDJ         plugin will not be built"
     fi
     ---
     ###########################################################
     #                                                         #
     #  MythDJ related configuration options                   #
     #  (similar to MythMusic)                                 #
     #                                                         #
     ###########################################################
     (basically a copy of MythMusic with s&r of 'music' with 'dj')
    
  3. In my case, I removed all REG_JUMP, REG_JUMPEX, REG_KEY and REG_MEDIA_HANDLER macros from setupKeys(), and replaced them with one new REG_JUMP action "Start DJ".
  4. In my case, I added the following block to [mythtv/programs/mythfrontend/library.xml]:
       <button>
          <type>DJ_PLAY</type>
          <text>Start DJ</text>
          <action>JUMP Start DJ</action>
          <depends>mythmusic</depends>
          <depends>mythdj</depends>
       </button>
    
  5. I'm doing it now!