Hi,

I wrote a simple StereoEffect which is very similar to the 
StereoBalanceControl example in the KDE 2.0 Development book.

Unfortunately, I can use it only locally, i.e. explicitly linked to an 
application. Whenever I try to create such an object on the server, my 
application and the server fail with assertions:

Appliction:

till@cray:~/test/arts > a "VolumeAndBalanceEffect"
a: /opt/kde2-cvs/include/arts/reference.h:247: class string 
Arts::Object::_toString() const: Assertion `_pool->base' failed.
Aborted                                                                       
                                                      
Artsd:

[artsd] ** Warning ** MCOP ObjectManager: can't find implementation for 
Arts::VolumeAndBalanceEffect.
artsd: object.cc:1088: static class Arts::Object_base * 
Arts::Object_base::_create(const string & = "Object"): Assertion `skel' 
failed.                                                                       

I'm using KDE 2.0 from cvs, configured with --enable-debug, latest update 2 
days ago.
See below for further details.

regards, till



my small test application basically does the following:

int main(int argc, char **argv)
{
  Dispatcher dispatcher;
  SimpleSoundServer server(Reference("global:Arts_SimpleSoundServer"));
  if(server.isNull()) {
    cerr << "server reference is null" << endl;
    exit(1);
  }
 
  Arts::SynthModule effect;
  VolumeAndBalanceEffect xeffect;
  if (xeffect.isNull())
  {
        // this does not happen
        // afterwards, the effect appears in the Interface repository
        cerr << "xeffect is null" << endl;
        exit(1);
  }
  if(argc > 1) {
          effect = DynamicCast(server.createObject(argv[1]));
          // here, I never get
          if (effect.isNull())
          {
                cerr << "effect is null: " << argv[1] << endl;
                exit(1);
          }
  }   
  [ ... ]
}                                                                             
  

The idl file looks like:

#include <artsflow.idl>
 
interface VolumeAndBalanceEffect: Arts::StereoEffect {
        attribute audio volume;
        attribute audio balance;
};                                                                            

and the mcopclass file like this:

till@cray:~/test/arts > cat VolumeAndBalanceEffect.mcopclass
Buildable=true
Interface=VolumeAndBalanceEffect,Arts::SynthModule,Arts::Object
Library=libtills.la 

ldconfig finds the library containing the module:

till@cray:~/test/arts > /sbin/ldconfig -p | grep tills
        libtills.so.0 (libc6) => /opt/kde2-cvs/lib/libtills.so.0
        libtills.so (libc6) => /opt/kde2-cvs/lib/libtills.so                  
                                                      
      

                                                                              
                            

                                                                              
                         

Reply via email to