Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
16 user(s) are online (12 user(s) are browsing Forums)

Members: 0
Guests: 16

more...

Support us!

Headlines

 
  Register To Post  

« 1 (2) 3 »
Re: OS4 native FTP client
Quite a regular
Quite a regular


See User information
@xeron

Quote:

xeron wrote:
@Jack
Each browser window in pftp has an associated child thread that handles either local directories or an FTP server. Its designed so that if I want to support more protocols in future, i just impliment a new child thread type that interfaces with PFTPs gui.


That's a clever idea.
sftp has a similar set of commands, but it accesses the same port as ssh does. So somehow a "sftp" session should established so sftp-server is launched and not just the default shell (by sshd). But you probably will get into that in future.

Jack

Resized Image
"the expression, 'atonal music,' is most unfortunate--it is on a par with calling flying 'the art of not falling,' or swimming 'the art of not drowning.'. A. Schoenberg
Go to top
Re: OS4 native FTP client
Amigans Defender
Amigans Defender


See User information
@xeron
I extended bitmap.image instead of button.gadget but the solution still works great for me.

Here are some C++ snippets to get you going...

struct InstanceData {
BitMap* bitmap;
uint32 width;
uint32 height;
};

IClass* iclass =
IIntuition->MakeClass(0, 0, BitMapClass, sizeof(InstanceData), 0);
iclass->cl_Dispatcher.h_Entry = reinterpret_cast<HOOKFUNC>(dispatcher);
iclass->cl_Dispatcher.h_SubEntry = 0;
iclass->cl_Dispatcher.h_Data = 0;

uint32 dispatcher(IClass* iclass, Object* obj, Msg msg)
{
uint32 retval = 0;

switch ( msg->MethodID ) {
case OM_NEW:
{
retval = IIntuition->IDoSuperMethodA(iclass, obj, msg);

InstanceData* data =
static_cast<InstanceData*>(INST_DATA(iclass, retval));

opSet* op = reinterpret_cast<opSet*>(msg);
data->bitmap = reinterpret_cast<BitMap*>(
IUtility->GetTagData(BITMAP_BitMap, 0, op->ops_AttrList));

data->width =
IUtility->GetTagData(BITMAP_Width, 1, op->ops_AttrList);

data->height =
IUtility->GetTagData(BITMAP_Height, 1, op->ops_AttrList);

break;
}
case IM_DRAW:
{
impDraw* imp = reinterpret_cast<impDraw*>(msg);

InstanceData* data =
static_cast<InstanceData*>(INST_DATA(iclass, obj));

Image* image = reinterpret_cast<Image*>(obj);
int32 dx = image->LeftEdge + imp->imp_Offset.X;
int32 dy = image->TopEdge + imp->imp_Offset.Y;
uint32 iwidth = image->Width;
uint32 iheight = image->Height;

if ( iwidth > data->width ) {
dx += (iwidth - data->width) / 2;
}

if ( iheight > data->height ) {
dy += (iheight - data->height) / 2;
}

uint32 bgpen = 0;
(void)IIntuition->GetAttr(IA_BGPen, obj, &bgpen);

IGraphics->SetAPen(imp->imp_RPort, bgpen);
IGraphics->RectFill(imp->imp_RPort, dx, dy,
dx + data->width - 1, dy + data->height - 1);

(void)IGraphics->BltBitMapTags(
BLITA_Source, data->bitmap,
BLITA_UseSrcAlpha, TRUE,
BLITA_Dest, imp->imp_RPort,
BLITA_DestType, BLITT_RASTPORT,
BLITA_DestX, dx,
BLITA_DestY, dy,
BLITA_Width, data->width,
BLITA_Height, data->height,
TAG_END);

break;
}
default:
{
retval = IIntuition->IDoSuperMethodA(iclass, obj, msg);
break;
}
};

return retval;
}

ExecSG Team Lead
Go to top
Re: OS4 native FTP client
Not too shy to talk
Not too shy to talk


See User information
Work continues... today it transferred its first files

Click for new screenshot

I still have a LONG way to go before it can be even considered beta, but already its multithreaded, and supports simultaneous browsing while downloading (provided the server allows multiple connections).

Go to top
Re: OS4 native FTP client
Just popping in
Just popping in


See User information
@xeron

Looking good! I just hope we won't need to wait forever for it...

/Me, myself and A1G4!
Go to top
Re: OS4 native FTP client
Home away from home
Home away from home


See User information
@xeron

Looks like a where useful program.

What type of GUI are you using?


