On Tue, 2007-02-27 at 20:58 +0100, Gerd Kohlberger wrote:
> >> It is working fine but there are a couple of problems.
> >>
> >> 1. It looks like I should use addFileWatch rather than
> >> directly accessing FAM, is this correct?  I notice dbus
> >> uses addFileWatch rather than (*d->addFileWatch) is
> >> this intentional, and does it get wrapped in the same
> >> way?
> > 
> > Yep, you should use the file watch interface instead of FAM. You should
> > call addFileWatch to add a watch for a specific file or directory.
> > addFileWatch will then call display->fileWatchAdded which is a wrapped
> > function that plugins that provide file watch functionality like the
> > inotify function will hook into. If you have any problems with using the
> > file watch interface please let me know.
> > 
> 
> Hi,
> 
> I modified the inotify plugin to send an event structure instead of just
> the file name in the callback. The event contains an event mask to allow to
> switch between event types in the callback, and the file name.

hm, you're currently suppose to use different call-back functions for
this.

e.g. if you want to know the difference between move or delete do:

addFileWatch (d, path, NOTIFY_MOVE_MASK, fileMovedCallBackFunc, (void *) data);
addFileWatch (d, path, NOTIFY_DELETE_MASK, fileDeleteCallBackFunc, (void *) 
data);

instead of:

addFileWatch (d, path, NOTIFY_MOVE_MASK | NOTIFY_DELETE_MASK, 
fileRemovedCallBackFunc, (void *) data);

> 
> Currently the name variable in the callback sends the event->name of the 
> inotify struct,
> but that's not very useful. eg. if you watch two files directly, there is no 
> way to distinguish
> between them in the callback, because event->name will be empty.

if you want to watch two different files you should currently use two
different call-back functions. The name variable is intended for when
you're watching directories.

> 
> So the new CompNotifyEvent will send the watch path if a file is watched,
> or the relative filename if a directory is watched.
> 
> I think this can be very useful for the ini plugin and for other plugins as 
> well.

I'm not sure we want to do these changes as unless I'm misunderstanding
something the current interface provides the same functionality. What
are the advantages of changing this way?

- David

_______________________________________________
compiz mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/compiz

Reply via email to