rpms/zynaddsubfx/devel zynaddsubfx-096a2a2db9bc7d7f9bb2bf8ee12136134708ef23.patch, NONE, 1.1 zynaddsubfx-5bf008e390b86944b8175c21f2a021a4d6863de2.patch, NONE, 1.1 zynaddsubfx.spec, 1.16, 1.17

Orcan Ogetbil oget at fedoraproject.org
Tue Sep 8 21:28:06 UTC 2009


Author: oget

Update of /cvs/pkgs/rpms/zynaddsubfx/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv1540

Modified Files:
	zynaddsubfx.spec 
Added Files:
	zynaddsubfx-096a2a2db9bc7d7f9bb2bf8ee12136134708ef23.patch 
	zynaddsubfx-5bf008e390b86944b8175c21f2a021a4d6863de2.patch 
Log Message:
* Tue Sep 08 2009 Orcan Ogetbil <oget[DOT]fedora[AT]gmail[DOT]com> - 2.4.0-2
- Bugfix: presets and parameters don't load on ix86 (RHBZ #518755)


zynaddsubfx-096a2a2db9bc7d7f9bb2bf8ee12136134708ef23.patch:
 XMLwrapper.h |  253 +++++++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 195 insertions(+), 58 deletions(-)

--- NEW FILE zynaddsubfx-096a2a2db9bc7d7f9bb2bf8ee12136134708ef23.patch ---
From: fundamental <mark.d.mccurry at gmail.com>
Date: Fri, 4 Sep 2009 22:46:21 +0000 (-0400)
Subject: Gave XMLwrapper doxygen comments
X-Git-Url: http://zynaddsubfx.git.sourceforge.net/git/gitweb.cgi?p=zynaddsubfx%2Fzynaddsubfx;a=commitdiff_plain;h=096a2a2db9bc7d7f9bb2bf8ee12136134708ef23

Gave XMLwrapper doxygen comments
---