Edited by LiveForIt on 2007/8/30 16:40:37
(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: OS4 native FTP client
Not too shy to talk
Not too shy to talk


See User information
@xeron

Looking good!

Go to top
Re: OS4 native FTP client
Just can't stay away
Just can't stay away


See User information
@xeron

i've said it before, but i am gonna say it again,
your ftp app looks really slick!
looks like it will put all other amiga clients to deep shame! :D GO GO GO!

Go to top
Re: OS4 native FTP client
Not too shy to talk
Not too shy to talk


See User information
Quote:

LiveForIt wrote:
What type of GUI are you using?


Its a ReAction GUI.

Go to top
Re: OS4 native FTP client
Just popping in
Just popping in


See User information
@xeron

Quote:

xeron wrote:

Its a ReAction GUI.


Oh yes! I hope this project sees completion.

Go to top
Re: OS4 native FTP client
Not too shy to talk
Not too shy to talk


See User information
Progress continues.

Sending and receiving now works (although only passive mode is implimented so far).

The download/upload manager is starting to work. You can queue downloads and start them later, or add to the queue and start immediately. There is a little icon showing whether a transfer is active, queued or paused.

I started work on drag and drop. I first tried subclassing the listbrowser gadget so that i could detect if the user clicked and dragged out of the side, but if you subclass the listbrowser, it disables smooth scrolling via ScrollRaster() and becomes clunky and horrible.

I then tried IDCMPHook, but you can't get left mousebutton down events over gadgets, they seem to be swallowed up before the hook is invoked.

HOWEVER, I can read middle clicks over gadget, so (for now at least) drag and drop works from the middle mousebutton.

A brief summary of whats already done:
* Sending and receiving
* Modular multithreaded design
* Browse while downloading (if server allows multiple connections)
* Drag and drop
* Multi-window support (although it is as easy and quick to use as a classic 2-pane client, and not as fiddly as most multi-window clients).
* FTP server address book
* FTP session logging

Still to do before I can even call it beta (there will be public beta releases before the stable release):
* Allow to pause or abort current transfers
* Direct FTP to FTP transfers
* Non-passive transfers
* Auto binary/ASCII detection (optional :)
* File management (deleting files, making/deleting directories)
* Transferring whole directories
* Impliment the stats panel of the control window
* Session log saving
* Proper error message requesters

Stuff I intend to do after everything above is done (although not necessarily for the first stable release):
* SFTP
* ARexx port
* Lots of keyboard shortcuts
* Locale support

Another shot (although not very much different to the last one)


Edited by xeron on 2007/9/3 23:18:01
Go to top
Re: OS4 native FTP client
Amigans Defender
Amigans Defender


See User information
@xeron

ehi dude... when a beta for os4 betatesters??

Go to top
Re: OS4 native FTP client
Just popping in
Just popping in


See User information
@xeron

I've some question: do you plan to add feature of preserving original (ie. source side) time and date of the file(s) after downloading?
It could be very useful to have such functionality possibly as a switch in prefs (preserve / not preserve).
There is need to swap along with FTP the files for archivisation purpose, so having the original (source) date is necessary.

Keep up the good work !

Go to top
Re: OS4 native FTP client
Not too shy to talk
Not too shy to talk


See User information
@AmiZaP

That is certainly possible, yes.

Go to top
Re: OS4 native FTP client
Not too shy to talk
Not too shy to talk


See User information
@xeron

Thanks xeron for your good work! Now We just need more...

Jerry



Defender of my A1XE-G4 / AOS4 Final Update !
Looking for a new toy ? Then try a GP2X...
Go to top
Re: OS4 native FTP client
Not too shy to talk
Not too shy to talk


See User information
Progress still continues

Key improvements since my last report:

* Both passive and active transfers are now implimented
* You can pause, resume or cancel any pending or active transfers
* You can transfer whole directories (either just the files, or
all subdirectories and their files too)
* You can delete directories and all their contents
* You can rename files
* You can create directories
* Optional automatic binary/ascii mode selection (based on
filename extension)
* You can save FTP session logs
* Error reporting and handling is much improved


Still to do before I can even call it beta (there will be public beta releases before the stable release):
* Direct FTP to FTP transfers (and also local to local ones)
* Impliment the stats panel of the control window
* Further improvements to error reporting and handling


There is a detailed changelog here.

Go to top
Re: OS4 native FTP client
Home away from home
Home away from home


See User information
@xeron

Excelent work!

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: OS4 native FTP client
Supreme Council
Supreme Council


See User information
@xeron

Cool stuff.

Until you release your program people can used this

Vacca foeda. Sum, ergo edo

Mr Bobo Cornwater
Go to top
Re: OS4 native FTP client
Not too shy to talk
Not too shy to talk


See User information
@orgin

Yeah. it'll help tide people over, but (IMHO of course), pftp will be a lot better

Go to top
Re: OS4 native FTP client
Just can't stay away
Just can't stay away


See User information
@xeron

pFTP fih deh win!

Go to top
Re: OS4 native FTP client
Supreme Council
Supreme Council


See User information

Vacca foeda. Sum, ergo edo

Mr Bobo Cornwater
Go to top

  Register To Post
« 1 (2) 3 »

 




Currently Active Users Viewing This Thread: 1 ( 0 members and 1 Anonymous Users )




Powered by XOOPS 2.0 © 2001-2024 The XOOPS Project