[Clam-devel] Re: faust status
Natanael Olaiz
nolaiz at gmail.com
Tue Jul 8 17:50:10 PDT 2008
Commited in two steps, and changed some names on MainWindow and
NetworkCanvas. Now those names are a little bit large, but I think now
them refers better to its uses.
Commit 11582:
* RunTimeLibraryLoader: Load() changed to virtual, added some commented
debug messages, and minor changes on CompletePathFor()
* RunTimeFaustLibraryLoader:
- implemented virtual Load() to search first for the examples faust dir
- added std::map GetCompilePluginCommands(std::string
pluginSourceFullName) to get required faust compilation commands with
the propers paths
- if plugin exists in factory, use ReplaceCreator instead
AddCreatorWarningRepetitions
- added helpers: faustBinCommand() and faustLibIncludeFile()
Commit 11583:
* ClamNetworkCanvas:
- added signal: openFileWithExternalApplicationRequest
- added QString _fileNameToOpen (used when catching the previous
signal on MainWindow), onOpenFileWithExternalApplication to set it and
getFileNameToOpenWithExternalApplication() to get it
- added slot onOpenFileWithExternalApplication
- added "Open diagram with browser" item on processings context menu
which have svg_diagram attribute
- added "Open source with editor" item on processings context menu
which have dsp_source attribute
* NewtorkEditor MainWindow:
- added slot on_action_Launch_Browser_triggered
- on_action_Online_tutorial_triggered() calls
on_action_Launch_Browser_triggered
- added slot
on_action_Processing_Open_File_With_External_Application_triggered,
connected to ClamNetworkCanvas::openFileWithExternalApplicationRequest
signal
- added messages on slot on_action_Compile_Faust_triggered, and
changed to search the .dsp files on faust examples directory and compile
them one by one directly (doesn't need to have Faust installed or makefiles)
El 07/08/2008 03:10 PM, Natanael Olaiz escribió:
> El 07/08/2008 02:38 PM, Pau Arumí escribió:
>> I've looked at the patch. Go ahead and commit. And maybe I'll propose
>> some refactoring afterward. Great work!
>>
> OK.
>
>> On dl, 2008-07-07 at 19:25 -0300, Natanael Olaiz wrote:
>>
>>> El 07/07/2008 02:12 PM, Pau Arumí Albó escribió:
>>>> Hi Natanael,
>>>> could you please remind me the status of your Faust work?
>>> Here is the last path about that I made. It doesn't need to have
>>> Faust installed, just to have the .dsp source
>>> files on '$FAUST_PATH/examples' (or ~/.faust/examples), the 'faust'
>>> compiler on '$FAUST_PATH/compiler' (or ~/.faust/compiler) and the
>>> 'ladspa.cpp' on '$FAUST_PATH/architecture' (or ~/.faust/architecture).
>>> It allows to recompile all found .dsp from the NE main menu as your
>>> original code, but without using 'make' (to avoid needing faust
>>> installed). Also it allows to browse the .svg and edit the ,dsp code
>>> from the processing context menu (and for now there is a dummy
>>> "recompile" option too):
>>>
>>
>> I'm not sure whether t we want NE to know how to compile faust scripts
>> (maybe yes, but want to think more about it). If faust Makefile would
>> provide an option to use the local faust binary it would be easier,
>> right? We could propose a Makefile patch to faust devels.
>>
>
> The major problem is that Faust doesn't support by now (at least I
> didn't found) defining the libraries path when you call it, just
> search by default at /usr and the active path (that's because I change
> to the 'architecture' path when calling the compiler)
>
> Another option could be making an external script which do the actual
> compilation tasks (i.e. doing also the searches for the compiler and
> libraries)..
>
>>> I think there is a pending patch and some questions, right?
>>>>
>>> Yes:
>>> * What do you think about the factory changes? I created
>>> CLAM::Factory::ReplaceCreator (and Registry/FactoryRegistrator
>>> related methods) to use instead of AddCreatorWarning in case
>>> that plugin already exists on reloading. It erase the original
>>> creator and create a new one. Is that good? I didn't found any
>>> other way to erase just a single creator for the dynamic
>>> plugin's loading...
>>> * I created
>>> 'RunTimeFaustLibraryLoader::GetCompilePluginCommands' which
>>> uses the previously created
>>> 'RunTimeLibraryLoader::CompletePathFor' to return the
>>> compilation commands. I putted there because I though is more
>>> related to the specific Faust library loader, but I'm using it
>>> from MainWindow as a kind of static method. Anyway, I can't
>>> define as static because CompletePathFor uses
>>> 'RunTimeLibraryLoader::GetPaths' which is not static (also I'm
>>> using CompletePathFor from MainWindow to search for the .dsp
>>> directory). What do you think about that? Put the methods on
>>> MainWindow instead? Duplicate the GetPaths code and make them
>>> static? Make another code file to manage the faust compilation
>>> and related tasks?
>>> * I don't like the method that I used to deal with calls to
>>> MainWindow from the canvas (the NetworkCanvas emit signals
>>> catched from MainWindow, which calls back to
>>> NetworkCanvas::getFileNameToBrowse). Plus, I'm getting some
>>> messages when I run the NE:
>>> QMetaObject::connectSlotsByName: No matching signal
>>> for
>>>
>>> on_action_Reload_Faust_Plugins_triggered(RunTimeFaustLibraryLoader&)
>>> QMetaObject::connectSlotsByName: No matching signal
>>> for on_action_Processing_Launch_Editor_triggered()
>>> QMetaObject::connectSlotsByName: No matching signal
>>> for on_action_Launch_Editor_triggered(QString&)
>>> QMetaObject::connectSlotsByName: No matching signal
>>> for on_action_Processing_Launch_Browser_triggered()
>>> QMetaObject::connectSlotsByName: No matching signal
>>> for on_action_Launch_Browser_triggered(QString&)
>>> How do you suggest to manage that? I think using the context
>>> menues on the canvas is the comfortablest way to put those
>>> commands, but the needed code has not much to do in NE...
>>> Well... for now I think these are my main doubts. :)
>>>
>>
>> I'll look at these issues later (anyway they are not important enough to
>> keep you back from commiting)
>>
>>
> OK, now I'll commit it. Thanks!
>
>
>> P
>>
>>
>>
>>
>>
>
>
More information about the clam-devel
mailing list