/**
 * $Id$
 * This file is part of The iWear Framework.
 * In particular this file is part of the Framework Test Library
 *
 * The iWear Framework is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by the
 * Free Software Foundation as in version 2 of the License.

 * 
 * The iWear Framework is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * The iWear Framework; if not, write to the Free Software Foundation, Inc., 59
 * Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef __VOICE_TRANS_ENUM_H
#define __VOICE_TRANS_ENUM_H
 
#include <ostream>
extern "C"{
#include <stdint.h>
}

namespace iwear{
    namespace voicetransmission{

	enum VoiceTransButton{
	    SERVER_KONF,
	    SENDONLY,
	    HEARONLY,
	    SENDANDHEAR,
	    STOPSENDER,
	    STOPRECEIVER,
	    KILLVOICETRANS,
	    num_VoiceTransButton
	};

	inline const char* to_string(VoiceTransButton enumtype){
	    switch(enumtype){
		case SERVER_KONF :
		    return "iwear::voicetransmission::VoiceTransButton::IP/PW";
		    break;
		case SENDONLY :
		    return "iwear::voicetransmission::VoiceTransButton::SENDONLY";
		    break;
		case HEARONLY :
		    return "iwear::voicetransmission::VoiceTransButton::HEARONLY";
		    break;
		case SENDANDHEAR :
		    return "iwear::voicetransmission::VoiceTransButton::SENDANDHEAR";
		    break;
		case STOPSENDER :
		    return "iwear::voicetransmission::VoiceTransButton::STOPSENDER";
		    break;
		case STOPRECEIVER :
		    return "iwear::voicetransmission::VoiceTransButton::STOPRECEIVER";
		    break;
		case KILLVOICETRANS :
		    return "iwear::voicetransmission::VoiceTransButton::KILLVOICETRANS";
		    break;
	
		    
		default:
		    return "iwear::voicetransmission::VoiceTransButton::<undefined value>";
	    }
	}
	
	inline std::ostream& operator<<(std::ostream& os, VoiceTransButton enumtype){
	    os << to_string(enumtype);
	    os << "(";
	    os << (uint32_t) enumtype << ")";
	    return os;
	}
	
    } // namespace voicetransmission
} // namespace iwear

#endif // __VOICE_TRANS_ENUM

/**
 *
 */
