Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

build moreamp on linux (x86)

Help
2005-04-16
2012-09-15
  • hi,

    i want to try some things using moreamp and tried to build it on my gentoo linux x86 box. during maPlayMp3.o i get errors concerning some unknown assembler instructions. As far as i can tell it looks like there are PPC/MAC assembler calls used which my box refuses to know ;)

    any suggestions what might fix this?

    my other question concerns a general problem i found using moreamp on Win2k/XP is that it eats 100% load when playing. why is that? ;)

     
    • You might not be using a libmad/mad.h configured for your system.

      MoreAmp-0.1.11/libs/libmad/mad.h and libmad.a in the release are for OSX (mad.h has # define FPM_PPC).

      If you have already built and installed libmad on your system you can build moreamp with ./configure --with-mad=system.

      Alternatively, you can configure and make libmad in the MoreAmp-0.1.11/libs/libmad dir, or copy over MoreAmp-0.1.11/libs/libmad/mad.h and libmad.a from wherever on your system you have configured and built libmad.
      (Your mad.h should have # define FPM_INTEL or such).

      MoreAmp-0.1.12 (not yet released) has the osx libmad files in their own libmad/osx dir and a script to build everything unix from the moreamp src release (except wxWidget).

      ...it eats 100% load when playing. why is that? ;)

      Thanks, I hadn't seen that. Looking at moreamp linux/unix with top, I see the same problem.

      That is a bug to be fixed in the next release (0.1.12).

      If you can't wait, here is a fix :

      change lines 2275-2276 in maPlayer.c (0.1.11)
      from :
      if (WaitCancel(loopwait))
      goto errorret;
      to :
      #if defined(MAWIN)
      if (WaitCancel(0))
      goto errorret;
      Sleep(loopwait);
      #elif defined(MAUNIX)
      if (WaitCancel(0))
      goto errorret;
      usleep(loopwait * 1000); // redefine SEEKWAIT and TITLEWAIT to avoid this mult
      #else // MAOSX MAOS9
      if (WaitCancel(loopwait))
      goto errorret;
      #endif

      Also change lines 8915-8919
      from :
      #ifndef MAOS9
      while(g_pause)
      if (WaitCancel(100))
      break;
      #endif
      to:
      #if defined(MAWIN)
      while(g_pause && !WaitCancel(0))
      Sleep(100);
      #elif defined(MAUNIX)
      while(g_pause && !WaitCancel(0))
      usleep(100000);
      #elif defined(MAOSX)
      while(g_pause)
      if (WaitCancel(100))
      break;
      // nothing for MAOS9
      #endif

      and the same again for lines 8943-8947.

      Regards,
      pmisteli