diff --git a/src/Misc/XMLwrapper.h b/src/Misc/XMLwrapper.h
index 6b6849f..9519021 100644
--- a/src/Misc/XMLwrapper.h
+++ b/src/Misc/XMLwrapper.h
@@ -1,9 +1,11 @@
 /*
   ZynAddSubFX - a software synthesizer
 
-  XML.h - XML wrapper
+  XMLwrapper.h - XML wrapper
   Copyright (C) 2003-2005 Nasca Octavian Paul
+  Copyright (C) 2009-2009 Mark McCurry
   Author: Nasca Octavian Paul
+          Mark McCurry
 
   This program is free software; you can redistribute it and/or modify
   it under the terms of version 2 of the GNU General Public License
@@ -34,143 +36,278 @@
 //the maxim tree depth
 #define STACKSIZE 100
 
+/**Mxml wrapper*/
 class XMLwrapper
 {
 public:
+    /**
+     * Constructor.
+     * Will Construct the object and fill in top level branch
+     * */
     XMLwrapper();
-    ~XMLwrapper();
 
-    /********************************/
-    /*         SAVE to XML          */
-    /********************************/
+    /**Destructor*/
+    ~XMLwrapper();
 
-    //returns 0 if ok or -1 if the file cannot be saved
+    /**
+     * Saves the XML to a file.
+     * @param filename the name of the destination file.
+     * @returns 0 if ok or -1 if the file cannot be saved.
+     */
     int saveXMLfile(const std::string &filename);
 
-    //returns the new allocated string that contains the XML data (used for clipboard)
-    //the string is NULL terminated
+    /**
+     * Return XML tree as a string.
+     * Note: The string must be freed with free() to deallocate
+     * @returns a newly allocated NULL terminated string of the XML data.
+     */
     char *getXMLdata();
 
-    //add simple parameter (name and value)
+    /**
+     * Add simple parameter.
+     * @param name The name of the mXML node.
+     * @param val  The string value of the mXml node
+     */
     void addpar(const std::string &name,int val);
+
+    /**
+     * Adds a realtype parameter.
+     * @param name The name of the mXML node.
+     * @param val  The REALTYPE value of the node.
+     */
     void addparreal(const std::string &name,REALTYPE val);
 
-    //add boolean parameter (name and boolean value)
-    //if the value is 0 => "yes", else "no"
+    /**
+     * Add boolean parameter.
+     * \todo Fix this reverse boolean logic.
+     * @param name The name of the mXML node.
+     * @param val The boolean value of the node (0->"yes";else->"no").
+     */
     void addparbool(const std::string &name,int val);
 
-    //add string parameter (name and string)
+    /**
+     * Add string parameter.
+     * @param name The name of the mXML node.
+     * @param val  The string value of the node.
+     */
     void addparstr(const std::string &name,const std::string &val);
 
-    //add a branch
+    /**
+     * Create a new branch.
+     * @param name Name of new branch
+     * @see void endbranch()
+     */
     void beginbranch(const std::string &name);
+    /**
+     * Create a new branch.
+     * @param name Name of new branch
+     * @param id "id" value of branch
+     * @see void endbranch()
+     */
     void beginbranch(const std::string &name, int id);
 
-    //this must be called after each branch (nodes that contains child nodes)
+    /**Closes new branches.
+     * This must be called to exit each branch created by beginbranch( ).
+     * @see void beginbranch(const std::string &name)
+     * @see void beginbranch(const std::string &name, int id)
+     */
     void endbranch();
 
-    /********************************/
-    /*        LOAD from XML         */
-    /********************************/
-
-    //returns 0 if ok or -1 if the file cannot be loaded
+    /**
+     * Loads file into XMLwrapper.
+     * @param filename file to be loaded
+     * @returns 0 if ok or -1 if the file cannot be loaded
+     */
     int loadXMLfile(const std::string &filename);
 
-    //used by the clipboard
+    /**
+     * Loads string into XMLwrapper.
+     * @param xmldata NULL terminated string of XML data.
+     * @returns true if successful.
+     */
     bool putXMLdata(const char *xmldata);
 
-    //enter into the branch
-    //returns 1 if is ok, or 0 otherwise
+    /**
+     * Enters the branch.
+     * @param name Name of branch.
+     * @returns 1 if is ok, or 0 otherwise.
+     */
     int enterbranch(const std::string &name);
 
-
-    //enter into the branch with id
-    //returns 1 if is ok, or 0 otherwise
+    /**
+     * Enter into the branch \c name with id \c id.
+     * @param name Name of branch.
+     * @param id Value of branch's "id".
+     * @returns 1 if is ok, or 0 otherwise.
+     */
     int enterbranch(const std::string &name, int id);
 
-    //exits from a branch
+    /**Exits from a branch*/
     void exitbranch();
 
-    //get the the branch_id and limits it between the min and max
-    //if min==max==0, it will not limit it
-    //if there isn't any id, will return min
-    //this must be called only imediately after enterbranch()
+    /**Get the the branch_id and limits it between the min and max.
+     * if min==max==0, it will not limit it
+     * if there isn't any id, will return min
+     * this must be called only imediately after enterbranch()
+     */
     int getbranchid(int min, int max);
 
-    //it returns the parameter and limits it between min and max
-    //if min==max==0, it will not limit it
-    //if no parameter will be here, the defaultpar will be returned
+    /**
+     * Returns the integer value stored in node name.
+     * It returns the integer value between the limits min and max.
+     * If min==max==0, then the value will not be limited.
+     * If there is no location named name, then defaultpar will be returned.
+     * @param name The parameter name.
+     * @param defaultpar The default value if the real value is not found.
+     * @param min The minimum return value.
+     * @param max The maximum return value.
+     */
     int getpar(const std::string &name,int defaultpar,int min,int max);
 
-    //the same as getpar, but the limits are 0 and 127
+    /**
+     * Returns the integer value stored in the node with range [0,127].
+     * @param name The parameter name.
+     * @param defaultpar The default value if the real value is not found.
+     */
     int getpar127(const std::string &name,int defaultpar);
 
+    /**
+     * Returns the boolean value stored in the node.
+     * @param name The parameter name.
+     * @param defaultpar The default value if the real value is not found.
+     */
     int getparbool(const std::string &name,int defaultpar);
 
+    /**
+     * Get the string value stored in the node.
+     * @param name The parameter name.
+     * @param par  Pointer to destination string
+     * @param maxstrlen Max string length for destination
+     */
     void getparstr(const std::string &name,char *par,int maxstrlen);
+
+    /**
+     * Returns the real value stored in the node.
+     * @param name The parameter name.
+     * @param defaultpar The default value if the real value is not found.
+     */
     REALTYPE getparreal(const char *name,REALTYPE defaultpar);
+
+    /**
+     * Returns the real value stored in the node.
+     * @param name The parameter name.
+     * @param defaultpar The default value if the real value is not found.
+     * @param min The minimum value
+     * @param max The maximum value
+     */
     REALTYPE getparreal(const char *name,REALTYPE defaultpar,REALTYPE min,REALTYPE max);
 
-    bool minimal;//false if all parameters will be stored (used only for clipboard)
+    bool minimal;/**<false if all parameters will be stored (used only for clipboard)*/
 
     struct {
-        bool PADsynth_used;
-    }information;
+        bool PADsynth_used;/**<if PADsynth is used*/
+    }information;/**<Defines if PADsynth is used*/
 
