It is currently Sat May 25, 2013 12:29 pm

All times are UTC + 1 hour




Post new topic Reply to topic  [ 88 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6
Author Message
 Post subject:
PostPosted: Fri Oct 24, 2008 4:28 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Wed Aug 24, 2005 4:02 pm
Posts: 525
Location: Germany
I download "LibXSLT", but I can't find the file "RW_LibXML2_Inc.pb" in the archive.

_________________
PS: Sorry for my bad English. My native language is German.

My PureBasic-Project: EasySetup - SetupMaker for your programs
[Windows 7 x64] [PB V5.0x]


Top
 Profile  
 
 Post subject:
PostPosted: Sun Nov 16, 2008 10:27 pm 
Offline
PureBasic Expert
PureBasic Expert
User avatar

Joined: Fri Apr 25, 2003 4:47 pm
Posts: 600
Location: New Zealand
does anyone have any examples of libcurl for changing directories and getting a list ?

I have something that works but it's just not right;

Code:
bad code see below for good code :)


when it changes directory I get all previous content directories before it, and I really don't think it's right to have to add the address when changing directories it just feels wrong.


Last edited by Inner on Mon Nov 17, 2008 8:55 am, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Mon Nov 17, 2008 1:21 am 
Offline
PureBasic Expert
PureBasic Expert
User avatar

Joined: Fri Apr 25, 2003 4:47 pm
Posts: 600
Location: New Zealand
Actually I think you've got a bug somewhere;

Code:
ProcedureC Curl_FTP_Debug(*cp.l,type.l,*buf.l,length.l,*ctx.l)
  PrintN(PeekS(*buf))
  ProcedureReturn 0
EndProcedure


Corrupted strings in the output by using;

