1====================== DYNAMIC INTERFACE ====================== 2 3 Interface modules that are specified with `-i' option can be 4loadable modules by using dynamic link module. 5 Place the shared library 6 7 if_<NAME>.so 8 9on the SHARED_LIB_PATH directory. In this case <NAME> is the interface's 10short name to be identified. 11 TiMidity++ requires to this shared library the following function: 12 (In this case <ID> is the interface's ID that are specified at `-i' option.) 13 14ControlMode* interface_<ID>_loader(void) 15{ 16 ControlMode* ctl; 17 /* ... */ 18 19 return ctl; 20} 21 22 If the dynamic interface that are specified at -i<ID>, TiMidity++ 23loads if_<NAME>.so at the SHARED_LIB_PATH (this is the macro specified 24in the Makefile) and calls a function in the shared library 25interface_<ID>_loader(). 26 27 If a file 28 29 if_<NAME>.txt 30 31describing the information about the interface by 1 line is in the 32SHARED_LIB_PATH, TiMidity++ displays this information when `-h' 33option is specified. 34 35 36WARNING: 37 38 You shouldn't specify the interface you want to build as dynamic link 39as enabled in Makefile. TiMidity++ searches its interfaces first from 40interfaces statically linked with TiMidity++, and next from dynamic linked 41interfaces. 42 43