fixes in swfstrings
[swftools.git] / lib / modules / swfobject.c
index c0abe75..36b66d4 100644 (file)
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 
-#define PF_MOVE         0x01
-#define PF_CHAR         0x02
-#define PF_MATRIX       0x04
-#define PF_CXFORM       0x08
-#define PF_RATIO        0x10
-#define PF_NAME         0x20
-#define PF_CLIPDEPTH    0x40
-#define PF_ACTIONEVENT  0x80
-
-#define PF2_FILTERS      0x01
-#define PF2_BLENDMODE    0x02
-#define PF2_ASBITMAP     0x04
-//...
+#include "../rfxswf.h"
+
 
 char*blendModeNames[] = {"normal","normal2","layer","multiply",
                       "screen","lighten", "darken","add",
@@ -68,7 +57,7 @@ int isUnitCXForm(CXFORM* cx)
     return 0;
 }
 
-static int objectplace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name, U16 clipaction, U8 blendmode, FILTERLIST*filters)
+static int objectplace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const U8 * name, U16 clipaction, U8 blendmode, FILTERLIST*filters)
 { U8 flags,flags2;
   if (!t) return -1;
 
@@ -98,15 +87,15 @@ static int objectplace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name
     swf_SetU8(t,blendmode);
   return 0; 
 }
-int swf_ObjectPlace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name)
+int swf_ObjectPlace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const U8 * name)
 {
     return objectplace(t,id,depth,m,cx,name,0,0,0);
 }
-int swf_ObjectPlaceClip(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name, U16 clipaction)
+int swf_ObjectPlaceClip(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const U8 * name, U16 clipaction)
 { 
     return objectplace(t,id,depth,m,cx,name,clipaction,0,0);
 }
-int swf_ObjectPlaceBlend(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name, U8 blend)
+int swf_ObjectPlaceBlend(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const U8 * name, U8 blend)
 { 
     if(t->id != ST_PLACEOBJECT3)
        fprintf(stderr, "wrong tag- ignoring blend mode\n");
@@ -164,8 +153,10 @@ void swf_SetPlaceObject(TAG * t,SWFPLACEOBJECT* obj)
 
 void swf_GetPlaceObject(TAG * tag,SWFPLACEOBJECT* obj)
 {
-    if(!tag) {
+    if(obj)
        memset(obj, 0, sizeof(SWFPLACEOBJECT));
+
+    if(!tag) {
        swf_GetMatrix(0, &obj->matrix);
        swf_GetCXForm(0, &obj->cxform, 1);
        //obj->internal = PF_CHAR|PF_MATRIX|PF_CXFORM;
@@ -204,9 +195,9 @@ void swf_GetPlaceObject(TAG * tag,SWFPLACEOBJECT* obj)
             int l,t;
             U8*data;
             swf_ResetReadBits(tag);
-            l = strlen(&tag->data[tag->pos]);
+            l = strlen((const char *)&tag->data[tag->pos]);
             t = 0;
-            data = rfx_alloc(l+1);
+            data = (U8*)rfx_alloc(l+1);
             obj->name = data;
             while((data[t++] = swf_GetU8(tag))); 
         }