From reading through the code, I can understand that the parameters are read from the XML config file and stored in the void pointer "data", but if I am writing a new playlist module that needs additional parameters, how would I go about handling adding this to the code? I have a MySQL playlist module written, but I cannot seem to integrate the parameters such that the admin would be able to define the MySQL connection options in the XML config file. Any help would be appreciated, and yes, I do realize that my coding skills are VERY rusty. Please forgive me if the answer to this question SHOULD be obvious. Deven --- >8 ---- List archives: http://www.xiph.org/archives/ icecast project homepage: http://www.icecast.org/ To unsubscribe from this list, send a message to 'icecast-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
first you'd add your new elements to the ice_config_t struct in cfgfile.h (probably would go there as opposed to any of the substructures of it).... then you'd probably modify _parse_root() in cfgfile.c to populate your new elements....Thats pretty much all there is to adding new config elements....then you just need to do something with them...which means something like : ice_config_t *config = config_get_config(); /* Access your config elements */ config_release_config(); hope it helps.. oddsock At 05:18 PM 11/20/2003 -1000, you wrote:> From reading through the code, I can understand that the parameters are > read from the XML config file and stored in the void pointer "data", but > if I am writing a new playlist module that needs additional parameters, > how would I go about handling adding this to the code? I have a MySQL > playlist module written, but I cannot seem to integrate the parameters > such that the admin would be able to define the MySQL connection options > in the XML config file. > >Any help would be appreciated, and yes, I do realize that my coding skills >are VERY rusty. Please forgive me if the answer to this question SHOULD be >obvious. > >Deven > >--- >8 ---- >List archives: http://www.xiph.org/archives/ >icecast project homepage: http://www.icecast.org/ >To unsubscribe from this list, send a message to >'icecast-dev-request@xiph.org' >containing only the word 'unsubscribe' in the body. No subject is needed. >Unsubscribe messages sent to the list will be ignored/filtered. ><p>--- >8 ---- List archives: http://www.xiph.org/archives/ icecast project homepage: http://www.icecast.org/ To unsubscribe from this list, send a message to 'icecast-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
On Friday 21 November 2003 14:18, Deven Phillips wrote:> From reading through the code, I can understand that the parameters are > read from the XML config file and stored in the void pointer "data", but > if I am writing a new playlist module that needs additional parameters, > how would I go about handling adding this to the code? I have a MySQL > playlist module written, but I cannot seem to integrate the parameters > such that the admin would be able to define the MySQL connection options > in the XML config file. > > Any help would be appreciated, and yes, I do realize that my coding > skills are VERY rusty. Please forgive me if the answer to this question > SHOULD be obvious. > > DevenDeven, Are you trying to add your playlist module to ices2? Or ices 0.x? Or something else entirely? You forgot to say anything about _what_ code you were reading through. If you're talking about ices2, then it works like this: 1) Create new playlist_mysql.c, add it to Makefile.am so it gets built 2) Edit im_playlist.c, add (around line 50) your new playlist initialisation function - you'll probably want to include playlist_mysql.h for the declaration of it. The string should be 'mysql', this'll be the config string to use this module. 3) In playlist_mysql.c, add your new playlist_mysql_initialise function. This gets passed a module_param_t * - this is the first item in a linked list of parameters, each one having a name and a value (name and value are both strings). Iterate over the list, getting out any parameters you need. You'll also need to initialise the playlist structure (playlist_state_t *pl). You can allocate and use pl->data as private storage for your playlist module. 4) Write the other functions used for the playlist, most notably playlist_mysql_get_next_filename() - the data parameter is your pl->data private data pointer, whatever that might be. Use it however you want. You need to return a filename, this is the next file that will be played. Mike <p>--- >8 ---- List archives: http://www.xiph.org/archives/ icecast project homepage: http://www.icecast.org/ To unsubscribe from this list, send a message to 'icecast-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.