X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmusic-function.cc;h=a20af4d0a2a104264127956f1a827d2983330d48;hb=90d3233da87b372e02690978f89b2add3863fba6;hp=e067234bf7974ef07b96fa5b6c4888d28410e84e;hpb=a6bd229f7fe1dc4a03478e14ccc0c0c66b225061;p=lilypond.git diff --git a/lily/music-function.cc b/lily/music-function.cc index e067234bf7..a20af4d0a2 100644 --- a/lily/music-function.cc +++ b/lily/music-function.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2004--2010 Han-Wen Nienhuys + Copyright (C) 2004--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,55 +19,18 @@ #include "music-function.hh" -#include "music.hh" +ADD_SMOB_INIT (Music_function); -static scm_t_bits music_function_tag; +const char Music_function::type_p_name_[] = "ly:music-function?"; /* Print a textual represenation of the smob to a given port. */ -static int -print_music_function (SCM b, SCM port, scm_print_state *) +int +Music_function::print_smob (SCM port, scm_print_state *) { - SCM value = SCM_CELL_OBJECT_1 (b); - scm_puts ("#", port); /* Non-zero means success. */ return 1; } - -bool -is_music_function (SCM music_function) -{ - return (SCM_NIMP (music_function) && SCM_CELL_TYPE (music_function) == music_function_tag); -} - -SCM -get_music_function_transform (SCM music_function) -{ - if (!is_music_function (music_function)) - return SCM_UNDEFINED; - - return SCM_CELL_OBJECT_1 (music_function); -} - -static void -init_music_function (void) -{ - music_function_tag = scm_make_smob_type ("music-function", 0); - scm_set_smob_mark (music_function_tag, scm_markcdr); - scm_set_smob_print (music_function_tag, print_music_function); -} - -SCM -make_music_function (SCM signature, SCM func) -{ - scm_set_object_property_x (func, ly_symbol2scm ("music-function-signature"), - signature); - - SCM_RETURN_NEWSMOB (music_function_tag, func); -} - -ADD_SCM_INIT_FUNC (music_function_tag, init_music_function); -