use Purple;
use Data::Dumper;

%PLUGIN_INFO = (
    perl_api_version => 2,
    name => "Chatroom Speak Name",
    version => "0.1",
    summary => "Speak name of chat room",
    description => "Speak name of chat room on message senet or received.  Uses espeak.",
    author => "Mitch Claborn",
    url => "http://pidgin.im",
    load => "plugin_load",
    unload => "plugin_unload"
);

my $logname='chatroomspeakname';

sub plugin_init {
    return %PLUGIN_INFO;
}
sub plugin_load {
    my $plugin = shift;
    my $accounts_handle = Purple::Conversations::get_handle();

    my $data = "";
    
    Purple::Signal::connect($accounts_handle, "sent-chat-msg", $plugin, \&signal_cb, $data);
    #Purple::Signal::connect($accounts_handle, "wrote-chat-msg", $plugin, \&signal_cb, $data);
    Purple::Signal::connect($accounts_handle, "received-chat-msg", $plugin, \&signal_cb, $data);
    
    #Purple::Signal::connect($accounts_handle, "wrote-im-msg", $plugin, \&signal_cb, $data);
    #Purple::Signal::connect($accounts_handle, "sent-im-msg", $plugin, \&signal_cb, $data);
    #Purple::Signal::connect($accounts_handle, "received-im-msg", $plugin, \&signal_cb, $data);
    
    Purple::Debug::info($logname, "Loaded\n");
}

sub plugin_unload {
    my $plugin = shift;
    Purple::Debug::info($logname, "Unloaded\n");
}

sub signal_cb {
    # The signal data and the user data come in as arguments
    my ($account, $screenname, $message, $flags, $m) = @_;
    #Purple::Debug::info($logname, "!!!!!! Account=$account \n screenname=$screenname \n msg=$message \n flags=$flags \n m=$m \n moreflags=".Dumper($flags)."\n all=".Dumper(\@_));
    
    #my $convname = Purple::Conversation::get_name($flags);
    #Purple::Debug::info($logname, "convname=[$convname] \n");
    
    my $convtitle = Purple::Conversation::get_title($flags);
    #Purple::Debug::info($logname, "convtitle=[$convtitle] \n");
    
    if ($convtitle) {
    	my $cmd = "/usr/bin/espeak \"$convtitle\"";
	    #Purple::Debug::info($logname, "$cmd\n");
	    eval {
	    	system($cmd);
	    }
    }
    
}
