import '../../tmg_room.dart';
import '../../tmg_type.dart';
import 'dart:typed_data';
import '../../tmg_error.dart';
import '../../bindings/v2/tmg_room_bindings.dart' as TMGRoomBindings;

class TMGRoomImpl extends ITMGRoom {
  late final TMGRoomBindings.TMGRoomBindings _instance;
  TMGRoomImpl() {
    _instance = new TMGRoomBindings.TMGRoomBindings();
  }

  @override
  String GetRoomID() {
    return _instance.GetRoomID();
  }

  @override
  int ChangeRoomType(ITMGRoomType roomType) {
    return TMGError.AV_ERR_NOT_IMPLEMENTED;
  }

  @override
  int GetRoomType() {
    return TMGError.AV_ERR_NOT_IMPLEMENTED;
  }

  @override
  int StartRoomSharing(String targetRoomID, String targetUserID) {
    return TMGError.AV_ERR_NOT_IMPLEMENTED;
  }

  @override
  int StopRoomSharing() {
    return TMGError.AV_ERR_NOT_IMPLEMENTED;
  }

  @override
  int SwitchRoom(String targetRoomID, String userSig) {
    return TMGError.AV_ERR_NOT_IMPLEMENTED;
  }

  @override
  int SendCustomData(Uint8List data, int repeatCount) {
    return TMGError.AV_ERR_NOT_IMPLEMENTED;
  }

  @override
  int StopSendCustomData() {
    return TMGError.AV_ERR_NOT_IMPLEMENTED;
  }

  @override
  int UpdateAudioRecvRange(double range) {
    return TMGError.AV_ERR_NOT_IMPLEMENTED;
  }

  @override
  int UpdateSpatializerRecvRange(double range) {
    return TMGError.AV_ERR_NOT_IMPLEMENTED;
  }

  @override
  int UpdateSelfPosition(
    Float32List position,
    Float32List axisForward,
    Float32List axisRight,
    Float32List axisUp,
  ) {
    return TMGError.AV_ERR_NOT_IMPLEMENTED;
  }

  @override
  int UpdateOtherPosition(String userID, Float32List position) {
    return TMGError.AV_ERR_NOT_IMPLEMENTED;
  }

  @override
  int SendSEIMsg(String message, int repeatCount) {
    return TMGError.AV_ERR_NOT_IMPLEMENTED;
  }
}
