I made a try at home, tell me if there is something you think is not in the right place:
[azmeuk@herbi ~/dev/denemo/src]$ ls * Makefile.am Makefile.in pathconfig.h *audio*: alsabackend.c audiointerface.c dummybackend.h fluid.c jackbackend.h midi.c pitchentry.h playback.c portaudiobackend.h portmidibackend.c portmidiutil.h alsabackend.h audiointerface.h eventqueue.c fluid.h jackutil.c midi.h pitchrecog.c playback.h portaudioutil.c portmidibackend.h ringbuffer.c audio.h dummybackend.c eventqueue.h jackbackend.c jackutil.h pitchentry.c pitchrecog.h portaudiobackend.c portaudioutil.h portmidiutil.c ringbuffer.h *command*: barline.c bookmarks.c changenotehead.c chordops.c commandfuncs.c contexts.c dynamic.c fakechord.c figure.c graceops.c keyresponses.c lyric.c measureops.c objops.c scoreops.c selectops.c staffops.c tupletops.c barline.h bookmarks.h changenotehead.h chordops.h commandfuncs.h contexts.h dynamic.h fakechord.h figure.h graceops.h keyresponses.h lyric.h measureops.h objops.h scoreops.h selectops.h staffops.h tupletops.h *core*: binreloc.c denemo_types.c external.h http.h instrumentname.h kbd-custom.c keyboard.c keymapio.c main.c parseinstruments.h prefops.h utils.c binreloc.h external.c http.c instrumentname.c instruments.xml kbd-custom.h keyboard.h keymapio.h parseinstruments.c prefops.c twoints.h utils.h *generated*: entries.h register_commands.h scheme_cb.h scheme.h xml.fragment *io*: audiofile.c exportabc.c exportlilypond.c exportmidi.c exportxml.c file.c guidedimportmidi.c importmidi.c importmusicxml.c importxml.c print.c processstaffname.c screenshot.c xmldefs.h audiofile.h exportabc.h exportlilypond.h exportmidi.h exportxml.h file.h guidedimportmidi.h importmidi.h importmusicxml.h importxml.h print.h processstaffname.h screenshot.h *render*: accwidths.h displayanimation.c drawbarline.c drawcursor.c drawfigure.c drawkey.c drawnotes.c drawtimesig.c hairpin.h notewidths.h slurs.c calculatepositions.c displayanimation.h draw.c drawdynamic.c draw.h drawlilydir.c drawselection.c drawtuplets.c moveviewport.c printview.c slurs.h calculatepositions.h drawaccidentals.c drawclefs.c drawfakechord.c drawingprims.h drawlyric.c drawstemdir.c hairpin.c moveviewport.h printview.h *scripting*: lilydirectives.c lilydirectives.h scheme-callbacks.c scheme-callbacks.h scheme-identifiers.c scheme-identifiers.h *source*: audiocapture.c audiocapture.h sourceaudio.c sourceaudio.h source.c source.h *ui*: clefdialog.c help.c kbd-interface.c keysigdialog.c mousing.c mwidthdialog.c palettes.h palettestorage.h playbackprops.h scorelayout.c scoreprops.c texteditors.c timedialog.c view.c dialogs.h help.h kbd-interface.h keysigdialog.h mousing.h palettes.c palettestorage.c playbackprops.c prefdialog.c scorelayout.h staffpropdialog.c texteditors.h tomeasuredialog.c view.h [azmeuk@herbi ~/dev/denemo/src]$ 2014-02-28 11:16 GMT+01:00 Éloi Rivard <[email protected]>: > Well, drawing the display is one category for sure. And "backends" is > >> not a good name for something that has to do with playing - the main >> sort of backend in Denemo is not listed - the creation of the finished >> score for printing, printview.c I guess. >> > >> There are also the sourceaudio and source-something-I-forget-what that >> open things you are using to create the score from - a pdf of a >> manuscript, or an audio or midi track. >> >> And then there is the stuff (also "sources" of a sort) for getting MIDI >> in and Audio In. >> >> Then why not: > > src/ > - generated/ This one already exists > - import/ Sources related to file import (midi, musicxml, .denemo) > - export/ Sources related to file export (lilypond, midi, xml, tab, pdf, > png etc.) > - *audio*/ Sources related to audio backends (alsa, portmidi, > portaudio, fluidsynth, jack etc.) > > - ui/ Sources related to dialogs (command center, preferences, dialogs, > palettes etc.) > - scripting/ Sources related to scheme and scheme callbacks > - core/ Others general sources (utils, main, commands loading etc.) > - *render*/ Sources related to printing (printview.c etc.) > - *source*/ Sources related to music import (audio, midi, pdf, etc.) > > >> >> >What do you think ? >> >> Well, unless I learnt some new commands, it would slow up my work. When >> I want to find which file has a function definition in it I type grep >> functionname src/*.h (there is a horrible drawingprims.h which defeats >> this :( ) and then I only have one place where I need to open the file >> from. Are you using some IDE to do this sort of thing? If you *do* have >> an IDE then I guess you never know where the files are anyway (?) >> >> Well I use Anjuta sometimes, Gedit some other times. What is your text > editors ? Do you know ctags ? > > You also may want to play with a few grep options. Grep can recursively > search in a directory (-R) and filter some file names (--include). For > example, if you want to search "print" in .h files, just type: > > grep -R --include *.h print src > You also may create an alias for this to go faster. > Would your work still be slowed with that command ? > > Perhaps first might be rationalizing the distribution of code in the >> files - commandfuncs.c is the worst offender, whoever created that was >> thinking of organizing in the opposite way to the person who created >> staffops.c measureops.c, lilydirectives.c etc. And I think view.c still >> contains all the code to do with creating and following rhythmic >> patterns (my fault that). And utils.c is another howler - at one time, >> early on, it was being used for common elements of the display-drawing >> code, but it more properly has stuff that various other departments of >> the code might use. >> > > I believe that dividing sources in several subdirectories is a good start > actually. Directories reflect the architecture of the program. It would be > easy to know that something is wrong if you find some "scripting" functions > in the "import" directory for instance. > -- Éloi Rivard - [email protected] « On perd plus à être indécis qu'à se tromper. »
_______________________________________________ Denemo-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/denemo-devel