Code:
  *slist = curl_slist_append(*slist,"ls")
  curl_easy_setopt(curl,#CURLOPT_QUOTE,*slist) 
  res = curl_easy_perform(curl)
  curl_slist_free_all(slist)


With a brutal lack of documentation, and enforced reconnection to change directories libcurl at least for PB doesn't seem like a preferred method right now for me, of course I could be just messing this all up, but without proper documentation it's a useless library not that has reflection on the importer of the library.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Nov 17, 2008 8:59 am 
Offline
PureBasic Expert
PureBasic Expert
User avatar

Joined: Fri Apr 25, 2003 4:47 pm
Posts: 600
Location: New Zealand
Alright finally got it working there is however a serious buffer problem with;

Code:
ProcedureC  RW_LibCurl_WriteFunction(*ptr, Size, NMemB, *Stream)
  ;retreives utf-8/ascii encoded data
  Protected SizeProper.l  = Size & 255
  Protected NMemBProper.l = NMemB
  Protected MyDataS.s
  Shared ReceivedData.s
  ReceivedData=""
  Debug "!!! "+ReceivedData
  MyDataS = PeekS(*ptr, SizeProper * NMemBProper)
  ReceivedData + MyDataS
  ;Debug "> " + MyDataS
  ;Debug "# " + Str(Len(MyDataS))
  ;Debug "@ " + Str(Len(ReceivedData))
  ProcedureReturn SizeProper * NMemBProper
EndProcedure


With large directories it just falls on it's face and gives you half measures of what is actually being read in, when you view the debug output.

And yes there is a reason I'm nuking the ReceivedData string to "", because on calls to the function following it just keeps filling and filling into infinity.

Code:
XIncludeFile "RW_LibCurl_Res.pb"
XIncludeFile "RW_LibCurl_Inc.pb"

;- Window Constants
;
Enumeration
  #FTPMAINWINDOW
EndEnumeration

;- Gadget Constants
;
Enumeration
  #GAD_FTPBROWSERLIST
  #GAD_FTPLOCATION
  #GAD_OK
  #GAD_CANCEL
  #GAD_FTPUP
EndEnumeration

#DIRECTORY=1000

Macro CurlError(value)
  PeekS(curl_easy_strerror(value))
EndMacro

ProcedureC Curl_FTP_Debug(*cp.l,type.l,*buf.l,length.l,*ctx.l)
  PrintN(PeekS(*buf))
  ProcedureReturn 0
EndProcedure

Procedure Curl_FTP_List(curl.l,ftp_url.s,login.s, mdp.s, timeout.l = 10)
  url.s = "ftp://"+login+":"+mdp+"@"+ftp_url
 
  Debug url
 
  If curl=0
    curl = curl_easy_init()
  EndIf
  If curl
    curl_easy_setopt(curl, #CURLOPT_URL, @url)
    curl_easy_setopt(curl, #CURLOPT_TIMEOUT, timeout.l)
    curl_easy_setopt(curl, #CURLOPT_CONNECTTIMEOUT, timeout.l)
    curl_easy_setopt(curl, #CURLOPT_FTPLISTONLY, #True)
    curl_easy_setopt(curl, #CURLOPT_DEBUGFUNCTION, @Curl_FTP_Debug())   
    curl_easy_setopt(curl, #CURLOPT_VERBOSE, #True)
    curl_easy_setopt(curl, #CURLOPT_WRITEFUNCTION, @RW_LibCurl_WriteFunction())
    res = curl_easy_perform(curl)
    If res <> #False
      ProcedureReturn #False;
    Else
      ClearGadgetItems(#GAD_FTPBROWSERLIST)
      FileList.s=""
      FileList.s = ReplaceString(RW_LibCurl_GetData(), Chr(13)+Chr(10),",")
      For i = 1 To CountString(FileList, ",")
        If GetExtensionPart(StringField(FileList, i, ",")) =""
          ;Debug "["+StringField(FileList, i, "-")+"]"
          AddGadgetItem(#GAD_FTPBROWSERLIST,-1,"*"+Chr(10)+StringField(FileList, i, ","))
          SetGadgetItemData(#GAD_FTPBROWSERLIST,i-1,#DIRECTORY)

        Else
          AddGadgetItem(#GAD_FTPBROWSERLIST,-1,Chr(10)+StringField(FileList, i, ","))
        EndIf
      Next
      ProcedureReturn curl
    EndIf
  Else
    ProcedureReturn #False
  EndIf
EndProcedure

Procedure.s DirUP(string.s)
  dirdepth.l=CountString(string,"/") 
  For i=1 To Len(string)
    If Mid(string,i,1)="/"
      depthlvl=depthlvl+1
      Debug Mid(string,1,i)
      If depthlvl=dirdepth-1
        ProcedureReturn Mid(string,1,i)
      EndIf       
    EndIf
  Next

EndProcedure

Procedure Open_FTPMAINWINDOW(address.s,user.s,pass.s,dir.s)
  If OpenWindow(#FTPMAINWINDOW, 404, 316, 466, 500, "FTP Browser ("+address+")",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    ListIconGadget(#GAD_FTPBROWSERLIST, 5, 35, 455, 430, "", 25, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
    AddGadgetColumn(#GAD_FTPBROWSERLIST, 1, "File", 300)
    AddGadgetColumn(#GAD_FTPBROWSERLIST, 2, "Size", 100)
    StringGadget(#GAD_FTPLOCATION, 40, 5, 415, 25, "")
    ButtonGadget(#GAD_FTPUP, 5, 5, 25, 25, "Up")
    ButtonGadget(#GAD_OK, 5, 470, 105, 25, "Ok")
    ButtonGadget(#GAD_CANCEL, 355, 470, 105, 25, "Cancel")
  EndIf
  SetGadgetText(#GAD_FTPLOCATION,dir)
  WindowEvent()
  OpenConsole()
  curl=Curl_FTP_List(0,address.s,user.s,pass.s)
  Repeat
    event=WaitWindowEvent()
    eventtype=EventType()
    Select Event     
       Case #PB_Event_Gadget
         Select EventGadget()
           Case #GAD_FTPUP
            dir.s=DirUP(GetGadgetText(#GAD_FTPLOCATION))
            Debug dir
            Curl_FTP_List(curl,address+dir+"/",user,pass)
            SetGadgetText(#GAD_FTPLOCATION,dir)
           Case #GAD_FTPBROWSERLIST
             If eventtype=#PB_EventType_LeftDoubleClick
               If GetGadgetItemData(#GAD_FTPBROWSERLIST,GetGadgetState(#GAD_FTPBROWSERLIST))=#DIRECTORY
                newdir.s=GetGadgetItemText(#GAD_FTPBROWSERLIST,GetGadgetState(#GAD_FTPBROWSERLIST),1)
                olddir.s=GetGadgetText(#GAD_FTPLOCATION)               
                dir.s=olddir+newdir+"/"               
                Curl_FTP_List(curl,address+dir+"/",user,pass)
                SetGadgetText(#GAD_FTPLOCATION,dir)
               EndIf
             EndIf
         EndSelect
    EndSelect
       
  Until event=#PB_Event_CloseWindow
  curl_easy_cleanup(curl)
  CloseConsole()
EndProcedure

Open_FTPMAINWINDOW("ftp.modland.com","anonymous","","/")


The above is functional.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Nov 17, 2008 1:49 pm 
Offline
PureBasic Expert
PureBasic Expert
User avatar

Joined: Fri Apr 25, 2003 4:47 pm
Posts: 600
Location: New Zealand
a fix;

Code:
#FTPEOL=Chr(13)+Chr(10)

ProcedureC LibCurl_WriteFunction(*ptr, Size, NMemB, *Stream)
  Protected SizeProper.l  = Size & 255
  Protected NMemBProper.l = NMemB
  rdata.s=PeekS(*ptr)
  loops=CountString(rdata,#FTPEOL)
  For i=1 To loops
    file.s=RemoveString(StringField(rdata,i,#FTPEOL),Chr(13))
    file.s=RemoveString(file,Chr(10))
    PrintN(file)
  Next

  ProcedureReturn SizeProper * NMemBProper
EndProcedure


warning may have bugs, it's entirely possible that a folder/file could start after the last #FTPEOL and continue on until the next call from libcurl to the writefunction, because we're dealing with a stream.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Nov 19, 2008 6:08 am 
Offline
PureBasic Expert
PureBasic Expert
User avatar

Joined: Fri Apr 25, 2003 4:47 pm
Posts: 600
Location: New Zealand
Code:
;================================================================
; Project   LibCurl
; Title     BrowseDownload.pb
; Author    T.J.Roughton
; Date      19/11/2008
; Notes     Browse & Download
;================================================================
XIncludeFile "RW_LibCurl_Res.pb"
XIncludeFile "RW_LibCurl_Inc.pb"

;- Window Constants
;
Enumeration
  #FTPMAINWINDOW
EndEnumeration

;- Gadget Constants
;
Enumeration
  #GAD_FTPBROWSERLIST
  #GAD_FTPLOCATION
  #GAD_OK
  #GAD_CANCEL
  #GAD_FTPUP
  #GAD_GO
  #GAD_DOWNLOAD
  #GAD_PROGRESS
EndEnumeration

#DIRECTORY=1000
#FTPEOL=Chr(13)+Chr(10)

Structure S_FtpFile
  filename.s
  stream.l
EndStructure
Global ftpfile.S_FtpFile

Macro CurlError(value)
  PeekS(curl_easy_strerror(value))
EndMacro

ProcedureC Curl_FTP_Debug(*cp.l,type.l,*buf.l,length.l,*ctx.l)
  PrintN(PeekS(*buf))
  ProcedureReturn 0
EndProcedure

ProcedureC LibCurl_WriteFunction(*ptr, Size, NMemB, *Stream)
  Protected SizeProper.l  = Size & 255
  Protected NMemBProper.l = NMemB
  rdata.s=PeekS(*ptr)
  ;
  ; LIST
  ; 
;  nline.l=CountString(rdata,#FTPEOL)
;   For i=1 To nline
;     line.s=StringField(rdata,i,#FTPEOL)
;     idfile.b=#True
;     For id=1 To 2
;       If LCase(Mid(line,id,1))="d"
;         idfile=#False
;         Break
;       EndIf
;     Next
;     If idfile=#False
;       ;Debug "<DIR>"+Mid(line,10,Len(line))
;     Else
;       ;Debug "<FILE>"+Mid(line,10,Len(line))
;     EndIf
;     Debug ReplaceString(line," ","#")
;   Next
 
  CompilerSelect #PB_Compiler_OS
    CompilerCase #PB_OS_Linux
    iloop=CountString(rdata,Chr(10))
    For i=1 To iloop
      line.s=StringField(rdata,i,Chr(10))
      numargs.l=CountString(line,";")+1
      file.s=Trim(StringField(line,numargs,";"))
      If (file<>"." And file<>"..")
        idfile.b=#True
        For numi=1 To numargs
          WindowEvent()
          flag.s=Trim(LCase(StringField(line,numi,";")))
          If (FindString(flag,"type=dir",0) And file<>"")
            AddGadgetItem(#GAD_FTPBROWSERLIST,-1,"*"+Chr(10)+file)
            SetGadgetItemData(#GAD_FTPBROWSERLIST,CountGadgetItems(#GAD_FTPBROWSERLIST)-1,#DIRECTORY)
            idfile.b=#False
          ElseIf FindString(flag,"type=file",0)
            filename.s=file
          ElseIf FindString(flag,"size=",0)
            filesize.s=RemoveString(flag,"size=",#PB_String_NoCase)
          EndIf
        Next
        If (idfile=#True And filename<>"")
          AddGadgetItem(#GAD_FTPBROWSERLIST,-1,Chr(10)+filename+Chr(10)+filesize)
        EndIf
      EndIf
    Next
   
    CompilerCase #PB_OS_Windows
    iloop=CountString(rdata,#FTPEOL)
    For i=1 To iloop
      line.s=RemoveString(StringField(rdata,i,#FTPEOL),Chr(13))
      numargs.l=CountString(line,";")+1
      file.s=Trim(StringField(line,numargs,";"))
      If (file<>"." And file<>"..")
        idfile.b=#True
        For numi=1 To numargs
          WindowEvent()
          flag.s=Trim(LCase(StringField(line,numi,";")))
          If (FindString(flag,"type=dir",0) And file<>"")
            AddGadgetItem(#GAD_FTPBROWSERLIST,-1,"*"+Chr(10)+file)
            SetGadgetItemData(#GAD_FTPBROWSERLIST,CountGadgetItems(#GAD_FTPBROWSERLIST)-1,#DIRECTORY)
            idfile.b=#False
          ElseIf FindString(flag,"type=file",0)
            filename.s=file
          ElseIf FindString(flag,"size=",0)
            filesize.s=RemoveString(flag,"size=",#PB_String_NoCase)
          EndIf
        Next
        If (idfile=#True And filename<>"")
          AddGadgetItem(#GAD_FTPBROWSERLIST,-1,Chr(10)+filename+Chr(10)+filesize)
        EndIf
      EndIf
    Next
  CompilerEndSelect
 
  ProcedureReturn SizeProper * NMemBProper
EndProcedure

Procedure Curl_FTP_List(curl.l,ftp_url.s,dir.s,login.s, mdp.s, timeout.l = 1000)
  url.s = "ftp://"+login+":"+mdp+"@"+ftp_url   
  If curl=0
    curl = curl_easy_init()
  EndIf
  If curl
    curl_easy_setopt(curl, #CURLOPT_URL, @url)
    curl_easy_setopt(curl, #CURLOPT_TIMEOUT, timeout.l)
    curl_easy_setopt(curl, #CURLOPT_CONNECTTIMEOUT, timeout.l)
    ;curl_easy_setopt(curl, #CURLOPT_FTPLISTONLY, #True)
    curl_easy_setopt(curl, #CURLOPT_DEBUGFUNCTION, @Curl_FTP_Debug())   
    curl_easy_setopt(curl, #CURLOPT_VERBOSE, #True)
    curl_easy_setopt(curl, #CURLOPT_WRITEFUNCTION, @LibCurl_WriteFunction())
    ;ftpdir.s="LIST "
    ftpdir.s="MLSD "
    curl_easy_setopt(curl, #CURLOPT_CUSTOMREQUEST,@ftpdir)
    res = curl_easy_perform(curl)
    If res <> #False
      ProcedureReturn #False;
    Else
      ProcedureReturn curl
    EndIf
  Else
    ProcedureReturn #False
  EndIf
EndProcedure

ProcedureC.l Curl_FTP_Progress(clientp.l,total.d,dlnow.d,ultotal.d,ulnow.d)
  WindowEvent()
 
  SetGadgetAttribute(#GAD_PROGRESS,#PB_ProgressBar_Maximum,total)
  SetGadgetState(#GAD_PROGRESS,dlnow)
 
  ProcedureReturn 0
EndProcedure


ProcedureC.l FTP_WriteFile(buffer.l, size.l, nmemb.l, *Stream.S_FtpFile)
  WindowEvent()
  If *Stream And Not *Stream\stream
    ; Open file For writing
    *Stream\stream = CreateFile(#PB_Any, *Stream\filename)
    Debug "CreateFile()"
    If Not *Stream\stream
      ; Failure, can't open file to write
      ProcedureReturn -1
    EndIf
  EndIf
  If IsFile(*Stream\stream)<>0
    WriteData(*Stream\stream, buffer, (size & 255) * nmemb)
  EndIf
  ProcedureReturn (size & 255) * nmemb
EndProcedure

Procedure Curl_FTP_Download(curl.l,ftp_url.s,localfile.s,login.s, mdp.s, timeout.l = 1000)
  url.s = "ftp://"+login+":"+mdp+"@"+ftp_url
  ftpfile\filename=localfile ; local file
  Debug url
  Debug localfile
  If curl
    curl_easy_setopt(curl, #CURLOPT_URL, @url)
    curl_easy_setopt(curl, #CURLOPT_WRITEFUNCTION, @FTP_WriteFile())
    curl_easy_setopt(curl, #CURLOPT_WRITEDATA, ftpfile)
    curl_easy_setopt(curl, #CURLOPT_NOPROGRESS, 0)
    curl_easy_setopt(curl, #CURLOPT_PROGRESSFUNCTION,@Curl_FTP_Progress())
   
    curl_easy_setopt(curl, #CURLOPT_VERBOSE, 0) 
    res = curl_easy_perform(curl)
     
    If #CURLE_OK <> res
      Debug ">"+Str(res)
    EndIf
    If ftpfile\stream
      CloseFile(ftpfile\stream)
      ftpfile\stream=0
      SetGadgetState(#GAD_PROGRESS,0)
    Else
      Debug "!@##"
    EndIf
  EndIf
EndProcedure

Procedure.s DirUP(string.s)
  dirdepth.l=CountString(string,"/") 
  For i=1 To Len(string)
    If Mid(string,i,1)="/"
      depthlvl=depthlvl+1
      Debug Mid(string,1,i)
      If depthlvl=dirdepth-1
        ProcedureReturn Mid(string,1,i)
      EndIf       
    EndIf
  Next

EndProcedure

Procedure Open_FTPMAINWINDOW(address.s,user.s,pass.s,dir.s)
  If OpenWindow(#FTPMAINWINDOW, 404, 316, 466, 500, "FTP Browser ("+address+")",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    ListIconGadget(#GAD_FTPBROWSERLIST, 5, 35, 455, 430, "", 25, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
    AddGadgetColumn(#GAD_FTPBROWSERLIST, 1, "File", 300)
    AddGadgetColumn(#GAD_FTPBROWSERLIST, 2, "Size", 100)
    StringGadget(#GAD_FTPLOCATION, 40, 5, 385, 25, "")
    ButtonGadget(#GAD_FTPUP, 5, 5, 30, 25, "Up")
    ButtonGadget(#GAD_GO, 430, 5, 30, 25, "Go")
    ButtonGadget(#GAD_OK, 5, 470, 105, 25, "Ok")
    ButtonGadget(#GAD_CANCEL, 355, 470, 105, 25, "Cancel")
    ButtonGadget(#GAD_DOWNLOAD, 120, 470, 105, 25, "Download")
    ProgressBarGadget(#GAD_PROGRESS,240,470,100,25,0,0)
  EndIf
  SetGadgetText(#GAD_FTPLOCATION,dir)
  WindowEvent()
  OpenConsole()
  curl=Curl_FTP_List(0,address,dir,user,pass)
  Repeat
    event=WaitWindowEvent()
    eventtype=EventType()
    Select Event     
       Case #PB_Event_Gadget
         Select EventGadget()
           Case #GAD_DOWNLOAD
              If GetGadgetItemData(#GAD_FTPBROWSERLIST,GetGadgetState(#GAD_FTPBROWSERLIST))<>#DIRECTORY
                file.s=GetGadgetItemText(#GAD_FTPBROWSERLIST,GetGadgetState(#GAD_FTPBROWSERLIST),1)
                dir.s=GetGadgetText(#GAD_FTPLOCATION)               
                Curl_FTP_Download(curl,address+dir+file,file,user,pass)
              EndIf
           Case #GAD_GO
            ClearGadgetItems(#GAD_FTPBROWSERLIST)
            dir.s=GetGadgetText(#GAD_FTPLOCATION)
            If dir.s="" : dir="/" : EndIf
            Curl_FTP_List(curl,address+dir+"/",dir,user,pass)           
           Case #GAD_FTPUP
            ClearGadgetItems(#GAD_FTPBROWSERLIST)
            dir.s=DirUP(GetGadgetText(#GAD_FTPLOCATION))
            If dir.s="" : dir="/" : EndIf           
            Curl_FTP_List(curl,address+dir+"/",dir,user,pass)
            SetGadgetText(#GAD_FTPLOCATION,dir)
           Case #GAD_FTPBROWSERLIST
             If eventtype=#PB_EventType_LeftDoubleClick
              If GetGadgetItemData(#GAD_FTPBROWSERLIST,GetGadgetState(#GAD_FTPBROWSERLIST))=#DIRECTORY
                newdir.s=GetGadgetItemText(#GAD_FTPBROWSERLIST,GetGadgetState(#GAD_FTPBROWSERLIST),1)
                olddir.s=GetGadgetText(#GAD_FTPLOCATION)               
                dir.s=olddir+newdir+"/"               
                ClearGadgetItems(#GAD_FTPBROWSERLIST)
                Curl_FTP_List(curl,address+dir+"/",dir,user,pass)
                SetGadgetText(#GAD_FTPLOCATION,dir)
              EndIf
             EndIf
         EndSelect
    EndSelect
       
  Until event=#PB_Event_CloseWindow
  curl_easy_cleanup(curl)
  CloseConsole()
EndProcedure

Open_FTPMAINWINDOW("<your address here>","anonymous","","/")


Top
 Profile  
 
 Post subject: Linux libid3.so
PostPosted: Sun Nov 30, 2008 6:37 pm 
Offline
PureBasic Expert
PureBasic Expert
User avatar

Joined: Fri Apr 25, 2003 4:47 pm
Posts: 600
Location: New Zealand
Add to : RW_id3lib_Inc.pb
Code:
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
; INSERT THE WINDOWS STUFF HERE.
CompilerEndIf
CompilerIf #PB_Compiler_OS = #PB_OS_Linux
ImportC "libid3.so"
  ;- field wrappers
  ID3Field_AddASCII(*field.ID3Field, string.p-ascii) As "ID3Field_AddASCII"
  ID3Field_AddUNICODE(*field.ID3Field, string.p-unicode) As "ID3Field_AddUNICODE"
  ID3Field_Clear(*field.ID3Field) As "ID3Field_Clear"
  ID3Field_FromFile(*field.ID3Field, filename.p-ascii) As "ID3Field_FromFile"
  ID3Field_GetASCII(*field.ID3Field, *buffer, maxChars.l) As "ID3Field_GetASCII"
  ID3Field_GetASCIIItem(*field.ID3Field, *buffer, maxChars.l, itemNum.l) As "ID3Field_GetASCIIItem"
  ID3Field_GetBINARY(*field.ID3Field, *buffer, buffLength.l) As "ID3Field_GetBINARY"
  ID3Field_GetINT(*field.ID3Field) As "ID3Field_GetINT"
  ID3Field_GetNumTextItems(*field.ID3Field) As "ID3Field_GetNumTextItems"
  ID3Field_GetUNICODE(*field.ID3Field, *buffer, maxChars.l) As "ID3Field_GetUNICODE"
  ID3Field_GetUNICODEItem(*field.ID3Field, *buffer.l, maxChars.l, itemNum.l) As "ID3Field_GetUNICODEItem"
  ID3Field_SetASCII(*field.ID3Field, string.p-ascii) As "ID3Field_SetASCII"
  ID3Field_SetBINARY(*field.ID3Field, *data_, size.l) As "ID3Field_SetBINARY"
  ID3Field_SetINT(*field.ID3Field, data_.l) As "ID3Field_SetINT"
  ID3Field_SetUNICODE(*field.ID3Field, string.p-unicode) As "ID3Field_SetUNICODE"
  ID3Field_Size(*field.ID3Field) As "ID3Field_Size"
  ID3Field_ToFile(*field.ID3Field, filename.p-ascii) As "ID3Field_ToFile"
  ;-frame wrappers
  ID3Frame_Clear(*frame.ID3Frame) As "ID3Frame_Clear"
  ID3Frame_Delete(*frame.ID3Frame) As "ID3Frame_Delete"
  ID3Frame_GetCompression(*frame.ID3Frame) As "ID3Frame_GetCompression"
  ID3Frame_GetField(*frame.ID3Frame, name.l) As "ID3Frame_GetField"
  ID3Frame_GetID(*frame.ID3Frame) As "ID3Frame_GetID"
  ID3Frame_New() As "ID3Frame_New"
  ID3Frame_NewID(id.l) As "ID3Frame_NewID"
  ID3Frame_SetCompression(*frame.ID3Frame, comp.l) As "ID3Frame_SetCompression"
  ID3Frame_SetID(*frame.ID3Frame, id.l) As "ID3Frame_SetID"
  ID3TagConstIterator_Delete(*iter.ID3TagConstIterator) As "ID3TagConstIterator_Delete"
  ID3TagConstIterator_GetNext(*iter.ID3TagConstIterator) As "ID3TagConstIterator_GetNext"
  ;-tag wrappers
  ID3TagIterator_Delete(*iter.ID3TagIterator) As "ID3TagIterator_Delete"
  ID3TagIterator_GetNext(*iter.ID3TagIterator) As "ID3TagIterator_GetNext"
  ID3Tag_AddFrame(*tag.ID3Tag, *frame.ID3Frame) As "ID3Tag_AddFrame"
  ID3Tag_AddFrames(*tag.ID3Tag, *frames.ID3Frame, num.l) As "ID3Tag_AddFrames"
  ID3Tag_AttachFrame(*tag.ID3Tag, *frame.ID3Frame) As "ID3Tag_AttachFrame"
  ID3Tag_Clear(*tag.ID3Tag) As "ID3Tag_Clear"
  ID3Tag_CreateConstIterator(*tag.ID3Tag) As "ID3Tag_CreateConstIterator"
  ID3Tag_CreateIterator(*tag.ID3Tag) As "ID3Tag_CreateIterator"
  ID3Tag_Delete(*tag.ID3Tag) As "ID3Tag_Delete"
  ID3Tag_FindFrameWithASCII(*tag.ID3Tag, id.l, fld.l, data_.p-ascii) As "ID3Tag_FindFrameWithASCII"
  ID3Tag_FindFrameWithID(*tag.ID3Tag, id.l) As "ID3Tag_FindFrameWithID"
  ID3Tag_FindFrameWithINT(*tag.ID3Tag, id.l, fld.l, data_.l) As "ID3Tag_FindFrameWithINT"
  ID3Tag_FindFrameWithUNICODE(*tag.ID3Tag, id.l, fld.l, data_.p-unicode) As "ID3Tag_FindFrameWithUNICODE"
  ID3Tag_HasChanged(*tag.ID3Tag) As "ID3Tag_HasChanged"
  ID3Tag_HasTagType(*tag.ID3Tag, tt.l) As "ID3Tag_HasTagType"
  ID3Tag_Link(*tag.ID3Tag, filename.p-ascii) As "ID3Tag_Link"
  ID3Tag_LinkWithFlags(*tag.ID3Tag, filename.p-ascii, flags.l) As "ID3Tag_LinkWithFlags"
  ID3Tag_New() As "ID3Tag_New"
  ID3Tag_NumFrames(*tag.ID3Tag) As "ID3Tag_NumFrames"
  ID3Tag_Parse(*tag.ID3Tag, *header, *buffer) As "ID3Tag_Parse"
  ID3Tag_RemoveFrame(*tag.ID3Tag, *frame.ID3Frame) As "ID3Tag_RemoveFrame"
  ID3Tag_SetExtendedHeader(*tag.ID3Tag, ext.l) As "ID3Tag_SetExtendedHeader"
  ID3Tag_SetPadding(*tag.ID3Tag, pad.l) As "ID3Tag_SetPadding"
  ID3Tag_SetUnsync(*tag.ID3Tag, unsync.l) As "ID3Tag_SetUnsync"
  ID3Tag_Strip(*tag.ID3Tag, ulTagFlags.l) As "ID3Tag_Strip"
  ID3Tag_Update(*tag.ID3Tag) As "ID3Tag_Update"
  ID3Tag_UpdateByTagType(*tag.ID3Tag, tag_type.l) As "ID3Tag_UpdateByTagType"
EndImport
CompilerEndIf


Top
 Profile  
 
 Post subject:
PostPosted: Fri Mar 20, 2009 3:53 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Wed Aug 24, 2005 4:02 pm
Posts: 525
Location: Germany
How can I download "RLibPlus"? I can't find any valid link.

_________________
PS: Sorry for my bad English. My native language is German.

My PureBasic-Project: EasySetup - SetupMaker for your programs
[Windows 7 x64] [PB V5.0x]


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 25, 2009 11:20 pm 
Offline
Addict
Addict
User avatar

Joined: Fri Feb 25, 2005 1:01 am
Posts: 805
Location: France > Normandy > Near Caen
Wahhh ! a lot of post for my small projects !

Build LibPlus for PB 4.3 : http://partage.rootslabs.net/RLibPlus_4.3.zip

I finish moebius v1 and my website, and i answer at all theses posts and MPs.


Top
 Profile  
 
 Post subject: Re: Progi1984 - Programs & Userlibs
PostPosted: Mon Jan 03, 2011 6:06 am 
Offline
Enthusiast
Enthusiast

Joined: Sat May 21, 2005 1:08 am
Posts: 447
Location: USA
Anybody have a valid link to the RJSON.zip file for parsing JSON?

Thanks,

Matt


Top
 Profile  
 
 Post subject: Re: Progi1984 - Programs & Userlibs
PostPosted: Mon Jan 03, 2011 10:31 am 
Offline
Addict
Addict
User avatar

Joined: Fri Feb 25, 2005 1:01 am
Posts: 805
Location: France > Normandy > Near Caen
Yeap :)

Go there : http://www.rootslabs.net/projets.php?ln ... 10#tab-dls


Top
 Profile  
 
 Post subject: Re: Progi1984 - Programs & Userlibs
PostPosted: Mon Jan 03, 2011 11:05 pm 
Offline
Enthusiast
Enthusiast

Joined: Sat May 21, 2005 1:08 am
Posts: 447
Location: USA
Progi1984 wrote:


Thanks man... however I get the usual StringExtension library not found issue with PureBasic 4.51... with 4.20 it works. Anyway it could be updated? :D

Matt


Top
 Profile  
 
 Post subject: Re: Progi1984 - Programs & Userlibs
PostPosted: Fri Oct 28, 2011 10:46 am 
Offline
Enthusiast
Enthusiast

Joined: Tue Feb 13, 2007 6:16 pm
Posts: 150
Location: Romania
i downloaded rcam and tried to run a example but the files "RCam_Res.pb" and "RCam_Inc.pb" are not included in the zip file can you please update the zip ?

_________________
Registered user of PureBasic


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 88 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6

All times are UTC + 1 hour


Who is online

Users browsing this forum: Olby and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  

 


Powered by phpBB © 2008 phpBB Group
subSilver+ theme by Canver Software, sponsor Sanal Modifiye