constants.dart 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:get/get.dart';
  3. import '../../resource/assets.gen.dart';
  4. import '../../resource/string.gen.dart';
  5. enum RecordStatus {
  6. pending,
  7. recording,
  8. paused,
  9. }
  10. RecordStatus recordStatusFromName(String name) {
  11. switch (name) {
  12. case "pending":
  13. return RecordStatus.pending;
  14. case "recording":
  15. return RecordStatus.recording;
  16. case "paused":
  17. return RecordStatus.paused;
  18. default:
  19. return RecordStatus.pending;
  20. }
  21. }
  22. enum SampleRate {
  23. rate8k,
  24. rate12_8k,
  25. rate16k,
  26. rate22_05k,
  27. rate24k,
  28. rate32k,
  29. rate44_1k,
  30. }
  31. enum Channel {
  32. mono,
  33. stereo,
  34. }
  35. extension SampleRateExtension on SampleRate {
  36. int get value {
  37. switch (this) {
  38. case SampleRate.rate8k:
  39. return 8000;
  40. case SampleRate.rate12_8k:
  41. return 12800;
  42. case SampleRate.rate16k:
  43. return 16000;
  44. case SampleRate.rate22_05k:
  45. return 22050;
  46. case SampleRate.rate24k:
  47. return 24000;
  48. case SampleRate.rate32k:
  49. return 32000;
  50. case SampleRate.rate44_1k:
  51. return 44100;
  52. }
  53. }
  54. String get desc {
  55. switch (this) {
  56. case SampleRate.rate8k:
  57. return "8k";
  58. case SampleRate.rate12_8k:
  59. return "12.8k";
  60. case SampleRate.rate16k:
  61. return "16k";
  62. case SampleRate.rate22_05k:
  63. return "22.05k";
  64. case SampleRate.rate24k:
  65. return "24k";
  66. case SampleRate.rate32k:
  67. return "32k";
  68. case SampleRate.rate44_1k:
  69. return "44.1k";
  70. }
  71. }
  72. }
  73. extension ChannelExtension on Channel {
  74. int get value {
  75. switch (this) {
  76. case Channel.mono:
  77. return 1;
  78. case Channel.stereo:
  79. return 2;
  80. }
  81. }
  82. String get desc {
  83. switch (this) {
  84. case Channel.mono:
  85. return "Mono";
  86. case Channel.stereo:
  87. return "Stereo";
  88. }
  89. }
  90. }
  91. extension RecordStatusExtension on RecordStatus {
  92. String get desc {
  93. switch (this) {
  94. case RecordStatus.pending:
  95. return StringName.recordStatusPending.tr;
  96. case RecordStatus.recording:
  97. return StringName.recordStatusRecording.tr;
  98. case RecordStatus.paused:
  99. return StringName.recordStatusPaused.tr;
  100. }
  101. }
  102. ImageProvider get actionButtonImage {
  103. switch (this) {
  104. case RecordStatus.pending:
  105. return Assets.images.iconRecordStart.provider();
  106. case RecordStatus.recording:
  107. return Assets.images.iconRecordPause.provider();
  108. case RecordStatus.paused:
  109. return Assets.images.iconRecordResume.provider();
  110. }
  111. }
  112. ImageProvider get saveButtonImage {
  113. return this == RecordStatus.pending
  114. ? Assets.images.iconRecordSaveDisable.provider()
  115. : Assets.images.iconRecordSaveEnable.provider();
  116. }
  117. ImageProvider get cancelButtonImage {
  118. return this == RecordStatus.pending
  119. ? Assets.images.iconRecordCancelDisable.provider()
  120. : Assets.images.iconRecordCancelEnable.provider();
  121. }
  122. RecordStatus get nextStatus {
  123. switch (this) {
  124. case RecordStatus.pending:
  125. return RecordStatus.recording;
  126. case RecordStatus.recording:
  127. return RecordStatus.paused;
  128. case RecordStatus.paused:
  129. return RecordStatus.recording;
  130. }
  131. }
  132. }