[Clam-devel] Port Type shown on the tooltip

David García Garzón dgarcia at iua.upf.edu
Thu Jan 31 01:08:04 PST 2008


On Dijous 31 Gener 2008, Pau Arumí wrote:
> On dj, 2008-01-31 at 01:39 +0100, David García Garzón wrote:
> > On Dijous 31 Gener 2008, Pau Arumí wrote:
> > > On dc, 2008-01-30 at 23:35 +0100, David García Garzón wrote:
> > > > A fast feature before the release: As Pau requested during a workshop
> > > > to the Barcelona Media audio team, now the type of the port is shown
> > > > on the port tooltip. Mandatory screenshot:
> > > >
> > > > http://iua-share.upf.edu/wikis/clam/index.php/Image:NetEditor-PortHin
> > > >tWit hType.gif
> > >
> > > super!
> > >
> > > btw, how did you produced that gif? from a screencast?
> >
> > 10 screenshots loaded into gimp as layers, saving them to gif (wikimedia
> > don't like mng's) and chosing to save layer as annimation frames ;-) the
> > auto numbering feature of ksnapshot that often nags me, now has been a
> > very useful help.
> >
> > But that's not the question I expected from you. Have you noticed the
> > type strings? Look, mum! No mangling!
>
> oh! i was assuming that the name was "given" during the registration to
> the factory (of types). it is possible to de-mangle c++ types. great!
> you'll explain how.

Side note: Mangling is the internal format that a program symbol name for 
functions, types and variables is represented in a binary which is dependant 
on the compiler and the platform. 
(http://en.wikipedia.org/wiki/Name_mangling)

Here comes the code:
#ifdef __GNUC__
#include "cxxabi.hxx"
#endif
...
    std::string demangle(const std::string & mangledName)
    {
        std::string result = mangledName;
        #ifdef __GNUC__
        int demangleError = 0;
        char * demangled = 
abi::__cxa_demangle(mangledName.c_str(),0,0,&demangleError);
        if (!demangleError && demangled)
            result = demangled;
        if (demangled) free(demangled);
        #endif//__GNUC__
        return result;
    }

(Have i told you that i hate C api's with char*?)

The function just demangles for gcc so it won't work for platforms such as... 
hey! now we are using gcc in every platform! ;-)

In any case if you are not using gcc you still get the mangled typename, or 
adding code for your itchywichy compiler.

> btw, "10 screenshots + gimp" was not the answer i expected from you :-)
> i'm sure it can be done with a screencast (i.e. recordmydesktop) and two
> commands; one for splitting video to pictures (avidemux does it) and
> another to build up the .gif (but don't know how)

Yes, but I started with a shot, then did another one to show the other port 
and then, hey, let's do 8 more screenshots. You know, i trigger easy.

-- 
David García Garzón
(Work) dgarcia at iua dot upf anotherdot es
http://www.iua.upf.edu/~dgarcia
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.clam-project.org/pipermail/clam-devel-clam-project.org/attachments/20080131/e6862e7f/attachment-0003.pgp>


More information about the clam-devel mailing list