-    //opens a file and parse only the "information" data on it
-    //returns "true" if all went ok or "false" on errors
+    /**
+     * Opens a file and parses the "information" section data on it.
+     * @returns "true" if all went ok or "false" on errors.
+     */
     bool checkfileinformation(const char *filename);
 
 private:
 
+    /**
+     * Save the file.
+     * @param filename File to save to
+     * @param compression Level of gzip compression
+     * @param xmldata String to be saved
+     */
     int dosavefile(const char *filename,int compression,const char *xmldata);
+
+    /**Loads the file.
+     * @param filename the name of the file
+     * @returns gunziped contents of file
+     */
     char *doloadfile(const std::string &filename);
 
 
-    mxml_node_t *tree;//all xml data
-    mxml_node_t *root;//xml data used by zynaddsubfx
-    mxml_node_t *node;//current node
-    mxml_node_t *info;//this node is used to store the information about the data
+    mxml_node_t *tree;/**<all xml data*/
+    mxml_node_t *root;/**<xml data used by zynaddsubfx*/
+    mxml_node_t *node;/**<current node*/
+    mxml_node_t *info;/**<Node used to store the information about the data*/
 
-    //adds params like this:
-    // <name>
-    //returns the node
+    /**
+     * Adds params like this:
+     * <name>.
+     * @returns The node
+     */
     mxml_node_t *addparams0(const char *name);
 
-    //adds params like this:
-    // <name par1="val1">
-    //returns the node
+    /**
+     * Adds params like this:
+     * <name par1="val1">.
+     * @returns The node
+     */
     mxml_node_t *addparams1(const char *name,const char *par1,const char *val1);
 
-    //adds params like this:
-    // <name par1="val1" par2="val2">
-    //returns the node
+    /**
+     * Adds params like this:
+     * <name par1="val1" par2="val2">.
+     * @returns the node
+     */
     mxml_node_t *addparams2(const char *name,const char *par1,const char *val1,const char *par2, const char *val2);
 
+    /**
+     * Convert integer to string
+     * @param x integer input
+     * @returns string output
+     */
     char *int2str(int x);
+
+    /**
+     * Convert integer to string
+     * @param x integer input
+     * @returns string output
+     */
     char *real2str(REALTYPE x);
 
+    /**
+     * Convert string to int
+     * @param str string input
+     * @returns integer output
+     */
     int str2int(const char *str);
+
+    /**
+     * Convert string to realtype
+     * @param x integer input
+     * @returns string output
+     */
     REALTYPE str2real(const char *str);
 
+    /**Temporary string for various uses*/
     char tmpstr[TMPSTR_SIZE];
 
 
-    //this is used to store the parents
+    /**this is used to store the parents.
+     * @todo Use the stack class provided by C++*/
     mxml_node_t *parentstack[STACKSIZE];
-    int stackpos;
+    int stackpos;/**<position in stack*/
 
 
     void push(mxml_node_t *node);
+
+    /**Pops top node off of parent stack*/
     mxml_node_t *pop();
+    /**Returns top node off of parent stack*/
     mxml_node_t *peek();
 
-    //theese are used to store the values
     struct {
         struct {
-            int major,minor;
-        }xml_version;
-    }values;
+            int major;/**<major version number.*/
+            int minor;/**<minor version number.*/
+        }xml_version;/**<Stores ZynAddSubFX versioning information*/
+    }values;/**< Stores ZynAddSubFX versioning information*/
 
 };
 

zynaddsubfx-5bf008e390b86944b8175c21f2a021a4d6863de2.patch:
 XMLwrapper.cpp |   76 ++++++++++++++++++++++++---------------------------------
 XMLwrapper.h   |    9 ++++--
 2 files changed, 38 insertions(+), 47 deletions(-)

