Changeset 9ac3ed1


Ignore:
Timestamp:
2010-05-09T17:20:51Z (14 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
7aadd71
Parents:
dcd16c5
Message:

First bits for different channel types.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • irc.h

    rdcd16c5 r9ac3ed1  
    162162        gboolean (*topic)( irc_channel_t *ic, const char *new );
    163163        gboolean (*invite)( irc_channel_t *ic, irc_user_t *iu );
     164       
     165        gboolean (*_init)( irc_channel_t *ic );
     166        gboolean (*_free)( irc_channel_t *ic );
    164167};
    165168
     
    176179        int flags;
    177180} irc_channel_user_t;
     181
     182typedef enum
     183{
     184        IRC_CC_TYPE_DEFAULT,
     185        IRC_CC_TYPE_REST,
     186        IRC_CC_TYPE_GROUP,
     187        IRC_CC_TYPE_ACCOUNT,
     188} irc_control_channel_type_t;
     189
     190struct irc_control_channel
     191{
     192        irc_control_channel_type_t type;
     193        struct bee_group *group;
     194};
    178195
    179196extern const struct bee_ui_funcs irc_ui_funcs;
  • irc_channel.c

    rdcd16c5 r9ac3ed1  
    5353        else /* if( name[0] == '#' ) */
    5454                ic->f = &groupchat_stub_funcs;
     55       
     56        if( ic->f->_init )
     57                if( !ic->f->_init( ic ) )
     58                {
     59                        irc_channel_free( ic );
     60                        return NULL;
     61                }
    5562       
    5663        return ic;
     
    249256}
    250257
     258static gboolean control_channel_init( irc_channel_t *ic )
     259{
     260        struct irc_control_channel *icc;
     261       
     262        ic->data = icc = g_new0( struct irc_control_channel, 1 );
     263        icc->type = IRC_CC_TYPE_DEFAULT;
     264       
     265        return TRUE;
     266}
     267
    251268static const struct irc_channel_funcs control_channel_funcs = {
    252269        control_channel_privmsg,
     270        NULL,
     271        NULL,
     272        NULL,
     273        NULL,
     274       
     275        control_channel_init,
    253276};
    254277
Note: See TracChangeset for help on using the changeset viewer.