--- NEW FILE zynaddsubfx-5bf008e390b86944b8175c21f2a021a4d6863de2.patch ---
From: fundamental <mark.d.mccurry at gmail.com>
Date: Tue, 8 Sep 2009 02:59:33 +0000 (-0400)
Subject: Fixed error in XMLwrapper::doloadfile( )
X-Git-Url: http://zynaddsubfx.git.sourceforge.net/git/gitweb.cgi?p=zynaddsubfx%2Fzynaddsubfx;a=commitdiff_plain;h=5bf008e390b86944b8175c21f2a021a4d6863de2

Fixed error in XMLwrapper::doloadfile( )

Fixed error that prevented XMLwrapper from loading files on Fedora
---

diff --git a/src/Misc/XMLwrapper.cpp b/src/Misc/XMLwrapper.cpp
index 2731d41..078cbb8 100644
--- a/src/Misc/XMLwrapper.cpp
+++ b/src/Misc/XMLwrapper.cpp
@@ -21,9 +21,13 @@
 */
 
 #include "XMLwrapper.h"
+#include <cstring>
 #include <stdio.h>
 #include <stdlib.h>
+#include <cstdarg>
 #include <zlib.h>
+#include <iostream>
+#include <sstream>
 
 #include "../globals.h"
 #include "Util.h"
@@ -303,48 +307,34 @@ int XMLwrapper::loadXMLfile(const string &filename)
 
 char *XMLwrapper::doloadfile(const string &filename)
 {
-    char *xmldata=NULL;
-    int filesize=-1;
-
-    //try get filesize as gzip data (first)
-    gzFile gzfile=gzopen(filename.c_str(),"rb");
-    if (gzfile!=NULL) {//this is a gzip file
-        // first check it's size
-        while (!gzeof(gzfile)) {
-            gzseek (gzfile,1024*1024,SEEK_CUR);
-            if (gztell(gzfile)>10000000) {
-                gzclose(gzfile);
-                goto notgzip;//the file is too big
-            };
-        };
-        filesize=gztell(gzfile);
-
-        //rewind the file and load the data
-        xmldata=new char[filesize+1];
-        ZERO(xmldata,filesize+1);
-
-        gzrewind(gzfile);
-        gzread(gzfile,xmldata,filesize);
+    char * xmldata = NULL;
+    gzFile gzfile  = gzopen(filename.c_str(),"rb");
 
-        gzclose(gzfile);
-        return (xmldata);
-    } else {//this is not a gzip file
-notgzip:
-        FILE *file=fopen(filename.c_str(),"rb");
-        if (file==NULL) return(NULL);
-        fseek(file,0,SEEK_END);
-        filesize=ftell(file);
+    if (gzfile != NULL) {//The possibly compressed file opened
 
-        xmldata=new char [filesize+1];
-        ZERO(xmldata,filesize+1);
+        stringstream strBuf;             //reading stream
+        const int    bufSize = 500;      //fetch size
+        char         fetchBuf[bufSize+1];//fetch buffer
+        int          read    = 0;        //chars read in last fetch
 
-        rewind(file);
-        fread(xmldata,filesize,1,file);
+        fetchBuf[bufSize] = 0;//force null termination
 
-        fclose(file);
-        return(xmldata);
-    };
-};
+        while(bufSize == (read = gzread(gzfile, fetchBuf, bufSize)))
+            strBuf << fetchBuf;
+
+        fetchBuf[read] = 0;//Truncate last partial read
+        strBuf << fetchBuf;
+
+        gzclose(gzfile);
+
+        //Place data in output format
+        string tmp = strBuf.str();
+        xmldata = new char[tmp.size()+1];
+        strncpy(xmldata, tmp.c_str(), tmp.size()+1);
+    }
+
+    return xmldata;
+}
 
 bool XMLwrapper::putXMLdata(const char *xmldata)
 {
@@ -393,6 +383,7 @@ int XMLwrapper::enterbranch(const string &name,int id)
 
 void XMLwrapper::exitbranch()
 {
+    /**@bug Does not set the current node correctly*/
     pop();
 };
 
@@ -524,13 +515,10 @@ mxml_node_t *XMLwrapper::addparams2(const char *name,const char *par1,const char
     return(element);
 };
 
-
-
-
 void XMLwrapper::push(mxml_node_t *node)
 {
     if (stackpos>=STACKSIZE-1) {
-        printf("BUG!: XMLwrapper::push() - full parentstack\n");
+        cerr << "BUG!: XMLwrapper::push() - full parentstack" << endl;
         return;
     };
     stackpos++;
@@ -542,7 +530,7 @@ void XMLwrapper::push(mxml_node_t *node)
 mxml_node_t *XMLwrapper::pop()
 {
     if (stackpos<=0) {
-        printf("BUG!: XMLwrapper::pop() - empty parentstack\n");
+        cerr << "BUG!: XMLwrapper::pop() - empty parentstack" << endl;
         return (root);
     };
     mxml_node_t *node=parentstack[stackpos];
@@ -557,7 +545,7 @@ mxml_node_t *XMLwrapper::pop()
 mxml_node_t *XMLwrapper::peek()
 {
     if (stackpos<=0) {
-        printf("BUG!: XMLwrapper::peek() - empty parentstack\n");
+        cerr << "BUG!: XMLwrapper::peek() - empty parentstack" << endl;
         return (root);
     };
     return(parentstack[stackpos]);
diff --git a/src/Misc/XMLwrapper.h b/src/Misc/XMLwrapper.h
index 9519021..ccf875d 100644
--- a/src/Misc/XMLwrapper.h
+++ b/src/Misc/XMLwrapper.h
@@ -224,9 +224,12 @@ private:
      */
     int dosavefile(const char *filename,int compression,const char *xmldata);
 
-    /**Loads the file.
-     * @param filename the name of the file
-     * @returns gunziped contents of file
+    /**
+     * Loads specified file and returns data.
+     * 
+     * Will load a gziped file or an uncompressed file.
+     * @param filename the file
+     * @return The decompressed data
      */
     char *doloadfile(const std::string &filename);
 


Index: zynaddsubfx.spec
===================================================================
RCS file: /cvs/pkgs/rpms/zynaddsubfx/devel/zynaddsubfx.spec,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -p -r1.16 -r1.17
--- zynaddsubfx.spec	6 Aug 2009 07:25:48 -0000	1.16
+++ zynaddsubfx.spec	8 Sep 2009 21:28:06 -0000	1.17
@@ -1,7 +1,7 @@
 Summary:        Real-time software synthesizer
 Name:           zynaddsubfx
 Version:        2.4.0
-Release:        1%{?dist}
+Release:        2%{?dist}
 License:        GPLv2+
 Group:          Applications/Multimedia
 URL:            http://zynaddsubfx.sourceforge.net
@@ -11,6 +11,11 @@ Patch0:         zynaddsubfx-jack-support
 Patch1:         zynaddsubfx-fltk-config-broken.patch
 Patch2:         zynaddsubfx-fltk-config-broken-2.patch
 Patch3:         zynaddsubfx-build-flags.patch
+# Fixed error that prevented XMLwrapper from loading files on Fedora
+# http://sourceforge.net/support/tracker.php?aid=2852148
+# Also RHBZ #518755
+Patch4:         zynaddsubfx-096a2a2db9bc7d7f9bb2bf8ee12136134708ef23.patch
+Patch5:         zynaddsubfx-5bf008e390b86944b8175c21f2a021a4d6863de2.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 Requires:       fltk >= 1.1.3
@@ -35,10 +40,12 @@ effects like Reverb, Echo, Chorus, Phase
 
 %prep
 %setup -q -n ZynAddSubFX-%{version}
-%patch0 -p1
-%patch1 -p0
-%patch2 -p1
-%patch3 -p1
+%patch0 -p1 -b .jack
+%patch1 -p0 -b .fltk1
+%patch2 -p1 -b .fltk2
+%patch3 -p1 -b .flags
+%patch4 -p1 -b .doxy
+%patch5 -p1 -b .loadfiles
 
 %build
 %ifarch %{ix86} x86_64 
@@ -125,6 +132,9 @@ gtk-update-icon-cache %{_datadir}/icons/
 %{_datadir}/icons/hicolor/64x64/apps/zynaddsubfx.png
 
 %changelog
+* Tue Sep 08 2009 Orcan Ogetbil <oget[DOT]fedora[AT]gmail[DOT]com> - 2.4.0-2
+- Bugfix: presets and parameters don't load on ix86 (RHBZ #518755)
+
 * Thu Aug 06 2009 Orcan Ogetbil <oget[DOT]fedora[AT]gmail[DOT]com> - 2.4.0-1
 - Update to 2.4.0
 - Update scriptlets according to new guidelines




More information about the fedora-extras-commits mailing list